I love the mac alt-tab behavior, you just move your finger up one key to switch between windows in the current app grouping them nicely unlike Windows where they're all a big mishmash.
My issue with this behaviour is that I often don't want my windows to be grouped by app. I want to be able to group windows by project, and I may want to have multiple projects in the same set of apps. Workspaces (virtual desktops) ought to be perfect for this, but there is no way to get alt-tab like switching between windows in a desktop on macOS.
We’ll that’s the thing. Windows is based around windows and macOS is based around applications. I get that you want to use macOS like you use windows but that is the historical usage of these UI.
Except when windows behave like apps and you close a window and it closes the app. Or it’s a single window app but closing the window does not close the app. Or when you full screen a window and now everything is inconsistent. Or when you use Mission Control and now the switching paradigm is based on Windows and not Apps.
Even Apple’s own applications break the “it’s an app and not a window” paradigm in many instances. Without trying, there’s no way to tell if clicking on the close button will quit the app or just close that window even for apps that only use a single window.
That made sense in days gone by when things like photoshop's tool palettes were in separate windows. It makes no sense in 2023 when windows are self contained units. Apple have changed all sorts of other things about their desktop environment. IMO they ought to change this too.
On Windows, there is a nicely and predictably maintained Z-order, whereas MacOS insists that if I want to switch focus, surely I want all the windows that the other app has to offer, which feels like a big "mishmash" to me.
> MacOS insists that if I want to switch focus, surely I want all the windows that the other app has to offer, which feels like a but mishmash to me.
This had not been the case. Command tabbing would bring forward only the last active window. It was very handy to switch back and forth between text editor and browser that way. But then, they decided command tab should bring forward all windows, which ruined usability for me. Now I use BetterTouchTool [0] to directly switch to an app. Doing so brings forward only the last active window.
My pleasure. Even though BTT is conceptually very simple (input method triggers trigger actions), implementation is very detailed.
First, add a new keyboard shortcut trigger for “All Apps”. Choose a key combo that you prefer. I'm using a programmable keyboard that has a dedicated key corresponding to key combo CTRL+SHIFT+OPTION+CMD (a.k.a. super), which doesn't collide with system key combos. You are free to choose anything that suits you. For instance, to switch to Safari, I hit SUPER+S.
For corresponding action, choose “Launch Application / Open File / ...” and choose Safari from the box below. When Safari is already running, this action will switch focus to Safari's most recently focused window and will not bring other windows of it to foreground.
That's all. Set up other key combos for other applications as well. I have many set up. SUPER+T is for Terminal, SUPER+E is for Emacs. Switching between most recent windows of these apps should now be very easy and fast.
I agree as well, which is why I've used HyperSwitch for many years. It restore most of the goodness of the Windows focus switching experience with a defined keybinding.