Releases: nikitabobko/AeroSpace
v0.20.0-Beta
Improvements
- 85fb9779 Performance: avoid unnecessary AX requests for focusing windows (affects apps that are slow at answering
AXRaiseActionAX requests. For instance, Godot) - #1486 Show an indication when macOS Secure Input is on. By @mobile-ar
- #1617 #1658 #1710 #1271 #221 #1667 c71c243298 Improve dialog/popup heuristics (Compatibility with: Zebar, VSCode, Screen Studio, CleanShot X, browser PIPs, Slack, and how the hell knows what else)
- #413 Improve the optimal hide corner algorithm
- #1495 Better config error reporting dialog. By @mobile-ar
- #1494
volumecommand now shows volume indicator. By @mobile-ar
Bug fixes
- #521 Fix bug:
focuscommand didn't work when all windows were floating - #1771 Fix bug: Sometimes detaching Chrome Tabs yields a floating window since Tahoe
- #1813 Ignore iTerm2 hotkey window
- #1613 #1588 Fix crashes
New features
- #999 New
persistent-workspacesconfig option - #1656 #1161 Support more interpolation variables in
list-monitors,list-windows,list-workspaces. By @alewis001 - #711 Add i3-ordered menubar style. By @mobile-ar
- #1494 Add
fullscreenmode indication in menubar. By @mobile-ar - #20 Lift
on-window-detected.runlimitations - #390 Implement
on-mode-changedcallback
Breaking changes
- #1683 Make users explicitly supply
--stdinflag toworkspace/move-node-to-workspacecommands when stdin is used. By @Gai-H
- Nikita Bobko, 24 November 2025
v0.19.2-Beta
Bug fix
- #1576 Japanese characters make the tray menu glitch
v0.19.1-Beta
v0.19.0-Beta
New features
- #711 Different menu bar styles. By @mobile-ar
- #183 Add
--boundariesand--boundaries-actionoptions for move command. By @gabsrp2002 - #248 Support
focus dfs-next/focus dfs-prev. By @rickyz - #8 Implement
swapcommand. By @rickyz - #191 Show application names in corresponding workspaces in menu bar
- #1026 Support
--jsonand--countinlist-modescommand. By @MikaelCarpenter
Bug fixes
- #1216 Windows may randomly jump to the focused workspace
- #1425
move-node-to-monitorright/downshould place the windows to the most left/up available position - #164
CGPoint.findIncrash - #1492 Floating windows could appear off-screen
Improvements
- #276 Better dialog heuristics for qutebrowser without decorations
- #1482
start-at-login = truenow registers AeroSpace as a proper Login Item in System Settings
Breaking changes
- Forbid empty string in workspace names
- #1423 Drop
--fail-if-noopfrommove-node-to-monitor <direction> - #1482 Deprecate non-empty
after-login-command
- Nikita Bobko, 11 July 2025
v0.18.5-Beta
v0.18.4-Beta
#1306 Fix 0.18.0 regression. Logical data-race between window destruction logic and list-window might lead to a crash
I promised you a buggy release, remember? 🙂
v0.18.3-Beta
- #1306 Add more debug logging to catch the bug
- #1315 Fix regression.
on-focus-changed/exec-on-workspace-changedon't work if switch focus via 3rd party means (cmd-tab, dock) - #1324 Fix regression. Revert window detection logic to 0.17.1 version. Don't treat some specific popups as windows
- #1305 Fix regression. Hotfix. Reduce wallpaper flickering (but a more proper fix is yet to be implemented)
v0.18.2-Beta
v0.18.1-Beta
Performance fixes:
- Make cmd-tab workspace switch as snappy as AeroSpace built-in commands
- Make mouse resize & move more responsive
- #218 Optimize focus switching logic. Now unresponsive apps don't affect focus switching at all
v0.18.0-Beta
This release primarily features performance improvements, the new icon and contributions from the community.
Previously, AeroSpace suffered from major performance problems caused by the fact that AeroSpace was a single-threaded application, and macOS accessibility API is a blocking API. If at least one application was unresponsive, it'd block the entire system. Starting from this release, AeroSpace implements thread-per-application model, which allows it to stay responsive even in the mentioned case. On top of that, the accessibility requests were made cancellable, which helps to avoid doing unnecessary work when consecutive accessibility requests could be coalesced.
AeroSpace is migrated to Swift 6 strict concurrency mode which hopefully will help to prevent data-races.
The performance problems are not fixed entirely, but the release lays down a good foundation for future fixes. In particular, Godot (and maybe some other apps) still introduces half a second delay for AeroSpace, but it doesn't entirely block the system anymore! (tracking issue for investigating Godot: #218) Another optimization direction is to entirely avoid accessibility requests to windows which are located on invisible workspaces (tracking issue: #545)
Thread-per-application is a significant shift in AeroSpace architecture, I expect quite a few bugs in this release. Please report bugs as usual, but I encourage you to check if the bug is introduced in 0.18.0.
Performance improvements
- #131 AeroSpace now implements thread-per-application model. More details: #131 (comment) #131 (comment)
- #131 #1249 Coalesce idempotent accessibility requests. By @rickyz
New features
- New icon
- #748 Support pageUp, pageDown, home, end, forwardDelete
- 2bb435b Support European/ISO
sectionSignkey in config - #1073 Add
failaction to--boundaries-action. By @MediosZ - #846 Add
workspace-is-focusedandworkspace-is-visiblequery data types. By @xiamaz - #730 Add Colemak keyboard layout preset. By @ll1zt
Bug fixes
- #1257 Fix bug: Dead windows may appear in
aerospace list-windows --all. By @rickyz - #1231 Fix bug: Binding
reload-configin themainbinding mode is unreliable. By @rickyz
Met vriendelijke groeten,
Nikita Bobko