https://github.com/gardesk/tarmac
Tiling window manager for macOS — gar for Mac
https://github.com/gardesk/tarmac
macos tiling-window-manager
Last synced: 2 months ago
JSON representation
Tiling window manager for macOS — gar for Mac
- Host: GitHub
- URL: https://github.com/gardesk/tarmac
- Owner: gardesk
- Created: 2026-03-17T02:08:33.000Z (4 months ago)
- Default Branch: trunk
- Last Pushed: 2026-04-24T03:14:56.000Z (3 months ago)
- Last Synced: 2026-04-24T04:30:08.374Z (3 months ago)
- Topics: macos, tiling-window-manager
- Language: Rust
- Homepage: https://tarmac.musicsian.com
- Size: 850 KB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# tarmac
A tiling window manager for macOS. BSP layout, Lua configuration, IPC control.
macOS Tahoe (15.0+), Apple Silicon.
## Install
```bash
brew install gardesk/tap/tarmac
```
Or build from source:
```bash
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
```bash
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.
```lua
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](https://tarmac.musicsian.com)** — configuration reference, keybindings, IPC protocol, window rules, troubleshooting.
## License
MIT