Some time ago a pal peeked over my shoulder when I was working on my home office computer and went “whoa, dude, your Dock is full!” I’m so used to seeing the 30 or so icons stuffed into the lower part of my desktop that it took me a moment to realise what he was talking about. Now and then I go through the icons, trying to prune them a bit, but every time I reach the conclusion that I’m down to bare basics – stuff I need pretty much weekly.
The conversation made me remember one of my pet peeves about operating system user interfaces: you really can’t customize them to suit the task you are doing. No matter if I’m using the computer for editing video, surfing the web, watching movies or playing games, the thing I get when I boot up is the same exact desktop and menus for all of these tasks. This is of course about as sensible as carrying two full toolboxes with you although you know the only things you need are a screwdriver and pliers.
All right, I have to admit that maybe I use my computers in a rather more diverse way than an average user. When I was a full time freelancer and working mostly on Windows platform, I used the computer for writing and researching articles, doing translation work, gaming, listening to music, watching videos, doing web design, programming, surfing the net just for fun, and so on. All of these tasks required different applications, different source material and different work processes. The result was that my two monitor desktop was full of icons, which I tried to keep in check with toolbars attached to the sides of the screens. When I got out of the full time freelancer gig and switched to Macs, I added video editing to the mix of stuff I do with the computer – the result being a chock full Dock and an icon filled desktop.
TASK ORIENTED USER INTERFACE
The solution for my problem is actually kind of easy: I would like to create several modes which govern what shortcuts and icons do I have on the desktop or Dock/Start menu, and what programs should be running or switched off automatically. I want an easy to use menu where I can choose a task I’m doing at the computer: “Video Editing”, “Lazing & Web Browsing”, “Gaming”, “Movies” etc. and I want the menus, the desktop and certain settings of the computer to reflect that choice.
When I switch to, say, Video Editing mode I want to see all the editing programs in my Dock, I want BOINC and other resource hogging programs turned off and I want my browser to give me a page with the relevant video editing resources I’ve chosen. When I choose “Gaming”, I want every application to shut down, my Raptr client to fire up and the shortcuts for all my games on the Dock, and so on. When I turn on the laptop in the morning and kick it into the “Morning” mode, I want it to open up email, my list of webcomics and Spotify for the morning music. You get the gist.
USING SEPARATE USER PROFILES
When I bitched about this to a pal, he suggested I create different user profiles for the different tasks. I tried that briefly, but it turned out to be a complete mess on both Windows and Mac. First of all the user profiles don’t really share information. You’ll have to set up e-mail, the browser, instant messengers etc individually for each profile, logging out of them shuts everything down and letting them run on the background consumes resources and is generally confusing.
Besides it’s the wrong paradigm. I want the modes to reflect the reality: there is one user with one set of information, who does different tasks and needs different tools and a different operating environment for those. When I add a browser bookmark in one mode, I want it to be available in every mode. When I add an instant messenger contact, I want it to be available in all the modes, and so on. It’s important to realise that what I’m referring to here is just a change to the user interface and maybe some other settings. I don’t want to hide the existance of certain files or programs completely, I just want to regulate what I see on the Desktop and the associated toolbars and quick menus.
MODES IN USER INTERFACE AND APPLICATION LEVEL
Most of the things the modes require can be done simply in the operating system user interface level. If the operating system supports virtual desktops (such as Mac’s Spaces), a basic way to do the mode based thing is to allow the user to create a different Dock or other quick menu for each virtual desktop.
In my ideal system there would be one master mode, which corresponds to how the user interface is set up nowadays – as in every goddamn thing being visible. With a hotkey you can get up a menu with all the available modes. Dragging and dropping items from the desktop, Dock, Start-menu or whatever on top of the button for another mode adds the items in that mode, in the respective place. This could also be done simply by right clicking the item and checking all the modes it should be visible in.
Something that sits in between OS and applications is the possibility to shut down or start certain applications when the user changes the mode, and to tinker with the OS settings. Maybe in one mode the volume should be higher or lower, maybe some processes would automatically be bumped to highter priority than the others.
If and when we make applications aware of the mode, the possibilites are endless. Off the top of my hat, what I’d like to do is to have an instant messenger hide me from all the instant messenger work contacts when I’m not in any of my “working” modes – and when I am, I’d like to automatically appear as offline for some chatty online pals. When I’m on my “Translation Work” or “Web Programming” modes, I’d like the browser to default to a portal page with relevant resources I’ve myself added there. I’d also like to have my e-mail program give the main focus to either my private or work e-mail accounts depending on the mode I’m in.
OVERSIMPLIFICATION AND SPEED BLINDNESS
The risk in developing task based UIs is that they try to do too much for the user. Someone gets an attack of overdevelopenitis, which usually results in a watered down “media and entertainment mode”, where the user can’t choose which media players he uses and the whole mode feels like trying to do a Tour de France with a tricycle and training wheels glued on your face. What you should give the user is a simple toolset for creating operating modes that suit his own tasks and processes – and not a toolset that’s spread all over the OS, but something that can be accessed mostly in one menu, or at least in a very standardized way across the system.
On the other hand I’m vaguely surprised if I don’t get any replies to this where someone suggests installing this and that open source tool, configuring the system this way and that, using all these handy scripts and generally going “the tools are out there and it’s really simple to do yourself, and don’t forget to recompile the kernel”. Sorry, but no. I want to spend hours and hours doing a non standard modification in my operating system about as much as I want to drive a hoopty that has to be hotwired to get it to start and requires an hour of tinkering and repairs for every 100 kilometers driven. I’ve spent almost a decade jumping through the weirdest hoops with computers, and if I’m not being paid for the actual tinkering, the threshold of doing that is really high – so I want something that works out of the box.
I honestly hope I’ll see something like this on either Mac OS X or Windows in the future.