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
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.
You can use the app in in this post for that.
—
Or if you want the animation, switching is built-in on macos
What you need to do:
1. Create 6 spaces. This is a crucial first step.
2. Go to system settings — keyboard — keyboard shortcuts… — mission control — expand mission control — manually set “switch to desktop 1” to alt-1; rinse-repeat till 6.
3. Go to system settings — desktop and dock — disable “automatically rearrange spaces based on most recent use”
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
1. When switch into an application switch to a space with open Windows for the application.
2. Automatically rearrange space is based on most recent use.
Nothing provides structure, and separation
Ideally I’d just run 6 users in 6 spaces
The whole cmdtab shouldn’t show applications without windows nor als with no window in the current space
I would try setting up a space for, eg, all my communication stuff. But suddenly I’d need to drag-and-drop an image from my image editor into Slack. Or I’d want to drag a graphic from Safari into Final Cut Pro. Or any number of cross-workspace operations
How do you handle this with spaces? Do you initiate the drag, tap the space hot key, then drop?
Yes.
That’s why with trackpads I enable three fingers for dragging, so I don’t need to press anything
—
Also if you drag your file and hold on app’s icon in dock, it will show that app
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.
I do use alt-tab, to switch between the multiple windows of the same app. (Something's happened with my AltTab config, not sure if it's due to corp background system software or a Tahoe update, but I no longer see the mini screen shots of the different window states.)
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).