Floating Windows

Not all windows belong in the tiled layout. Floating windows exist outside the BSP tree and can be freely positioned and resized.

Toggling float

Toggle the focused window between tiled and floating:

gar.bind("mod+shift+space", "toggle-floating")

Or via IPC:

tarmacctl toggle-floating

When a tiled window is floated, it's removed from the BSP tree and the remaining windows expand to fill the gap. When a floating window is tiled, it's inserted into the tree at the current focus position.

Moving and resizing floating windows

Floating windows can be moved and resized with the mouse:

  • Cmd + Left-click drag — move the window
  • Cmd + Right-click drag — resize the window

These use the actual macOS Command key, not the mod_key setting. They work via a CGEventTap that intercepts mouse events.

Screenshot: Floating window over tiled layout

A floating calculator window on top of tiled terminal windows

[ placeholder — add floating-window.png to public/ ]

Auto-float via window rules

Force specific apps to always float:

gar.rule({ app_name = "Calculator" }, { floating = true })
gar.rule({ app_name = "System Settings" }, { floating = true })
gar.rule({ app_name = "Finder" }, { floating = true })
gar.rule({ title = "Picture in Picture" }, { floating = true })

With geometry:

gar.rule(
  { app_name = "Music" },
  { floating = true, geometry = { 100, 100, 800, 600 } }
)

See Window Rules for full details.

Auto-float for oversized windows

If a window's minimum size exceeds its assigned tile area, tarmac automatically floats it. This prevents layout glitches from apps like System Settings that have fixed minimum dimensions.

Floating window focus

Floating windows participate in focus navigation. Click on a floating window to focus it, or use the keyboard. When focus-follows-mouse is enabled, hovering over a floating window focuses it.

Floating windows are drawn above tiled windows by macOS's standard window layering.