Settings Reference

All settings are configured via gar.set(key, value) in ~/.config/tarmac/init.lua. Both arguments are strings.

Complete settings table

Setting Type Default Description
mod_key string "command" Primary modifier key. Options: "command" / "cmd", "option" / "alt", "control" / "ctrl"
gap_inner number 0 Pixels between adjacent windows
gap_outer number 0 Pixels between windows and screen edges
focus_follows_mouse bool true Automatically focus the window under the cursor (500ms cooldown)
mouse_follows_focus bool true Warp the cursor to the center of a newly focused window
terminal string "open -na WezTerm" Shell command executed by the spawn terminal action
bar_height number 0 Pixels to reserve at the top of each display for an external bar (e.g. sketchybar)
border_width number 0 Border thickness in pixels. Set to 0 to disable borders entirely. Requires ers.
border_color_focused hex "#5294e2" Border color for the focused window. Accepts #RRGGBB or #RRGGBBAA.
border_color_unfocused hex "#2d2d2d" Border color for unfocused windows. Accepts #RRGGBB or #RRGGBBAA.
border_radius number 10 Corner radius for borders in pixels

Setting details

mod_key

The modifier key used in all gar.bind() calls when you write mod+. For example, if mod_key is "command", then gar.bind("mod+h", "focus left") means Cmd+H.

gar.set("mod_key", "command")   -- Cmd
gar.set("mod_key", "option")    -- Option/Alt
gar.set("mod_key", "control")   -- Control

Aliases: "cmd" works for "command", "alt" for "option", "ctrl" for "control".

gap_inner / gap_outer

gap_inner controls space between adjacent tiled windows. gap_outer controls space between windows and the screen edge.

gar.set("gap_inner", "8")
gar.set("gap_outer", "12")

Set both to "0" for a gapless layout (the default).

Screenshot: Gaps comparison

Side by side: no gaps vs. inner=8 outer=12

[ placeholder — add gaps-comparison.png to public/ ]

focus_follows_mouse

When enabled, hovering the cursor over a window for 500ms focuses it without clicking. There's a built-in cooldown to prevent rapid refocusing during drag operations.

gar.set("focus_follows_mouse", "true")   -- enabled (default)
gar.set("focus_follows_mouse", "false")  -- click-to-focus only

mouse_follows_focus

When enabled, the cursor warps to the center of a window when it receives focus (e.g., via focus left). Useful for keeping the cursor near the window you're working with.

gar.set("mouse_follows_focus", "true")   -- enabled (default)
gar.set("mouse_follows_focus", "false")  -- cursor stays put

terminal

The shell command to run when the spawn terminal action fires. This is passed to /bin/sh -c.

gar.set("terminal", "open -na WezTerm")
gar.set("terminal", "open -na iTerm")
gar.set("terminal", "open -na Alacritty")

bar_height

Reserve space at the top of each display for an external status bar. The tiling area starts below this offset. Set to the pixel height of your bar.

gar.set("bar_height", "32")   -- e.g., sketchybar
gar.set("bar_height", "0")    -- no bar (default)

border_width

Enables window borders via ers when set to a value greater than 0. Set to "0" to disable borders (ers won't be started).

gar.set("border_width", "4")

When you change border settings and reload the config, tarmac restarts the ers process with the new parameters.

border_color_focused / border_color_unfocused

Hex color strings for the focused and unfocused window borders. Supports optional alpha channel.

gar.set("border_color_focused", "#5294e2")       -- opaque blue
gar.set("border_color_unfocused", "#59595980")   -- semi-transparent gray

border_radius

Corner radius in pixels for border overlays.

gar.set("border_radius", "10")  -- rounded corners
gar.set("border_radius", "0")   -- square corners

Unknown settings

Setting a key that tarmac doesn't recognize is silently ignored (logged at trace level). This means typos in setting names won't produce errors — double-check your spelling if something isn't working.