TrimWM
Niri-style scrolling columns with i3-style automatic tiling
Features
- BSP Autotiling Layout
- Niri-Style Scrolling Columns
- Animation-Free Operation
- No Network Access
- Deterministic Test Suite
- Developer ID Signed & Notarized
- Independent Logical Workspaces
Install
$brew tap cornz/tap && brew install --cask trimwmAbout
TrimWM combines Niri-style scrolling columns with i3-style BSP autotiling in a single Apple Silicon-only tiling window manager. It ships with no external dependencies or background network access, is Developer ID signed and notarized, and validates changes with a deterministic test suite. The project positions itself as deliberately smaller than Hiro (formerly OmniWM) and more layout-focused than AeroSpace.
Who It's For
TrimWM is aimed at Apple Silicon Mac users who already think in i3 or niri terms and want both layout models available in a single, minimal tool rather than committing to one paradigm. It suits developers wary of tiling window managers that pull in third-party dependencies or phone home — TrimWM's core pitch is no external dependencies and no background network access. If you've compared Hiro (formerly OmniWM) and AeroSpace and found the former too broad and the latter locked into a single tiling model, TrimWM sits between them.
How It Works
TrimWM ships two switchable layout engines: an i3-style BSP autotiler and a Niri-style scrolling column layout, toggled with Option+W (Niri) and Option+Shift+E (BSP). Focus and window movement use vim-style bindings (Option+J/K/L/; to navigate, Option+Shift+J/K/L/; to move), workspaces switch with Option+1-9/0, and a dedicated resize mode is bound to Option+R. TrimWM manages logical workspaces that are independent of native macOS Spaces — conceptually similar to AeroSpace's own virtual-workspace approach — though as of this writing it manages normal windows on the main display only and doesn't move windows across inactive Spaces.
Configuration uses a small i3/Sway-style command language rather than TOML or KDL, covering variables, gaps, split ratios, border styling, mouse-follows-focus, login-launch behavior, keybindings, modes, and per-app floating rules. Config reloads are transactional: an invalid file leaves the previous configuration in place and surfaces the error instead of crashing the reload. Under the hood, TrimWM is Developer ID signed and notarized and uses the private SkyLight API alongside the Accessibility API to manage windows, and the project ships with a deterministic test suite — 140 tests passing as of the 0.2.30 release — to guard against regressions.
Compared to Alternatives
Compared to Hiro (formerly OmniWM), which TrimWM's own docs cite as an architectural influence, TrimWM is deliberately smaller in scope — a focused binary built around the two layout models rather than Hiro's broader feature set of quake terminal, command palette, and IPC/CLI automation. Compared to AeroSpace, which offers only i3-style tree tiling, TrimWM adds the Niri-style scrolling column model that AeroSpace lacks, while both tools implement their own virtual workspace layer independent of native Spaces.
Requirements
- Apple Silicon Mac required — no Intel support
- macOS 26 (Tahoe) or later
- Accessibility permission must be granted to TrimWM.app
Getting Started
Install via Homebrew:
brew tap cornz/tap
brew install --cask trimwm
Or download the latest release from GitHub, move TrimWM.app to /Applications, and install the shipped example config from the repo's Examples/config to ~/.config/trimwm/config. Launch TrimWM, grant Accessibility permission via System Settings → Privacy & Security → Accessibility, then edit ~/.config/trimwm/config to set keybindings and layout defaults. Full source and release notes are at github.com/cornz/TrimWM.