An open API service indexing awesome lists of open source software.

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

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