tarmac Public
Go to file
T
Code
Use Git or checkout with SVN using the web URL.
No matching headings.
tarmac
A tiling window manager for macOS. BSP layout, Lua configuration, IPC control.
macOS Tahoe (15.0+), Apple Silicon.
Install
brew install gardesk/tap/tarmac
Or build from source:
git clone --recurse-submodules git@github.com:gardesk/tarmac.git
cd tarmac
cargo build --release
Binaries land in target/release/ — tarmac, tarmacctl, and ers (border renderer).
Usage
tarmac # start the window manager
tarmacctl get-workspaces # query workspace state
tarmacctl focus left # focus window to the left
tarmacctl subscribe # stream events (JSON)
Requires Accessibility permission: System Settings > Privacy & Security > Accessibility.
Configuration
~/.config/tarmac/init.lua — created on first run.
gar.set("mod_key", "option")
gar.set("gap_inner", 8)
gar.set("gap_outer", 8)
gar.set("border_width", 4)
gar.bind("mod+h", "focus left")
gar.bind("mod+shift+h", "swap left")
gar.bind("mod+1", "workspace 1")
gar.rule({ app_name = "Calculator" }, { floating = true })
gar.on("workspace_changed", function(old, new)
gar.exec("sketchybar --trigger tarmac_wkspc")
end)
Hot reload: Mod+Shift+R
What it does
- BSP tiling with automatic split direction
- 10 numbered workspaces + scratchpads
- Multi-monitor with per-monitor workspaces
- Focus-follows-mouse, mouse-follows-focus
- Window rules (auto-float, workspace assignment)
- Window borders via ers (SkyLight overlays)
- IPC over Unix socket (JSON protocol)
- Lua event callbacks
What it doesn't do
- No Wayland/Linux support — macOS only, uses private SkyLight framework
- No window animations
- No built-in bar — integrates with sketchybar or similar via IPC/callbacks
- Multi-monitor support has known rough edges (see docs)
Documentation
tarmac.musicsian.com — configuration reference, keybindings, IPC protocol, window rules, troubleshooting.
License
MIT