Installation

The simplest way to install tarmac and ers:

brew tap gardesk/tap
brew install ers
brew install tarmac

Note: the tarmac Homebrew formula is not yet available. Use the install script or build from source in the meantime.

Install script

A hosted install script that detects your platform and installs the latest release:

curl -fsSL https://tarmac.musicsian.com/install.sh | bash

The script downloads the latest release binary for your architecture (arm64 or x86_64) and places it in /usr/local/bin/.

To inspect the script before running:

curl -fsSL https://tarmac.musicsian.com/install.sh | less

Build from source

Requires the Rust toolchain. Install via rustup if you don't have it:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Clone and build:

git clone https://github.com/gardesk/tarmac.git
cd tarmac
cargo build --release

The binaries will be at:

  • ./target/release/tarmac — the window manager daemon
  • ./target/release/tarmacctl — the CLI control tool

Copy them somewhere on your $PATH:

sudo cp target/release/tarmac /usr/local/bin/
sudo cp target/release/tarmacctl /usr/local/bin/

Building ers separately

ers is included as a git submodule. If you want borders, build it too:

git submodule update --init
cd ers
cargo build --release
sudo cp target/release/ers /usr/local/bin/

Or install via Homebrew:

brew tap gardesk/tap
brew install ers

Dependencies

tarmac has no runtime dependencies beyond macOS system frameworks. The build process links against:

  • SkyLight (private framework at /System/Library/PrivateFrameworks/) — window level and visibility management
  • CoreGraphics — display and window list APIs
  • ApplicationServices — accessibility framework
  • Carbon — global hotkey registration

These are all part of macOS and do not need separate installation.

Verifying installation

After installing, verify both binaries are accessible:

which tarmac
which tarmacctl
which ers

All three should return paths. If any are missing, ensure /usr/local/bin is in your $PATH.