Lucas Oskorep cde5a4d58f
Build and Test / build (push) Successful in 26s
Build and Test / release (push) Successful in 3s
feat: upgrade to gnome 51
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
2026-10-15 01:54:51 -04:00
2026-06-15 11:53:49 -04:00
2026-10-15 01:54:51 -04:00
2026-10-15 01:54:51 -04:00
2025-04-03 02:24:40 -04:00
2026-10-15 01:54:51 -04:00
2025-04-03 02:24:40 -04:00
2026-10-15 01:54:51 -04:00
2026-10-15 01:54:51 -04:00
2026-10-15 01:54:51 -04:00
2026-10-15 01:54:51 -04:00
2026-10-15 01:54:51 -04:00

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 runner
  • mise — runtime & tool manager (pins node and pnpm in .mise.toml)
  • glib2 — provides glib-compile-schemas for 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
S
Description
Tiling Window Manager for Gnome
Readme GPL-3.0
3.1 MiB
0 Stars 1 Watchers 0 Forks
2026-10-15 01:55:33 -04:00
Languages
TypeScript 96.4%
JavaScript 1.5%
Just 1.4%
CSS 0.7%