What is an efficient way for developers / power users to use OSX window management and Spaces on a single screen?
This may be a strange question.
Background: I usually work in a multiple monitor setup, where I can plaster the screen with all my windows so nothing I might need to switch to is ever hidden from view.
On a laptop, that's obviously not possible.
A while ago I wrote scripts that give me keyboard shortcuts to move windows around into half/quarter/other convenient arrangements for essentially gridding the display. In researching this question I learned that these are essentially duplicated by some open source apps, but I found nothing that solves the greater problem of switching between these windows easily and painlessly.
In particular, I use spaces as a substitute for multiple monitors, plastering each one with a grid of windows. But I often find myself frustratedly trying to switch between applications in different spaces with no quick way to do it.
E.g. cmd-tabbing to the application makes me go linearly through a bunch of open applications and doesn't pick up applications open only in other spaces.
Using mission control only shows me the windows open in the present space; I have to switch spaces first to use it to get at another window open in another space.
I've considered using only one space and switching via mission control, but having only one space can lead to serious window clutter, with windows hiding behind each other and ending up in the "wrong order" so when I need to drag things between windows, etc., they're not activated at the right time. (In separate spaces I can leave paired windows side by side with nothing in front of them.)
I'm wondering whether someone else who has faced these frustrations has come up with a clever solution or workflow. I'd prefer something open source but am willing to learn a new workflow even with a steep learning curve if it means faster performance eventually--where performance is defined, I think, as reliably and quickly switching between many open windows, though I may end up editing this question as answers reveal that I'm actually looking for something more detailed. E.g. if a multiple-window-using guru of window-management best-practices can explain something like "I faced this problem, and I realized after many years that the right way to do it is work in a single monitor, and always follow steps A B C, and use tool D" then I am all ears.
Solution 1:
The info contained in this answer, though some prefs have changed appearance, should be good for any macOS from Lion to Monterey.
I'm a Spaces user of long-time habit, even though I've always had 2 screens.
I find the best way to get around is to pin specific apps to specific Spaces [then remember where they live, which is the only difficult bit]
If no apps are yet assigned this way, then switch to the chosen Space before launching the app, then right click the app in the Dock & pin to "This Desktop". You can do this without needing to launch first, if it already appears in the Dock, otherwise launch then pin.
Mission Control, as you've discovered, is fine for finding where an app is if you forgot, but not great as a quick way of getting there.
I really tend to use it if I did forget which Space I put an app in, as you can click directly on any of the app's windows in the window 'overview' at the top of the screen & it will switch & bring it to the front…
But… in my ideal world of remembering where each app is, my method of choice is to use
Ctrl ⌃ num to switch directly to my required Space. This is set in System Prefs > Keyboard > Shortcuts > Mission Control [You can only see as many 'Switch' shortcuts as you have Spaces.]
It will remember which app you last had frontmost when you switch Spaces in this way.
Note - if you have an extended keyboard with a 10-key, by default the Ctrl/num shortcuts are set to the 'qwerty' numbers, not the 10-key numbers & you will have to change the shortcuts manually if you prefer the 10-key. [Rather irritatingly, you cannot tell just by looking which is assigned to which key type.]
I specifically never use apps in Full-Screen, as they add themselves to a new, random, unnumbered Space & break that key-switching.
Pro Tips
If I ever need, for instance, to add an email attachment from Finder (Space 1) to an email (Space 4) then simply grabbing the header bar of the email & hitting Ctrl ⌃ 1 will move that single email to Space 1, where I can drop in the attachment from Finder.
If you ever need an app to 'follow' you around - sometimes I keep Activity Monitor tucked in a convenient corner - then assigning to All Desktops will make it always appear, whichever Space you're in.
Late addition - Pro tip
Once you start using Spaces like this you will absolutely want to prevent Finder from re-numbering them all by itself.
System Prefs > Mission Control
Uncheck 'Automatically rearrange Spaces based on most recent use'.
This will fix the order of all your regular Spaces - but not Fullscreen spaces, which always go to the right of existing numbered Spaces.