Compare commits

..
7 Commits
Author SHA1 Message Date
Lucas Oskorep 6729cb118e fix: typo
Build and Test / build (push) Successful in 48s
Build and Test / release (push) Successful in 3s
2026-09-08 21:50:13 -04:00
Lucas Oskorep c3d98b7b48 deps: update all dependencies to latest compatible versions
Build and Test / build (push) Failing after 12s
Build and Test / release (push) Skipped
2026-09-07 15:39:07 -04:00
Lucas Oskorep 02c66359d9 build: switch from fnm to mise for node and pnpm management
Build and Test / build (push) Successful in 23s
Build and Test / release (push) Successful in 3s
2026-09-07 15:28:22 -04:00
Lucas Oskorep 00263f6b81 build: only use npx corepack in packages recipe, use pnpm directly elsewhere
Build and Test / build (push) Successful in 27s
Build and Test / release (push) Successful in 3s
2026-09-07 15:14:58 -04:00
Lucas Oskorep 55e06d4f60 build: pin pnpm 12.3.4 in package.json and route just recipes through corepack
Build and Test / build (push) Successful in 27s
Build and Test / release (push) Successful in 4s
2026-09-07 15:05:53 -04:00
Lucas Oskorep 4c994943cd docs: move fnm setup after clone, add shell-hook PATH note
Build and Test / build (push) Successful in 24s
Build and Test / release (push) Successful in 3s
2026-09-07 14:46:52 -04:00
Lucas Oskorep c9ef3f404a docs: add source install + dev instructions, bump Node to 26
Build and Test / build (push) Successful in 44s
Build and Test / release (push) Successful in 4s
2026-09-07 14:16:28 -04:00
9 changed files with 1738 additions and 1196 deletions
+3
View File
@@ -0,0 +1,3 @@
[tools]
node = "26"
pnpm = "12.3.4"
-1
View File
@@ -1 +0,0 @@
25
-1
View File
@@ -1 +0,0 @@
pnpm-exec-install=false
+62
View File
@@ -28,3 +28,65 @@ MacOS tiling WMs, mainly [Aerospace](https://github.com/nikitabobko/AeroSpace) (
- complicated window dragging features and uis - complicated window dragging features and uis
- Aerospace supports control + drag to combine windows while moving with the mouse, and normal window dragging. - Aerospace supports control + drag to combine windows while moving with the mouse, and normal window dragging.
## Installation
Aerospike isn't on the GNOME extension store yet, so install it from source.
This builds the extension locally and drops it into your user's extension dir.
Requires [just](https://github.com/casey/just) as the command runner, plus the
same build toolchain used for development (see [Development](#development)):
[mise](https://mise.jdx.dev/) for managing tool versions (`node` and `pnpm`),
and `glib2` for `glib-compile-schemas`.
Arch Linux:
```bash
sudo pacman -S git just mise glib2 # mise needs its shell hook: https://mise.jdx.dev/getting-started.html#shells
```
Clone and install:
```bash
git clone https://github.com/lucasoskorep/aerospike-gnome
cd aerospike-gnome
mise install
just install
```
After installing from source, enable it (toggle in the Extensions app, or):
```bash
gnome-extensions enable aerospike@lucaso.io
```
Re-login or restart the shell (`Alt+F2``r` on X11) to pick it up.
## Development
Building and debugging locally needs a few extra tools:
- `just` — the command runner
- `mise` — runtime & tool manager (pins `node` and `pnpm` in `.mise.toml`)
- `glib2` — provides `glib-compile-schemas` for compiling the settings schema
Arch Linux:
```bash
sudo pacman -S just mise glib2
```
Install the pinned tools with mise (defined in `.mise.toml`):
```bash
mise install
```
Then:
```bash
just install # install deps + build + drop into the extension dir
just lint # lint
just test # run the test suite
just test-watch # run tests in watch mode
just live-debug # tail gnome-shell logs while you poke at it
```
+30
View File
@@ -0,0 +1,30 @@
import eslint from "@eslint/js";
import tseslint from "typescript-eslint";
import jsdoc from "eslint-plugin-jsdoc";
export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.recommended,
jsdoc.configs["flat/recommended-typescript"],
{
languageOptions: {
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
rules: {
"jsdoc/require-jsdoc": "off",
"jsdoc/require-param-description": "off",
"jsdoc/require-returns-description": "off",
"jsdoc/require-returns": "off",
"@typescript-eslint/no-unused-vars": [
"warn",
{ argsIgnorePattern: "^_", varsIgnorePattern: "^_" },
],
},
},
{
ignores: ["dist/", "node_modules/", "*.js"],
},
);
+2 -2
View File
@@ -1,5 +1,5 @@
{ {
"name": "aerospike", "name": "Aerospike WM",
"description": "I3 Like Tiling Window Manager for Gnome", "description": "I3 Like Tiling Window Manager for Gnome",
"uuid": "aerospike@lucaso.io", "uuid": "aerospike@lucaso.io",
"settings-schema": "org.gnome.shell.extensions.aerospike", "settings-schema": "org.gnome.shell.extensions.aerospike",
@@ -9,5 +9,5 @@
"50" "50"
], ],
"gettext-domain": "aerospike@lucaso.io", "gettext-domain": "aerospike@lucaso.io",
"url": "https://gitea.chaosdev.gay/lucasoskorep/aerospike@lucaso.io" "url": "https://github.com/lucasoskorep/aerospike-gnome"
} }
+11 -8
View File
@@ -2,6 +2,7 @@
"name": "aerospike", "name": "aerospike",
"version": "0.2.4", "version": "0.2.4",
"description": "Simple, Opinionated Tiling Window Manager for Gnome written in Typescript", "description": "Simple, Opinionated Tiling Window Manager for Gnome written in Typescript",
"packageManager": "pnpm@12.3.4",
"type": "module", "type": "module",
"private": true, "private": true,
"repository": { "repository": {
@@ -24,15 +25,17 @@
"test:coverage": "jest --coverage" "test:coverage": "jest --coverage"
}, },
"devDependencies": { "devDependencies": {
"@girs/gjs": "4.0.4", "@eslint/js": "^10.0.1",
"@girs/gnome-shell": "50.0.0", "@girs/gjs": "^4.7.0",
"@jest/globals": "^30.4.1", "@girs/gnome-shell": "^50.0.4",
"@jest/globals": "^30.5.1",
"@types/jest": "^30.0.0", "@types/jest": "^30.0.0",
"eslint": "^10.5.0", "eslint": "^10.10.0",
"eslint-plugin-jsdoc": "^63.0.2", "eslint-plugin-jsdoc": "^64.3.6",
"jest": "^30.4.2", "jest": "^30.5.1",
"ts-jest": "^29.4.11", "ts-jest": "^29.4.12",
"typescript": "^6.0.3" "typescript": "^5.9.3",
"typescript-eslint": "^8.69.0"
}, },
"dependencies": { "dependencies": {
"@girs/mtk-17": "17.0.0-4.0.4" "@girs/mtk-17": "17.0.0-4.0.4"
+1629 -1184
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -1,2 +1,3 @@
allowBuilds: allowBuilds:
'@parcel/watcher': true
unrs-resolver: true unrs-resolver: true