Releases: nikitabobko/AeroSpace
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
v0.17.1-Beta
- #1110 #1122 Fall back to old non-monospaced menu bar on macOS 13 Ventura due to bugs in macOS/SwiftUI
- #1115 Fix bug. Don't treat Firefox tooltips as windows
- #1108 Float PIP window in Firefox Developer Edition and Firefox Nightly. By @fullmetalsheep
v0.17.0-Beta
Update codesign certificate due to expiration. AeroSpace will re-request accessibility permission.
New features
- #846 Add
window-is-fullscreentolist-windows--formatflag. By @jonathancyu - #377 Add new command list-modes. By @bendiksolheim
- #766
move-workspace-to-monitornow can also accepts(left|down|up|right|<monitor-pattern>...). By @franzl1096
Improvements
- Float Firefox Picture in Picture window by default
- #56 Make menu font monospaced. By @mobile-ar
- #1036 Don't treat "Ghostty Quick Terminal" as a real windows
- #1001 Delay new window detection until mouse is up
- Now, Google Chrome picture in picture is floating by default (YouTube, Google Meet)
- Brave tabs now detected as tiling windows when the tab is "dragged out"
- Now, dragging tabs between Google Chrome windows is smoother
Bug fixes
- Firefox non-native video fullscreen is now considered a window (
about:config -> full-screen-api.macos-native-full-screen -> false) - #1089 Fix bug. If the window is closed on inactive workspace, don't focus the workspace. By @yspreen
- Fix bug:
flatten-workspace-treeignored its cli args - #1101 Fix bug. Don't treat share window purple "pill" indicator as a window
v0.16.2-Beta
Hotfix. 0.16.1 is broken
v0.16.1-Beta
v0.16.0-Beta
Improvements
- #445 Don't rely on macOS unreliable
kAXUIElementDestroyedNotificationcallback to tell if window is closed which might lead to ghost windows in some conditions
New features
- #336 Add
monitor-appkit-nsscreen-screens-idinlist-windows/list-workspaces--formatinterpolation variables for better compatibility with sketchybar - Implement
volumecommand - #592 Add
app-exec-path/app-bundle-pathinterpolation variables to--formatby @dzanotto - #741 Add
smart-oppositeinresizecommand by @wesbos
Bug fixes
v0.15.2-Beta
#585 Fix 0.15.0 regression: AEROSPACE_FOCUSED_WORKSPACE was accidentially renamed to AEROSPACE_WORKSPACE in exec-on-workspace-change callback
v0.15.1-Beta
- #582 Fix 0.15.0 regression
list-workspaces --focusedreturned all workspaces
v0.15.0-Beta
New features
- New feature:
automatically-unhide-macos-hidden-appsconfig option inaerospace.toml(offby default) - #427 Implement
focus --dfs-indxby @Perlten - #373 Implement
fullscreen --no-outer-gapsby @vrumger - A bunch of commands now accept optional
--fail-if-noopflag. Example of commands:enable,workspace,move-node-to-monitor - #186 Add
--window-idoption to all commands that manipulate windows. Add--workspaceoption to all commands that manipulate workspaces. - #186
move-node-to-workspaceandmove-node-to-monitornow have--focus-follows-windowflag - #444 Add
--countflags tolist-*query commands by @Henkru - #338 Implement
summon-workspacecommand (works similarly to Xmonad) - #577 Add optional
--jsonflag to alllist-*query commands
Improvements
- #131 Set
AXUIElementSetMessagingTimeoutto 1 second. It's low effort attempt to fight against freezes caused by apps. - #479 More reliable
start-at-loginby @jakenvac - #425 Windows of hidden applications will retain their workspace assignment (similar to macOS native fullscreen windows)
Bug fixes
- #268 Fix bug:
list-workspaces --focusedsometimes could return multiple workspaces - #317 Fix bug: stop query commands from stealing focus
- #527 Fix bug: Zoom window flickering when on invisible workspace
- #453 Fix bug:
list-workspaces --allwith--formatfails
Breaking changes
- 26eadea
focus --boundaries-actiondefault value is nowstop(previously it waswrap-around-the-workspace) - A bunch of commands now require
--fail-if-noopif you want to get non-zero exit code (previously they returned non-zero exit code by default). The commands are:fullscreen,move-node-to-workspace,macos-native-fullscreen,move-mouse - It's no longer possible to switch to workspaces named "target". The name is now reserved.
- Forbid changing
PWDinexec.env-vars