Compare commits

..
Author SHA1 Message Date
Renovate Bot 9633cfbd48 chore(deps): update jest monorepo to v30.5.2
Build and Test / build (pull_request) Successful in 44s
Build and Test / release (pull_request) Skipped
2026-09-28 09:12:53 +00:00
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
Lucas Oskorep 2fa02eac85 fix: build
Build and Test / build (push) Successful in 25s
Build and Test / release (push) Successful in 3s
2026-06-15 15:39:02 -04:00
Lucas Oskorep 6dfb107ad9 feat: ver-bump
Build and Test / build (push) Failing after 1m13s
Build and Test / release (push) Has been skipped
2026-06-15 15:32:52 -04:00
Lucas Oskorep e2fc4e7127 feat: update all packages 2026-06-15 15:31:41 -04:00
Lucas Oskorep bf7fe98b05 fix: ci
Build and Test / build (push) Successful in 25s
Build and Test / release (push) Successful in 13s
2026-06-15 15:22:36 -04:00
Lucas Oskorep 4a2067811c fix: ci
Build and Test / build (push) Failing after 17s
Build and Test / release (push) Has been skipped
2026-06-15 11:53:49 -04:00
10 changed files with 2292 additions and 1748 deletions

No files matched your search

+1 -1
View File
@@ -31,7 +31,7 @@ jobs:
apt-get install -y libglib2.0-dev glib-networking zip apt-get install -y libglib2.0-dev glib-networking zip
- name: Install project dependencies - name: Install project dependencies
run: pnpm install run: pnpm install --ignore-scripts
- name: Run unit tests - name: Run unit tests
run: just test run: just test
+3
View File
@@ -0,0 +1,3 @@
[tools]
node = "26"
pnpm = "12.3.4"
-1
View File
@@ -1 +0,0 @@
25
+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"
} }
+13 -30
View File
@@ -1,7 +1,8 @@
{ {
"name": "aerospike", "name": "aerospike",
"version": "0.2.3", "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,37 +25,19 @@
"test:coverage": "jest --coverage" "test:coverage": "jest --coverage"
}, },
"devDependencies": { "devDependencies": {
"@girs/gjs": "4.0.0-beta.38", "@eslint/js": "^10.0.1",
"@girs/gnome-shell": "50.0.0", "@girs/gjs": "^4.7.0",
"@jest/globals": "^30.0.0", "@girs/gnome-shell": "^50.0.4",
"@jest/globals": "^30.5.1",
"@types/jest": "^30.0.0", "@types/jest": "^30.0.0",
"eslint": "^10.0.0", "eslint": "^10.10.0",
"eslint-plugin-jsdoc": "^63.0.0", "eslint-plugin-jsdoc": "^64.3.6",
"jest": "^30.0.0", "jest": "^30.5.1",
"ts-jest": "^29.1.2", "ts-jest": "^29.4.12",
"typescript": "^6.0.0" "typescript": "^5.9.3",
"typescript-eslint": "^8.69.0"
}, },
"dependencies": { "dependencies": {
"@girs/mtk-17": "17.0.0-4.0.0-beta.38" "@girs/mtk-17": "17.0.0-4.0.4"
},
"pnpm": {
"overrides": {
"@girs/cairo-1.0": "1.0.0-4.0.0-beta.38",
"@girs/freetype2-2.0": "2.0.0-4.0.0-beta.38",
"@girs/gdk-4.0": "4.0.0-4.0.0-beta.38",
"@girs/gdkpixbuf-2.0": "2.0.0-4.0.0-beta.38",
"@girs/gio-2.0": "2.86.0-4.0.0-beta.38",
"@girs/gjs": "4.0.0-beta.38",
"@girs/glib-2.0": "2.86.0-4.0.0-beta.38",
"@girs/gmodule-2.0": "2.0.0-4.0.0-beta.38",
"@girs/gobject-2.0": "2.86.0-4.0.0-beta.38",
"@girs/graphene-1.0": "1.0.0-4.0.0-beta.38",
"@girs/gsk-4.0": "4.0.0-4.0.0-beta.38",
"@girs/gtk-4.0": "4.20.1-4.0.0-beta.38",
"@girs/harfbuzz-0.0": "11.5.0-4.0.0-beta.38",
"@girs/mtk-17": "17.0.0-4.0.0-beta.38",
"@girs/pango-1.0": "1.57.0-4.0.0-beta.38",
"@girs/pangocairo-1.0": "1.0.0-4.0.0-beta.38"
}
} }
} }
+2177 -1714
View File
File diff suppressed because it is too large. Load diff
+3
View File
@@ -0,0 +1,3 @@
allowBuilds:
'@parcel/watcher': true
unrs-resolver: true
+1
View File
@@ -173,6 +173,7 @@ export default class AerospikeExtensions extends ExtensionPreferences {
if (!!value) { if (!!value) {
const mappings = value.split(',').map((x) => { const mappings = value.split(',').map((x) => {
const [, key, mods] = Gtk.accelerator_parse(x); const [, key, mods] = Gtk.accelerator_parse(x);
if (mods === null) return false;
return Gtk.accelerator_valid(key, mods) && Gtk.accelerator_name(key, mods); return Gtk.accelerator_valid(key, mods) && Gtk.accelerator_name(key, mods);
}); });
// Filter out any false values to ensure we only have strings // Filter out any false values to ensure we only have strings