This Blog has moved!

This Blog now lives at Comments on this page are disabled and it is only kept because of my general aversion to broken links. Please update your feed readers to

Monday, April 30, 2007

My Very Own Mac Desktop Interface

The Mac has a great user-interface. Everybody knows that. No-one can ever explain exactly what it is that makes it so great, but it's great. Any sane person only has to use a Mac for a little while to realize how superior it is to every other GUI, even those he's never heard of or those that aren't really implemented yet. Some people may disagree, but that just means they're Windows fanboys and thus not worth listening to.

Well, call me picky, but that perfection is just not good enough for me. And judging by the number of user-interface add-ons available for Mac OS X, I'm not alone. I've tweaked my Mac so much that it doesn't even look like a Mac anymore, and that's not because the Mac is that bad. It's just that from my perspective it can still be improved quite a lot, and since there's plenty of ways to do exactly that, I did it.

First thing first: the Dock sucks. Interaction design guru Tog wrote about this a while ago, and even though Tiger has improved a few things, most of his points still hold. The Dock is a low-density widget that only works well for someone who only ever uses the same five apps and three documents, and that's not me.

The other big problem is that the Mac interface is made for multi-tasking. (If you don't find that self-evident, ask yourself why the green "Zoom" button doesn't actually zoom.) That's awesome when you're working on stuff that requires multi-tasking, like blogging or reading emails or brainstorming with a bunch of people in an IM session. However it's not so great when you need to finish a boring report, especially if you're me and you have the attention span of a ferret with ADD and a caffeine addiction.

Hence after using a Mac for a couple of months, I got annoyed at some of its GUI quirks and decided to do something about it. I quickly came upon an article by Tog called Make Your Mac a Monster Machine, and since then my Mac Desktop has changed forever.

Nowadays I refuse to settle for a single user interface. I have two. The one I use most of the time is optimized for multi-tasking, just like the original Mac Desktop, and looks like this:

The other one I use when I need to focus on just one thing. It looks like this:

Unless you've tried this kind of setup before it probably looks stupid, but I've found it really helps me concentrate on what's really important for the work at hand.

To achieve this setup, I use a lot of different utilities and applications. Although I use all of them, there's no reason you have to, so I've decided to simply list them all and describe what they do. I guess most people will try them one at a time and figure out whether they work for them or not. So, without further ado, here's the list:

  • VirtueDesktops: If you've used Linux recently, you probably know what virtual desktops are and how useful they can be. VirtueDesktop is a pretty good implementation of the idea, and it's free. The two features I really like is first how easy it is to bind applications, forcing them to always stay on the desktop where they make the most sense (I've got Mail, iCal and Address Book bound to my "In" desktop.) and the wealth of keyboard and mouse triggers you can set up to go from one desktop to another or move applications around. This will likely be replaced by Spaces once Leopard comes out.

  • QuickSilver: This thing is unbelievably cool. The first time you use it it looks like Just Another Application Launcher: hit ⌃-space, iTunes, ↩ and iTunes appears. That's already pretty useful if you're a keyboard junkie, but when it comes to Quicksilver, launching is not so much scratching the surface as polishing it with a soft cloth. From its minimalist interface, Quicksilver allows you to open documents with any app, navigate the filesystem, create folders, move and copy files. It also comes with a wealth of plug-ins that allows for FTP upload, controlling iTunes, creating iCal appointments, reading your address book, searching Google, and pretty much everything you can think off, all in just a few keystrokes. After using it for a few days, you won't believe how you ever managed without it.

Most "power-users" think the mouse is inherently inefficient and that you can be a lot faster with keyboard shortcuts. This is mostly true, but for some tasks the mouse feels a lot more natural, and with a well-designed interface it can be mighty fast, too. The next four utilities make launching and switching between applications with a mouse much faster.

  • DragThing: This is a bit like the dock, except it is better in all possible ways. It can store hundreds of applications, documents or urls in a fraction of the Dock's footprint. Best of all, it puts them in predictable places, which makes finding them with a mouse a lot faster. As an added bonus, you get a nice trash can in the bottom right corner of the screen, which is a lot faster to access than the dock's.

  • Application Switcher Menu: This is just like the Applications menu from OS 9. It sits in the top right corner corner of your screen and shows all your open applications. With a single click you can switch to an app, quit it or hide it, without ever touching the keyboard. It's especially useful with VirtueDesktop, since Expose only shows Apps from the current desktop.

  • WindowShadeX: This is another haxie that revives a nice feature of OS9. It gives two new behaviours to all your windows: WindowShade, which rolls up the window inside it's title bar, and minimize-in-place, which shrinks it on the side of your desktop. Both are very handy when you have many windows open on a small screen.

  • StickyWindows: I found out about this one only a few days ago, and I'm starting to like it even though it's a bit redundant with WindowShade. It allows you to minimize windows into tabs and "stick" them on you screen's edges. By default these tabs are "automatic", meaning that whenever a stuck windows looses focus it minimizes to its tab, keeping screen clutter to a minimum.

Just a small hint: if you install the previous four applications, you'll quickly notice that you never use the dock anymore and it's just taking space there for no reason. Luckily, it can be totally hidden from view, even though the feature isn't well-documented. Just open up a terminal window and type these commands:

$ defaults write launchanim -bool no
$ defaults write magnification -bool no
$ defaults write autohide -bool yes
$ defaults write orientation -string top
$ defaults write pinning -string end
$ defaults write tilesize -int 16

then either log out and log back in or just force-quit the Finder. The dock is now hidden in the top-right corner, beneath the menu bar. If at one point you really need to see it again, hit ⌘⌥D. More info here. (By the way, don't you love operating systems that you can easily customize using undocumented NeXTStep commands that Just Works? Never mind...)

This takes care of my multi-tasking desktops. As said earlier, I also have a "single-tasking" (aka sensory-deprived) desktop, inspired by the distracted mac from the Macbreak podcast. This uses two more utilities:

  • Backdrop: This just displays a uniform wallpaper above your desktop, hiding all your icons and other applications. Originally it was made for taking nice screenshots, but it works great as a focusing aid for the attention-challenged.

  • MenuShade: Okay, you've got Backdrop running and your whole desktop is hidden. Suddenly that menu bar on top of the screen looks really bright and it's kinda annoying. MenuShade allows you to dim it, either totally black or totally bright or anything in between. When you hover your mouse near the top it reverts to full brightness for best legibility. I set it to not quite black, so that when I'm looking at it I can still aim for the right menu, but the rest of the time it simply disappears.

I've added those last two utilities to my Login Items, so they launch automatically when I turn the computer on. Using VirtueDesktop, I've bound them to my third desktop, which is called "Work in Progress". This way I always get the same setup when I log in, with the usual interface, and when I need to concentrate on something, the sensory-deprived desktop is only a keystroke away.

This is it! A super-powerful user-interface explained in just a dozen paragraphs! Don't you wish everything was that simple ?