I noticed sometimes I would press keyboard shortcuts before my system's focus had switched. Just little stumbles here and there, some inoffensive, some annoying, but who knows maybe I didn't catch enough sleep.
Over time it happened often enough that I decided to google it, and it turns out my muscle memory wasn't failing me; the animation speed did change ever so slightly and was slower in new Macs with 120Hz displays [1][2] (newer MacBooks, 2021+). If you switch your screen to 60Hz it goes back to the faster animation.
Why is this animation slower now, and why does it depend on screen refresh rate? I have some technical theories but can't think of an organizational reason it happened and hasn't been fixed 5 years later at a 3.82 trillion market cap company. If you Google it there's plenty of discussions online about this. It's noticeable and annoying to people who have used the feature often enough.
[1]: https://discussions.apple.com/thread/256124324?sortBy=rank
Design good interfaces, with sane defaults but do not handcuff power users!!!
I often hear people say no one should care because there aren't many power users. They're a small portion, but that's absurd framing. They matter a lot because they're the ones that push your design language, develop new ideas, influence the general community, build new programs, find your bugs, and all of that. Apple and Microsoft are closing the ecosystems to get more control not only to exploit the users more (scrape their data) but to reduce bugs and things. But more and more people are trying these random programs because they can't figure out how to do things the right way. It's exactly why people are getting more frustrated with computers. The general public still doesn't care about data harvesting but they do care that the restrictions are handcuffing them now.
Funny enough this is also why Linux is becoming more popular. You've always had complete control but in the last 5 years the barrier to entry has plummeted. It's still not right for the average joe but it's on its way and a few more specialty distros are already there (e.g. steamos). The irony is Apple had the right idea before, even if not as modifiable as Linux, it used to be easier. But now it's more like a power trip. Consolidating control because they don't know what else to do
[1] https://asahilinux.org/fedora/ [2] https://youtube.com/watch?v=JjptYWKGVc4
After a restart, and after Finder has opened multi-tab windows I have open before, clicking on a tab can suddenly move my view and the window to another space.
Apparently different tabs in the same window can think they belong to different spaces.
Something (I perceive as) common to a lot of the (perceived) increase in Apple software glitches recently, is I cannot fathom the logic for which the bug makes any sense. It does not feel like I am seeing corner case bugs, but instead major "bad-model" code, revealing its poor design.
Looks like HN hug of death killed your comments section though:
> An error occurred: API rate limit already exceeded for installation ID 65180581.
Shameless plug: https://github.com/gechr/WhichSpace
The article mentions this has the unfortunate side effect of also setting prefers-reduced-motion in browsers, but that can be mitigated by changing the browser settings (Firefox: about:config: ui.prefersReducedMotion. 0 (enable) or 1 (disable)).
Use shortcat to bring your cursor to any element with just typing.
This has bothered me ever since I switched to a mac from i3wm.
I wish you and your loved ones all the best <3
It didn’t seem to bother the rest of the Mac world, but I used to organize my desktops in a chaotic way that worked great for me, and the ability to see the preview thumbnails as soon as I popped into mission control or whatever they call it enabled me to quickly go where I wanted to after a quick glance. I used to rename entire desktops, too.
The whole thing instantly became worse for me when they took away my ability to name your own virtual desktops, and added the extra speed bump of making me mouse up to trigger the previews. I’m still bitter about it.
Are apple engineers not using macOS?
They're not doing that either. And unfortunately bad designs are rarely fatal, so can linger for decades. And animation time waste has little to do with power use, everyone suffers
The M5 chip is way ahead of Intel's latest, even Panther Lake. But the Snapdragon X2 Elite looks like a viable alternative. It's the only competitor with comparable single core performance, and it comes with 48 GB of extremely fast RAM for a reasonable price with great battery life. Unfortunately Linux support isn't really there yet, but hey M5 MacBooks don't support Linux well either.
I will hopefully soon have the time to try to make it more robust. Feel free to take a shot at it if you want!
I generally have fixed workspaces for different things: first for a browser, second for a code editor, third for a terminal, and so on. If I want to switch between the browser and code editor, I can do that with a single key binding, usually Alt+Tab. The same binding lets me switch between the code editor and terminal just as easily.
When you have something like 10 different workspaces, not having this key binding becomes annoying. If you need to alternate between windows on workspace one and workspace eight, you're stuck using both hands to press Control+1 and then Control+8. But with a last-active-workspace key binding, you can just Alt+Tab between them. This is the killer feature I always need.
I would appreciate if anyone has i3/sway keybindings that work alongside this, otherwise I might just vibecode something in Swift. I know that there is some window management keybinds within System Settings, maybe I need to look into that also, but I don't think they'll behave the way I want them to
Apple being completely oblivious to what normal people actually need or want is like bad weather- can’t do anything about it (Apple is so big and unregulated), just try not to forget to take an umbrella.
I don't however think that this will solve spaces on MacOS, for the simple reason that opening new instances of apps is inconsistent and often doesn't behave how you'd expect it to once one more than one space is involved (in my experience, anecdotal).
I've come to peace with the fact that I will never be able to simultaneously experience the productivity of i3 and the necessary evil of MS Office/Illustrator on the same OS. The most important factor in my work is who I work with (rather than what I work with) so I'll remain on the latter train for now.
Damn, that's rather clever.
The rule is simple: one app per space, and Ctrl+{1,2,3…} switches to the corresponding space in O(1). For me space 1 is an IDE + terminal, 2 browser, 3 messaging, 4 bug tracker, 5–6 AI agents etc. It was fast to learn: get a DM, press ^3; to file a bug, press ^4 etc. I use this with the Rectangle app for window tiling, and this combination works great for me; I rarely ever use Cmd+Tab.
I also have a personal menubar app that's very similar to SpaceName, to quickly get the current ID when multiple spaces have a similar layout (e.g. terminal takes the left half, a browser the right half).
Regardless, I still prefer InstantSpaceSwitcher because its implementation is simpler and it doesn't require disabling SIP. If you can get it working, however, I can edit my blog post to say so!
It’s like having a dedicated space for a few apps and folders. No wonder they don’t care
It is stuttery when you use the magic touchpad via Bluetooth, same applies to the cursor. It's very noticeable with slow movements.
System Settings > Desktop & Dock "Automatically rearrange Spaces based on most recent use". This is the critical part.
And then right click App on the Dock, Assign to this Dock.
With these two things, Spaces becomes predictable and repeatable.
Technically Windows does have an animation when switching desktops with the trackpad, but it’s so jittery that it’s annoying. And the desktop image takes seconds to update, and only updates after completing the animation. To me this is one of those “death by 1000 missing bits of attention to detail” problems that plagues Microsoft/Windows.
When I'm in the appropriate space with only those related windows, the exposé gestures are also much more usable than when everything is jumbled together.
If I uses spaces, I know exactly where my editor is, where my browser is, it is one key press away and it is always there. I use aerospace and I divide my spaces using Alt+ the qwerty keys. Q=chrome W=code editor E&R=programs open for what I am working aka Postman or Obsidian and T=MS Teams.
My dock on MacOS is always hidden because I don't need it and now I have more screen realestate.
One example would be if I’m working on a document that draws on others I have written. Put all three in a space and that piece of work is nicely organised.
When I have all my windows in one space I find it messy and stressful and it’s harder to find what I want.
Overall spaces are more compatible with the way I think than command tab.
It can make sense if you're keeping a lot of non-full-size windows on a larger screen and working on separate tasks that are in the same application, meaning cmd-tab won't help.
I agree that these small things are not bottlenecks to my productivity. I can work just fine despite them. However there is some intangible effect they have on my mindset when I'm working. The more "snappy" my computer feels, the easier it is to enter a sort of flow state. Small bits of friction here and there add up.
I'd like to see them make some costly signalling to indicate that they are going to turn it around like maybe buy two Superbowl ads in a row and let the CEO make a personal apology.
Isn't going to happen because the competition is Microsoft and Intel and Dell who won't hold them accountable and it is just too easy to turn reject iPhone chips into netbooks in 2026.
Devs don't set priorities. Software "Engineers" largely don't get to engineer at all.
I have 9 virtual desktops and a 3x3 grid is so much easier to navigate than a row of 9. Also, Apple makes them dynamic now. I have each desktop assigned to a specific purpose. It's like having 9 computers at my fingertips.
Almost every release of macOS after 10.6 or so dropped something I used and the replacement if any was rarely good enough. So it started rubbing me the wrong way, more and more with every release. I'm so glad I'm no longer on an opinionated OS but that I have a desktop environment that cherishes configurability and options.
In keeping with this, for the transition animation you can choose several options like a fade and a slide, you can turn them off completely (as this hack does for macOS). You can even set the speed of some transitions. I have it set to slide but faster than normal. So the sliding gives me a little spatial awareness of where I move within the grid, but it still feels snappy. All just by ticking some options. I love KDE <3
Spaces are not for fullscreen but for basically virtual desktops i3 linux style
Here is superior user experience:
1. Install moom. Its keyboard windows arrangement is second to none. Its two-step tiling is a killer. Ie caps-a to show a popup with all the shortcuts, then “a” letter for vertical 1/3 of the screen. Or s for middle 2/3. Or q for top left third — you can assign any letter for any portion of the screen.
2. Use option1-6 to switch between desktops
3. For example alt-4 is a desktop where you have all on one screen (suppose you have 6k xdr like i do): safari, mail, messages, telegram, hey email, reeder
alt-3 is your productivity desktop where you have things, calendar, basecamp, notes, ia writer
alt-1 and 2 is for your main work like rider ide or what have you
Alt-5 for your remote stuff like remote desktop, servers, what have you
—
So with this you have a mental model of where everything is always and instant switching to it. Want to see your todos and notes? Alt-3. Want to see your browser and messaging? Alt-4. You get it.
Moom is better than tiling manager for screens like 6k 32” xdr.
Otherwise tiling managers are perfectly fine. For instance on windows I use komorebi
option-cmd-o BOOM, outlook opt-cmd-g Bang, Ghostty opt-cmd-v POW, VSCode opt-cmd-s Boff, Slack etc etc...
ALSO: I learned this from some prior thread on something similar.
The worst part about the MacOS window management situation is the inability to instantly switch spaces, and that Apple has continuously ignored requests to disable the nauseating switching animation. Sure, it’s not that long, but I switch spaces often enough to the point where it becomes very noticeable and drives me insane.
I believe to have found the best solution to instant space switching!
But before I show you, of course, other people share the same sentiment. I claim that none of the surveyed contemporary solutions, except for what I bring up at the end of this article, suffice for what I want:
Enable the “Reduce motion” setting in System Settings.
This is always the default answer to this question online, and I’m sick of it! It doesn’t even solve the problem, but rather replaces it with an equally useless fade-in animation. It also has the side effect of activating the prefers-reduced-motion media query on web browsers.
Install the yabai tiling window manager and use its instant space switcher.
And to be fair, it works pretty well. There are only two problems: for one, yabai does this by binary patching a part of the operating system. This is only possible by disabling System Integrity Protection at your own discretion. For the second, installing yabai forces you to learn and use it as your tiling window manager1. I personally use PaperWM.spoon as my window manager. Both of which are incompatible when installed together.
Use a third-party virtual space manager facade, hiding and showing windows as needed when switching spaces.
Some popular options are FlashSpace and AeroSpace virtual workspaces. I actually offer no criticism other than that they are not native to MacOS, and feel unnecessary given that all we want to do is disable an animation.
Pay for a license for BetterTouchTool. Enable “Move Right Space (Without Animation)” and “Move Left Space (Without Animation)”.
Without further ado, I managed to find InstantSpaceSwitcher by jurplel on GitHub. It is a simple menu bar application that achieves instant space switching while offering none of the aforementioned drawbacks.

Here I have InstantSpaceSwitcher paired up with SpaceName.
InstantSpaceSwitcher does not require disabling Security Integration Protection; it works by simulating a trackpad swipe with a large amount of velocity. It additionally allows you to instantly jump to a space number. The last thing it provides is a command line interface.
The installation instructions are listed on the README, and I will briefly repeat them. You can either install InstantSpaceSwiter via Homebrew:
$ brew install --cask jurplel/tap/instant-space-switcher
Building from source:
$ git clone https://github.com/jurplel/InstantSpaceSwitcher
$ cd InstantSpaceSwitcher
$ ./dist/build.sh
$ open ./build/InstantSpaceSwitcher.app
Or using a pre-built binary.
Once InstantSpaceSwitcher is installed as a native application, the command line interface is provided at:
$ InstantSpaceSwitcher.app/Contents/MacOS/ISSCli --help
Usage: InstantSpaceSwitcher.app/Contents/MacOS/ISSCli [left|right|index <n>]
Did I mention that the repository literally has one star on GitHub (me)? I want more people to discover InstantSpaceSwitcher and consider it trustworthy; hence, please consider giving it a star if you find it helpful.
Until next time!
(You do use a window manager, btw, it's the thing that puts the title bars on your windows and lets you move them around. On macOS it's integrated in, but on Linux you have to choose one. There are many, all of which have some failing. Except for sawfish, whose failing is that it is no longer maintained.)
I don't understand why they do this at all; but at least it's still a single checkbox you can toggle off, FWIW.
(Desktop & Dock -> Mission Control -> "Automatically rearrange Spaces based on most recent use".)
This is a core part of my workflow and is one of the reasons why I would have a difficult time using Windows as my primary OS: its virtual desktop support is far too weak in comparison. It can't even switch desktops independently per-display.
From my experience, "annoying but not blockers" bugs are often very neglected compared to (1) bugs that actually break things and (2) feature work. Neglecting quality of life issues leads to the "do you even use your product??" kinds of experiences.
It’s probably the worst typing experience I’ve had since resistive-touch screens on PDAs. At least with them you could still type what you intended to though, just slowly.
Life is too short to waste is using junk you don’t enjoy.
My problem with it is that it's useless if you got more than few windows open - the preview is just too small to actually see which window you are after (it's all padded for the looks). IMO if they actually used tiles, potentially grouped by app - it would be so much useful.
Yabai looks cool tho, but requires so much permissions and potentially disabling system integrity protection that IDK if it's a go for me.
> There are only two problems: for one, yabai does this by binary patching a part of the operating system. This is only possible by disabling System Integrity Protection at your own discretion. For the second, installing yabai forces you to learn and use it as your tiling window manager1. I personally use PaperWM.spoon as my window manager. Both of which are incompatible when installed together.
This strikes me as the fuckup more than anything else.
Finder, chromes, etc. it will cause automatic switching.
Also, cmd-tab doesn’t have a filtered mode for the active space
Cmd-~ actually works better when using stage manager, because it goed through all active windows across all apps
Can you explain more about what regressed since the old Exposé? I'm just not seeing it.
Secondly I don't find anything that bad about why the article's author doesn't want to use yabai, I generally disable SIP anyway (because I want to install anything I want without restriction, even edit system files because that's necessary in some cases, as yabai does); and they just don't want to learn a new WM which is fine for them but isn't a valid reason for everyone to not use yabai.
Soo many things either work buggy, laggy, inconsistent, or don’t work at all
Filling bugs doesn’t help. And I don’t think anyone is inventive to fix bugs. Resolving sure. But closing WONTFIX or NEEDSINFO is also a resolution.
Most of what I do is chrome +Linux terminals and vscode anyway
And the only reason I’m on Mac is because of hardware, encryption, and ease of backup/restore/wipe, and the power struggle of Linux distros. freeBSD is not really an option
IME a lot of apps are easier to use in their default state. I really only use my web browser, text editor, and terminal in tiled mode.
[[on-window-detected]]
if.app-id = "com.github.wez.wezterm"
run = ["layout tiling"]
[[on-window-detected]]
if.app-name-regex-substring = '.'
run = ["layout floating"]It's just that for _most_ cases it's perfectly fine to make the users wait until the animations is finished, and handling users tapping multiple things in a quick succession can get annoying and unwieldy.
There are some apps when it's infuriating though, especially when they're quadruply badly engineered and _tie the internal logic state_ to the UI state.
As someone living in a country where I don't speak the local language, I swear at Google Translate engineers daily because I do a "swap the active pair of languages and then quickly launch the camera mode" combo _very_ frequently, and the selected pair of languages isn't actually updated _until the animation finishes_.
It's maddening. [2]
[1]: A quick demo: tap an app on a Springboard to open it, and very quickly swipe up from the bottom to hide it. You'll absolutely be able to interrupt the animation of it launching.
[2]: I'm actually sorta guessing that this is a workaround for a different bug they had; when if you tapped this quickly enough a couple of times you could end up in a situation where the UI displayed a different pair of languages than the internal logic had, so they added that delay, but who knows, maybe I'm theorycrafting too much.
- a happy ion2/i3 user since forever -
3 people from my team recently switched to macOS and they never owned a mac before and they are all complaining about window management.
Do you know how dumb it makes me feel to have to tell them they need to install third party apps just to make their system somewhat usable? it's insane.
Especially transient dialogs, e.g. wifi/file picker. I would create rules in sway/i3 for those to keep them floating.
I've written at length about this topic on HN in the last month, so I'd hate for it to seem like my lil hobby horse, but something I've come to appreciate about the conventional "stacking" window solution of Windows/macOS is that it has a good answer for apps you briefly use.
/s
It did work fine before. But I had to swipe 3 times to get “fine” instead of “going” just now
For legit reasons? Because many switchers complain for stupid reasons, like the macOS distinction between apps and windows.
Yes, it’s complete shit