# 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](https://github.com/forge-ext/forge) and [cosmic-shell](https://github.com/pop-os/gnome-shell-extension-pop-cosmic) as well as MacOS tiling WMs, mainly [Aerospace](https://github.com/nikitabobko/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](https://github.com//pretty-borders) - 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](https://github.com/casey/just) as the command runner, plus the same build toolchain used for development (see [Development](#development)): `fnm` for a Node runtime (the build runs on Node via pnpm) and `glib2` for `glib-compile-schemas`. Arch Linux: ```bash sudo pacman -S git just fnm glib2 # fnm needs its shell hook on PATH: https://github.com/Schniz/fnm#shell-setup ``` Clone and install: ```bash git clone https://github.com/lucasoskorep/aerospike-gnome cd aerospike-gnome fnm install fnm use 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 - `fnm` — fast node version manager (the build runs on Node via pnpm) - `glib2` — provides `glib-compile-schemas` for compiling the settings schema Arch Linux: ```bash sudo pacman -S just fnm glib2 ``` Set up the Node runtime with fnm (the pinned version lives in `.node-version`): ```bash fnm install fnm use ``` 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 ```