What's being described as "full screen" windows on macOS is not exactly that, and it's very different than full screen windows on Windows or the standard Linux window managers.
On macOS, when we click on the little green button on top of a window, that window becomes full screen *and* becomes a new single-window workspace.
https://support.apple.com/guide/mac-help/use-apps-in-full-sc...
Except for that annoying quirk, I actually find the interface better (though it definitely took time to get used to it).
It's not the same as fullscreen, because it still has the top mac bar, but that's fine, and it gives me the ability to cmd+tab / cmd+tilde through my windows.
cmd-tab switches to the last used application (assuming you don't hold down), right now for me that switches from Firefox to Slack.
Pressing cmd-tab again switches from Slack back to Firefox.
However for window switches
cmd-` switches from my HN window to a jira window. cmd-` again switches to a webmail window. To switch from jira back to HN I have to press cmd-shift-`
If you press Cmd-Tab, hold Cmd, and keep hitting Tab, you cycle through the available applications.
If you press Cmd-`, get the window you want, and do something in it, then press Cmd-` again, you get back to the first window you were in.
If you press Cmd-` repeatedly, you cycle through the available windows of the active application.
There is a slight difference in how you trigger the two behaviours—and the behaviour of Cmd-` can sometimes be a little opaque, I grant, since "do something in the window" is not always 100% clear, either to the user or the computer—but they do have analogous behaviours.
You've swapped from window 1 to window 2
Press Cmd, Press `, Release `, Release Cmd
You swap from window 2 to window 3
Press Cmd, Press tab, Release tab, Release Cmd
You've swapped from application 1 to application 2
Press Cmd, Press tab, Release tab, Release tab
You swap from application 2 to application 1
That if you type something after swapping window and the behaviour changes is even worse!
For cycling
Press Cmd, Press Tab, release Tab, Press Tab, Release Tab, you can move from application 1 to application 3, although it doesn't switch immediately, just shows you a menu while you hold down Cmd
Do this with windows and the actual window changes as you move, not a menu
It's poor behaviour and one reason I prefer my linux desktop to my anicent macbook. (Another reason, I've got about 15 opwn terminals, but I can't just raise 1 terminal window above my browser, I have to raise them all. Of course there's no focus-follows-mouse either, it's all very user-unfriendly, at least by default. I'm sure there's some software that might fix this, but back in the 90s when I was using Windows I remember that sort of software was just terrible. The easier option is to finally fix my linux laptop, which died around the time covid started, and thus wasn't a critical path fix)
Edit: it didn’t behave this way before 2009
If you’re talking about cmd-tab, personally I’ll take big recognizable icons than thumbnails with minuscule text and such any day.
And mission control will give you windows previews if you want them.
The Portuguese layout sucks horribly for programming, especially on the Mac (brackets in horrible places), and the U.K. layout (where I’m based) sucks horribly for writing Portuguese in. The US international just works for all my purposes (including writing tiny amounts of other languages besides Portuguese and English)
Because I never went back to the Portuguese layout after finding those key combinations.
My choice is "US International with AltGr deadkeys". The deadkey behaviour in simple "US International" is very annoying for programming: you have to double-tap every key that could be an accent, such as single quotes or backquotes.
Uh, did you not even bother to click on the link or something ??
The easy access to all Greek characters (and more math symbols) alone is great if you work in a math-related field !
Look, I think it's great that this thing exists and grateful that you mentioned it. I may even suggest it to some of the French-speaking juniors I work with.
It does not, however, address the issues of the person you were replying to. And I know because I'm in a similar position to them.
Also, windows are in a stack from least to most recently put in front, so if I know something is toward the back I start with command-~.
I also happen to believe that there is such a thing as having too many browser windows open, so when these strategies start to become unmanageable, I will close some. The Expose for browser windows takes up to twelve before it needs to make the icons really small, that's a reasonable limit for me, especially given both tabs and tab groups (which I'm increasingly making good use of).
To be clear, this is a workflow, not a workaround: unlike focus follows mouse being impossible, I'm content and productive handling the browser this way.
Often I need to quickly switch between a particular terminal window to a particular browser window. But it's always a gamble. I don't know what I'm gonna get when I press cmd+tab. It may show the correct window, or it may show all terminal windows, or it may even do absolutely nothing.
When you press Cmd-Tab, first of all, if you hold it down for longer than about a second, it shows you the icons of the currently-open applications, letting you select which application you switch to.
Whenever you use Cmd-Tab to switch to an open application, it will always foreground all the open windows of that application that are on the active desktop/space.
When I'm doing something like you describe, where I know I'll be switching back and forth between a specific pair of windows of different applications (and I have a bunch of other windows of those applications open), my usual practice is either to size and position them where I can just see both at the same time (large screens ftw), or I'll pull them off into a separate space where Cmd-Tabbing between the two applications will be guaranteed to switch between just those two windows.
The problem with switching is that you quickly get too many windows / apps.
I tried to have a user per group, but that does T work fast enough.
The best setup for me is 2 or 3 machines, linked with synergykvm
Even if, with time, you have become comfortable with it, it is still a more convoluted way to manage tasks.
I actually find the macOS model to be more convenient (even though I didn't like it when I first tried it). It makes it very easy to switch away from an app that has multiple windows.
To be honest, I'm not sure there's an objectively better solution. I think it all comes down to the workflow and habits you've built around the model you use most often.
It's also pretty convenient to be able to switch between browser windows using cmd+`. I don't need to worry about getting other apps in between my browser windows.
Application switching makes sense in a world where the application is the locus of interest and you tend to spend a long time in each app, only rarely switching to another. We haven't lived in that world for a very long time.
Yes, Mac also supports switching between Windows in the same application but that is rarely what I want either since I am a heavy user of virtual desktops
Or maybe after a couple more years of macOS and I would get used to it.
Let's say I have just two monitors. That box being checked means I have spaces A1 A2 .. An and B1 B2 .. Bn, and monitor A can display any of the "A" spaces and monitor B can display any of the "B" spaces. But if I want everything from B2 to get displayed on monitor A, I have to create a new space An+1 and drag everything over one window at a time, like a cave man.
Unchecked means I have spaces AB1 AB2 .. ABn, and switching spaces switches both monitors at the same time! So if I want to see the A side of AB1 and the B side of AB2 at the same time, I'm out of luck.
Xmonad workspaces allow me to do any of the above behaviors (oh, and it switches workspaces instantaneously, instead of this left/right spatial thing macos insists on, I guess because of the trackpad swipe gestures). One of these days I need to try to make Hammerspoon fake workspaces in a way that works for me, because (like the OP) this is by far the least comfortable thing about working in macos for me.
If your state is A1/B2 (two monitors A and B displaying spaces 1 and 2 respectively), and you're working in A1 and want to switch B2 to B3, how do you "focus" on display B before moving spaces to B3? If you just press mod-3 I assume you'd get A3/B2. Do you have to alt-tab until you focus a window that is currently in B and then mod-3?
True about indexed access; some other window managers have natively built in "tagged workspaces" where windows have tags and the "chat workspace" is just "all windows that have the chat tag". You can (probably? I've never used them) bind numbers to tags permanently or temporarily but you wouldn't be limited to 0-9. I never bothered trying to copy that setup in xmonad because I never used more than 5 or 7 workspaces.
That's...not true, though? Unless I'm misunderstanding what you're after...
When you activate Mission Control (not sure offhand what the default shortcut is; I have mine set to Ctrl-Up, but I might have customized it), you can drag entire spaces between monitors. I do this regularly.
For me it's a two-finger double tap on the mouse (I think--not at my computer at the moment.)
The former of those two can also get rid of redundant menubars (as seen in e.g. Figma) which is a nice bonus.
These days it's very common for more than half your work to take place in a browser, with many browser windows, each having many tabs
Every window of the browser almost is like its own application for the user, yet they're all from the same application with the same name for the OS
How does an application switching interface, rather than window switching interface, work out for that, if a lot of what you want to switch between is different windows of the same browser?
(and what if in addition there would be also many terminal emulator windows, each also with many tabs, and maybe some code editors, spread across multiple virtual desktops)