Adds GNOME Shell 51 to shell-version and moves the build onto the GNOME 51 type packages. - tabBar: pass orientation instead of vertical to St.BoxLayout. The vertical property was removed from St widgets in 51 (deprecated in 48); orientation exists in 48 and later, so this keeps 48-51 working. Verified against the installed St-51 typelib - switch to @girs/gjs 5.5.0 and the -51 namespace packages (shell/st/meta/ clutter plus gio/glib/gobject/gtk/gdk/adw/pango) - drop @girs/gnome-shell 50 and the stale @girs/mtk-17 dependency. The umbrella is GNOME 50 only and pulls St-18 and Meta-18 types that clash with the -51 packages - types/: hand-written declarations for the Shell JS modules imported here (extension.js, prefs.js, main.js). Upstream 51 types (51.0.0-alpha.1) are not published to npm yet - TypeScript 6.0.3 rather than 7: typescript-eslint requires <6.1.0 and ts-jest requires <7 - eslint 10.12, @eslint/js 10.0.1, eslint-plugin-jsdoc 65.3.4, typescript-eslint 8.71.2 and jest 30.5.2 / ts-jest 29.4.14
Aerospike Gnome (Tiling Window Manager)
Aerospike is a simple and opinionated tiling window manager for gnome.
This project takes inspiration from previous gnome tiling window managers such as forge and cosmic-shell as well as MacOS tiling WMs, mainly Aerospace (not affiliated).
Current Features
- Auto-tiling
- Accordion layouts with variable sizes
- Tabbed layouts
- Tree-based (albeit set depth of 2 for now) container-window paired layout similar to Aerospace
- Diagram for this is pending
Planned functionality
- Full Keyboard control w/window movement
- Sub-containers (more tree layers than the 1 supported for now)
- Gap size customization
Not currently planned
- Active window borders
- See my other extension for a rainbow or static border - PrettyBorders
- complicated window dragging features and uis
- 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 as the command runner, plus the
same build toolchain used for development (see Development):
mise for managing tool versions (node and pnpm),
and glib2 for glib-compile-schemas.
Arch Linux:
sudo pacman -S git just mise glib2 # mise needs its shell hook: https://mise.jdx.dev/getting-started.html#shells
Clone and install:
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):
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 runnermise— runtime & tool manager (pinsnodeandpnpmin.mise.toml)glib2— providesglib-compile-schemasfor compiling the settings schema
Arch Linux:
sudo pacman -S just mise glib2
Install the pinned tools with mise (defined in .mise.toml):
mise install
Then:
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