Choose a floating or tiled layout for the next window AeroSpace detects.
ExperimentalSince commit 74a1bf1
Good to know
Branch-only; accepts exactly one of tiling or floating and no other flags. A new request replaces the previous one and takes precedence over window-detected callbacks.
Install `swiftly` and the Swift 6.4.0 toolchain selected by `.swift-version`; release builds now require Xcode 26.6+ on macOS 15+. Debug builds require macOS 14+.
Action requiredInferredAffects: Users building the default branch from source.
For an unconditional `on-window-detected` rule that stops processing, add `if = 'true'`; omitting `if` is accepted only with `check-further-callbacks = true`.
Action requiredInferredAffects: Window-detected rules with no condition and no check-further-callbacks setting.
Legacy `on-window-detected` conditions such as `if.app-id` are soft-deprecated but still supported; command predicates such as `if = 'test ...'` are documented replacements.
Quote literal reserved characters in binding and callback command arguments, separate quoted words with spaces, and escape command-line continuations with a backslash.
Action requiredInferredAffects: Bindings and callbacks whose arguments relied on the old command parser.
Replace unframed JSON reads and writes with a four-byte little-endian payload length followed by UTF-8 JSON, in both directions, after the version handshake.
Action requiredInferredAffects: Custom clients using the pre-0.21 unframed JSON socket protocol.
Choose whether the next detected window opens floating or tiled.
Details
`layout --for-next-detected-window floating|tiling` schedules one layout override before and after window-detected callbacks; source builds now require swiftly and Swift 6.4.
Unreleased default-branch commit 74a1bf1, after v0.21.3-Beta. Source builds require swiftly and Swift 6.4; debug builds need macOS 14+, release builds macOS 15+ and Xcode 26.6+.
Added: Choose a floating or tiled layout for the next wind…Action required / inferred
Combine window commands with conditions and pipes in keyboard bindings.
Details
The built-in shell supports sequences, conditions and pipes, with `eval` for CLI use; `subscribe`, `run-callback`, automatic config reload and mouse-driven focus are also available.
v0.21.2-Beta; Beta for macOS 13+, available as a GitHub release archive; Accessibility permission required.
Added: Combine window-management commands with conditions,…Added: Receive window, focus, workspace, mode and binding…Added / inferred: Focus windows by moving the pointer over them.Improved: Configure keyboard shortcuts and binding modes in a…Improved: Run rules when windows appear and commands when foc…Action required / inferred: Run rules when windows appear and commands when foc…Behavior changed: Run rules when windows appear and commands when foc…Action required / inferred: Configure keyboard shortcuts and binding modes in a…Action required / inferred: Arrange and resize windows in nested tiles or accor…Improved: Arrange and resize windows in nested tiles or accor…Behavior changed / inferred: Configure keyboard shortcuts and binding modes in a…Action required / inferred: Query windows, workspaces, monitors and application…Action required / inferred: Query windows, workspaces, monitors and application…Now works / inferred: Switch between virtual workspaces without animation…Now works / inferred: Focus windows by moving the pointer over them.Now works / inferred: Arrange and resize windows in nested tiles or accor…Now works / inferred: Keep selected windows floating above the tiled layo…Action required / inferredAction required / inferred: Query windows, workspaces, monitors and application…
Start AeroSpace while it is disabled without crashing on startup commands.
Details
The 0.20.1–0.20.2 patches handle disabled startup commands and built-in configuration loading errors, and adjust the supplied persistent-workspace list.
v0.20.2-Beta; Beta for macOS 13+, available as a GitHub release archive; Accessibility permission required.
Now works / inferred: Configure keyboard shortcuts and binding modes in a…Behavior changed / inferred: Keep explicitly named workspaces alive when empty a…Behavior changed / inferred: Configure keyboard shortcuts and binding modes in a…Now works / inferred: Arrange and resize windows in nested tiles or accor…
Keep chosen workspaces available even when they are empty.
Details
Set `config-version = 2` and `persistent-workspaces` to choose which empty workspaces survive; window rules can run additional commands and binding-mode changes can trigger callbacks.
v0.20.0-Beta; Beta for macOS 13+, available as a GitHub release archive; Accessibility permission required.
Added: Keep explicitly named workspaces alive when empty a…Action required / inferred: Switch between virtual workspaces without animation…Limit lifted / inferred: Run rules when windows appear and commands when foc…Improved: Query windows, workspaces, monitors and application…Behavior changed / inferred: Adjust or mute system volume from a keyboard bindin…Behavior changed / inferred: Configure keyboard shortcuts and binding modes in a…Improved / inferred: Configure keyboard shortcuts and binding modes in a…Action required / inferredNow works / inferred: Arrange and resize windows in nested tiles or accor…
Swap a window with its neighbor using the keyboard.
Details
The 0.19 release adds directional and depth-first swaps and configurable move boundaries; its close patch releases fix popup focus and workspace-move exit codes.
v0.19.2-Beta; Beta for macOS 13+, available as a GitHub release archive; Accessibility permission required.
Added: Swap windows in a direction or in depth-first order.Improved: Arrange and resize windows in nested tiles or accor…Behavior changed / inferred: Move windows and workspaces between monitors.Action required / inferred: Configure keyboard shortcuts and binding modes in a…Improved: Query windows, workspaces, monitors and application…Now works / inferred: Switch between virtual workspaces without animation…Now works / inferred: Arrange and resize windows in nested tiles or accor…Behavior changed / inferred: Keep selected windows floating above the tiled layo…Action required / inferred: Move windows and workspaces between monitors.
Arrange macOS windows into keyboard-controlled tiling layouts.
Details
Existing capabilities include tiles and accordion layouts, floating windows, emulated workspaces, TOML key bindings, callbacks and CLI queries.
v0.19.0-Beta; Beta for macOS 13+, available as a GitHub release archive; Accessibility permission required.
Added: Arrange and resize windows in nested tiles or accor…Added: Switch between virtual workspaces without animation…Added: Move windows and workspaces between monitors.Added: Keep selected windows floating above the tiled layo…Added: Configure keyboard shortcuts and binding modes in a…Added: Run rules when windows appear and commands when foc…Added: Query windows, workspaces, monitors and application…Added: Adjust or mute system volume from a keyboard bindin…