I'm strongly in favor of some innovation in this space, but this app's solution (and other, window management type solutions) I don't think has enough isolation between contexts for me.
I'm strongly in favor of some innovation in this space, but this app's solution (and other, window management type solutions) I don't think has enough isolation between contexts for me.
Windows has traditionally been a Window/document-centric OS where the primary object of interaction is a window (e.g. alt-tab would swap between individual Windows).
macOS has traditionally been an application-centric OS, one tabs between Applications.
What I would love to see is a project-centric system, where I can tab between projects and have all the relevant applications and documents appear and disappear with it.
If you don't need workspace specific buffers, eyebrowse[1] is a good (seemingly less buggy) alternative.
Thanks!
Linux! I'm a Windows dev now and miss Linux so much.
What I used to do back in the day was simplistic, but still very useful - I'd have multiple desktops open, & have each project on its own desktop. SSH connections, code editors, network drives, VMs whatever. It keeps visual separation between environments, even if not total logical separation.
If you need better separation, you can have multiple sessions open at once with separate window managers, user accounts, file system roots, whatever you need - at the same time. I'm hazy on the implementation details but I've seen it done. Altho, this might be a bit old school today, with VMs taking less resources and stuff like docker existing.
There are couple of issues¹, but this is still by far the best approach I can think of. Actually, I don't understand how other people can manage their stuff without per-project virtual desktops.
¹ cannot rename virtual desktops on macOS, not all apps can restore their windows on correct desktop after reboot, not all apps support multi-window workflow (e.g. Slack), "minimized windows" area in dock should be per-desktop instead of global
PS. Fluid.app is nice way to create project-specific native app instances from web applications, e.g. Trello, Jenkins, etc. Plays nicer with virtual desktops / cmd+tab than browser windows. (With the cost of memory.)
The main issue I have with this setup is Cmd-Tab doesn't handle multiple windows of the same app that well. If I have multiple Safari windows in different desktops, it would basically just (randomly?) pick one and open it when I Cmd-Tab into Safari.
I really wish Cmd-Tab would be constrained to the desktop I'm currently using... Anybody has a solution for this issue?
It provides Cmd-Tab/Option-Tab replacement that shows all apps' all windows regardless of their desktop or full/split screen status. You can even search within window list.
It also has gestures and numberered switch for apps/groups.
Mostly it works without a hitch. Sometimes macOS' original Cmd-Tab manages to get first and both can arrive together, but that rarely happens. When macOS opens apps to multiple desktops and full screens on startup I have to sometimes let it know what apps are available by switching through them using Exposé (or whatever that's called).
I have no affiliation, but I'm a paid user.
Personally I've no issues with cmd+tab - I use it to cycle between 2-3 recently used apps, works fine for apps in the same space (which is the idea of per-project spaces).
The dock I keep minimized, not much use for it with spaces because it has global state.
Cmd+h is handy for hiding global apps out of way (can be revealed again with cmd+tab).
You can set applications to open on specific desktops, or any desktop. This combined with moom[2] really makes macOS a pleasure to work with and alleviates the need for multiple monitors.
There's been a lot of talk of people switching from macOS recently and while it's not unfounded I'd struggle replacing this setup.
As far as the initial setup is concerned, this is fairly easily scriptable. Pretty much everything in System Preferences can be set using `defaults write`, there's loads of dotfile management tools, and most other things can be generated with templates using something like Cookiecutter. You can get a completely customised user account in a few seconds just by running a script and answering a few questions.
Btw your idea is very cool. I have at least three contexts too: personal, job-related and somewhat job-related (trial periods that I always miss without touching, etc). I tired of relogging into different accounts and being careful with my From field, thanks for the hack. Cannot believe I didn't figure it out myself.
On OSX you can achieve something similar with multi-desktops.
I have a functional prototype I'm planning to share as soon as I've polished up the UI.