The problem this app is working on is a real pain point for me. My current solution is to use multi user accounts on my mac (roughly one for each use context I have), leave everything open, and fast user switch between the accounts. This works well enough and has the advantage of lots of isolation between contexts, but the overhead of creating and setting up a new user account is too much to have more than a couple of these (I'd love to have one per project). One advantage of the example of this level of isolation -- I setup my mail program in each account to only be setup for the mail accounts relevant to that context so I only get mail notifications for the context I'm focused on.
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.
>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.
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.
Virtual desktops on Windows have been around since at least XP, albeit as a powertoy. I know at least AMD, and I presume Nvidia, also offer(ed) their own virtual desktop solutions as part of their GPU driver suites.
That's what I do except I use TotalSpaces[1] to use the trackpad to swipe up, right, down or left to each workspace.
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.
Yes, you can have multiple Safari windows and place each one in a different virtual desktop.
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 don't think this is true either. I just tried this, and it would switch to the safari window in the current desktop without fail - it was only when there's no safari window for current desktop that it switched desktops.
+1 for HyperSwitch. I have the standard cmd-tab for applications, alt-tab switches between all windows on the current virtual desktop and alt-` switches between all windows of the current application (across all virtual desktops).
System preferences -> Mission control -> When switching to an application, switch to a space with open application -> ticking off may help to limit cmd+tab for current space.
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).
I make heavy use of three-finger-swipe-up gesture to see all windows in the current space and thumbnails of spaces. (System prefs -> Trackpad -> More gestures)
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).
Okay if you want to split hairs sure Safari can do it but will it keep all the windows about your project on the correct screen? What about Word or Photoshop or Mail or Skype or Sketch or Numbers or Whatever. Will any of these programs filter by project on the correct screen like I want them to? Nope.
I have used project-per-virtual-desktop approach for years. I assign "shared apps" (Mail, Slack, etc) to all desktops (option-click via dock icon). My "project apps" are mostly terminal, text editor, and browser windows.
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
Too much hassle for me. I don't have a need for project specific emailing.
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.)
OS/2 used to have that feature. You could flag a folder as a project in the desktop environment. Anything you opened from that folder was part of that project. Close the project folder, everything opened from it closes. Open the project folder, everything you had open from it last time opens. And I'm pretty sure (it's been ~20 years since I used it) that it would also hide all everything if you hid the project folder.
Have you looked at KDE activities? It's been around since 2011 or so (assuming it's still around in the latest version--seemed to be there a couple months ago).
KDE has had the wonderful Activities feature for years. I believe that it even filters email messages in Kmail per Activity, though I still use Thunderbird.
Interesting way to see it. I have a way to tab between projects in emacs (where only buffers pertaining to a project are shown), but having this system-wide would be good.
Eyebrowse looks good, I'll be happy if I can get it to select layouts w/ ido completing read. perspective supports that out of the box so worst case i can just that.
I do it the same way as you and it's a hell of a lot better than this. Everything is set up specifically for the client/project you're working on at the time – SSH keys, Git config, documents, mail accounts, passwords, you name it. All focused on the specific project and all isolated.
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.
I've been trying Freeter since it was posted here. It's definitely not bad, but I don't think it solves the isolation problem mentioned - but it does help me get my workspace back up after a restart.
Curious if copying homedir except Documents, Downloads, etc. and chown'ing could be sufficient. Maybe it should be more selective than that, but still possible?
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.
Depending on how the time travel feature of windows 10's fall 2017 update will work it might cover my issue: getting back to a past set of open documents, apps and webpages. Fingers crossed they make it powerful.
MacOS desktops aren't isolated, they pollute task switcher and notifications. They are useful if you use trackpad for primary navigation and not keyboard.
I've been toying with project-management features in various contexts for years, and I'm actually working on something that would solve this problem, as it also manages application state within a context.
I have a functional prototype I'm planning to share as soon as I've polished up the UI.
You may be stretching the definition of sort of. The Boeing factory, while indeed large at 13.38 million cubic meters, is sort of smaller than the Grand Canyon at 4.98 trillion cubic meters. This is like saying that the number 1 is sort of close to the number 372,457 (number of Boeing factories that fit in the Grand Canyon). Tongue-firmly-in-cheek I'm definitely going to go check out the Boeing tour now.
You are of course right, the Grand Canyon is vastly larger. The effect on my brain was still the same. I think maybe what happens is that some object break our ability to relate a thing back to human dimensions.
I don't get the same effect when looking at a skyscraper; maybe that's because each floor is usually visibly marked, so it can be related back to the self.
If most of the numbers you encounter yer day-to-day are on the order of 0.00005 (the relative volume of my house), then perhaps 1 would seem as unrealistically massive as 372,457!
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.