I dream of an OSX desktop environment where the principal unit of organization is a project.
A project could be:
- “Development work for Codex App”
- “Development work for Choice by Choice”
- “Website for Codex App”
- “Website for Logic Colony”
- “Work on Codex Blog”
- “Work on Personal Blog”
- “Learn about Marketing”
- “Communication/Social Networking - Procrastinating”
Working on a project could require using many apps. Development work for Codex might involve using: Xcode, iOS Simulator, Source Tree, Terminal windows, Safari windows.
Another development project (e.g. working on ‘Choice by Choice’), might involve using the same apps, but with different windows and desktop arrangement, and of course different app state in all of the apps.
I should be able to see a list of all my current projects and switch between projects at will. When I switch projects, the relevant apps and their state should be restored from the last time I used them, as if nothing had happened since.
The OS should keep track of how much time I spend in each project and provide me with a breakdown of this information in a nice dashboard.
I also want the freedom to arrange my virtual desktops (Spaces or Desktops) however I wish. I don’t want to be forced into using a linear arrangement of screens, because I like to think spatially, and arrange my work in a grid.
If I ever have to restart my machine, it’s never a big deal. Once the OS has finished updating itself (or recovering from some kernel bug), all my projects are still available. All the apps and data making up that project are ready from where I left off, as if nothing had happened.
OSX does a very poor job of supporting this kind of working style at the moment. I used to keep all the apps and windows for all my projects open, but restarting the machine or certain apps usually meant some app state was usually lost. Trying to navigate between apps and projects was annoying and tricky. I’d end up spending time and mental effort managing UI and app state, so I’ve waved the white flag on this work style at the moment.
My current ‘solution’ is to keep a text file list of my active projects. For each project the file keeps a list of apps and some notes about their state. I now manually close down all the apps in one project, then switch over to the other project.
I could probably write some scripts to automate some of this. And I also could look into buying things like TotalSpaces and TotalFinder to improve the shortcomings of OSX.
But I shouldn’t have to.
With all the computing power a modern Mac provides, and with more and more casual computing being done on mobile devices, I think it’s time the OSX desktop environment started getting serious about supporting complicated and multifaceted work flows.
I love my iPad, but the last thing I want is for my desktop environment to be taking design cues from a much more limited environment. I want my desktop OS to be pushing hard in the other direction - making use of all the computational power at its disposal, the extra screen real estate and multiple monitors.
It’s time for OSX to get serious. It’s time for OSX Pro.