nikdoof.com

/posts/ 2026/using-aerospace

Using Aerospace

Jan 30, 2026

#macos#aerospace#productivity#workflow

Tiling window managers have interested me for some time, but being a avid macOS user i’ve not had much oppertunity to use them, my last attempt was using GlazeVM on a Windows system at my previous job. For some reason I spent most of my time fighting with it rather than using it, and I eventually gave up. My new job provided me with a MacBook Pro, which i’m far more comfortable with, and it allowed me to bring my home configuration into work with me and all the customisations I have made over the years.

One day while browsing the orange site I came across a post about Aerospace, a tiling window manager for macOS. Its ‘i3 inspired’ and didn’t require any special modifications to use, so I decided to give it a try. Installation was a breeze using Homebrew:

$ brew install --cask aerospace

After installation, I launched Aerospace and was greeted with some numbers appearing in my menubar, indicating the different workspaces available. I quickly learned the basic keyboard shortcuts to navigate between workspaces and manage windows. The default configuration treats everything as equal, main application windows, popups, dialogs, which provided some interesting issues. For example, accepting a Facetime call would cause Aerospace to rearrange all the windows if the person your talking to rotates their phone. Thankfully, Aerospace comes with a very simple TOML configuration file that means you can create application and even window specific rules on how windows should be managed.

To fix my Facetime issues, I decided to just mark the windows as floating:

# Float Facetime windows
[[on-window-detected]]
if.app-id = 'com.apple.FaceTime'
run = 'layout floating'

Aerospace has a collection of rules and functions you can use to customise your experience. With this i’m saying that any time Aerospace sees a new window from the applicationcom.apple.FaceTime, it should set the layout for that window to floating, meaning it won’t be tiled with the other windows and float above.

Likewise, with ‘Windows App’ (the new Remote Desktop client from Microsoft) I wanted to have it always open in a specific workspace, so I added this rule:

[[on-window-detected]]
if.app-id = 'com.microsoft.rdc.macos'
if.window-title-regex-substring = 'Devices'
run = ['move-node-to-workspace R', 'layout floating']
check-further-callbacks = false

# Accordian the connection windows
[[on-window-detected]]
if.app-id = 'com.microsoft.rdc.macos'
run = ['move-node-to-workspace R', 'layout v_accordion']

Here we have two rules, Aerospace processes the rules in order, so the first rule looks for windows named ‘Devices’ and floats them, and everything else it sorts in a accordian layout. This will keep the initial connections window as a floated window and the actual remote desktop connections in a nice accordian tiled layout that is easy to switch between.

Aerospace also has a collection of CLI functions that also help when writing these configuration files, aerospace list-apps lists all the currently running applications and their app IDs, making it easy to find the correct app ID to use in your rules. aerospace list-windows --all will show you all the currently open windows and their titles. Using these commands and the documentation, I was able to quickly build up quite a complex configuration for the common apps I use. All of my configuration is available on GitHub if you want to take a look.

A screenshot of my desktop using Aerospace, with multiple Ghostty windows open.
A screenshot of my desktop using Aerospace, with multiple Ghostty windows open.

Overall, my experience with Aerospace has been very positive. It has a bit of a learning curve, but once I had spent some time with it I feel that my time wrangling windows and applications with the mouse has severely decreased. The ability to quickly switch between workspaces and have applications automatically sorted into the right places has made my workflow much more efficient. Being a few key clicks away from switching from my editor to some documentation or a terminal window verses hunting around with the Dock has been a game changer for me.

If you’re a macOS user looking to improve your productivity and don’t mind spending some time configuring your environment, I highly recommend giving Aerospace a try.