I have learned a lot since I transitioned from Windows to macOS two years ago, including that cmd-tab doesn’t work the same way as Alt-Tab because it cycles through apps (not windows) and apps and windows are not as closely linked together as in Windows (in Windows, when you close the last window of an app, you close the app).
But one thing keeps bugging me and I’m not sure whether it’s because I misunderstand something and therefore do something wrong or because this is just one of those issues that are plaguing macOS and that people have just come to accept. That thing is: I have not yet found a way to reliably summon a window to the foreground on the currently active desktop/space - or at least on one of the currently visible desktops in a multi-monitor setup.
There are many ways of switching to a different window, but let’s stick to the two most basic ones: cmd + tab and clicking on the application icon in the dock. In my mind, the logical thing that can (should) happen when I cmd-tab to a running application is that this application is foregrounded on the desktop where it happens to be, and if that is not the one I’m currently looking at, then I’d also expect it to change to that space. What else would be the point of selecting the app?
A lot of times, this works, but not always.
When an application has multiple windows, I sometimes right-click the app icon and select the window I want from the menu, but even with that method, the window sometimes stubbornly stays out of sight.
There are a number of factors that I suspect play a role in some combination or another, but I can’t seem to get an overview or understand the logic:
- the app has no window
- the app has multiple windows
- the app is on a different desktop/space
- the app is on a different desktop/space on a different display
- one or more or all of the app’s windows are minimized
- the app is a Microsoft app
- the app has some strange invisible window
Here is a current example
Right now, I can choose among 17 apps when I press cmd + tab:To some of them, I can switch as expected, but no window appears when I select any of the following (the respective app’s menu bar appears, though):
- DeepL
- Microsoft Edge
- Adobe Acrobat
- Sublime
- Miro
In the case of DeepL, Acrobat, and Miro, that may be because they may not have any window (though I’m not sure how I’m supposed to know that as a user). In the case of Sublime and Edge, however, I see in the dock that each of these have a (minimized) window:
So, I assume that the reason for these windows not coming to the foreground is that they are minimized.
While there may be some benefits of ignoring minimized windows as long as the same app has non-minimized windows, I don’t see the point of macOS stubbornly ignoring minimized windows when I’m obviously trying to switch to that application and there are no other windows.
But okay. So, in order to switch to that minimized Sublime window using my keyboard, I am supposed to cmd + tab, then cursor-up, which gives me this:
(Note how macOS still says “What? Sublime? I have no idea what you’re talking about”, i.e. "no available windows).
I then have to do cursor-down (which you’d think reverses the previous cursor-up action, but it doesn’t) to select the sublime window that macOS does not want to see.
If I now release all keys, you might think that this will foreground the selected window, but now. Nothing happens. In order to finally maximize and foreground the window, I need to press Enter.
Is this really the only/ best way? I must be missing something…
Is there any app that fixes this UX nightmare? Or at least a way of highlighting apps with windows in the cmd + tab menu, so that I at least know what to expect when I select any of the others?
Witch
I found one app that seems to help with that, Witch. I think one of the tricks it uses is the settings:
But even that fails in some situations. (Can’t seem to produce such a situation at the moment.) And the app has so many settings that I have so far failed to wrap my head around it. Perhaps also because something in me kept insisting: this must be possible without a complicated third-party app. I also find it noticeably slower than the native cmd-tab command.
Finally, let me mention that also Alfred sometimes does the trick. In the above scenario, both opening Subline and opening Edge via Alfred will foreground the minimized windows.
Alt-Tab
I just found another app that seems to address some of these issues: Alt-Tab. I will try it once I’ve submitted this post.
Let me just close by saying: even though I have started to list apps that might solve some of these issues, I also welcome any assistance with understanding the logic of how all this is supposed to work in macOS.