MacOS window management is a bit slow, so I use AeroSpace and SketchyBar .
AeroSpace is an i3-like window tiling manager. I don’t need the window tiling so much - I mainly use it in stacked mode. The main advantage is moving windows between virtual desktops quickly.
SketchyBar can integrate with AeroSpace’s CLI to show which workspaces are available, and what windows are on them. Mine basically works like a Windows taskbar.
Below are things which these tools improve. If you have the same issues, it might be worth trying out.
Another project, FlashSpace is a good alternative which is faster and has a simpler setup. A major limitation is that it can only move an entire app to a different workspace, not individual windows. I do a lot of presentations so it didn’t work for my use case, unfortunately.
MacOS Spaces Limitations
AeroSpace fixes all of these.
- MacOS spaces are a power user feature hamstrung by clunky animations and lack of shortcuts.
- Switching spaces forces an animation, either through Mission Control or a swipe gesture (or ctrl + left/right). All of these cause a “swoosh” animation.
- With ProMotion enabled, the animation prevents user input for 2x the duration of the animation. This is a known bug which hasn’t been fixed since the release of the M1 Pro.
- Spaces can’t be renamed.
- Adding a space has an annoyingly long animation.
- You can’t move a window to another space with a shortcut.
- You must have at least one space per screen. If you want to move the only open space to another screen, you must open another space, switch to it, open Mission Control again and move the space you want.
Dock
- The Windows Taskbar is a far more useful implementation of what is essentially the same feature.
- The Dock doesn’t show which windows are open unless you right click on an icon.
- It doesn’t show which windows are open on which spaces.
- When a space is focused, it doesn’t restrict the dock to the apps only open in that space.
- I find so little use in it, I have it permanently hidden.
SketchyBar integrates with AeroSpace to show all open workspaces on each monitor, along with which app windows are open.