How I use multiple desktops to get things done

I’ve been getting questions from co-workers and friends about how I have my desktop setup so I can get to any application I need quickly. I’ve been flattered by a few people adopting variations of my setup, and realized that I should share it just in case it might benefit some of my readers.

I know that your needs are different than mine, so pick off what you like. I’m happy to give quick setup guides for anyone that asks.

First things first: 2 Monitors

For as small of a cost as an additional monitor is, I’m disappointed that more employers don’t provide a multi-monitor setup for their developers.

Do the math: if you get an extra monitor for $250US and it increases your efficiency by even 1%, it pays for itself in 6 months or less!

Anyway, I have a somewhat typical laptop + monitor setup, and the extra screen real estate is quite helpful, especially since I can keep my browser on one monitor always and then move to all my other applications with a keystroke. Nothing too special there, but the point here is play the smart money card to get a multi-monitor setup if you can.

Desktops: 4-5 wide, 1 deep

Linux definitely makes it easier on me since I get multiple desktops built-in. Obviously, you can use Spaces on a Mac or VirtuaWin on Windows (and I do) to get the ability.

I use 5 desktops (VirtuaWin can only assign hotkeys for 4, unfortunately) and assign a hotkey (Ctrl + 6 to Ctrl + 0) to immediately switch to the appropriate one:

  • IM clients and chat windows
  • E-mail
  • Browser(s)
  • Shell(s)
  • IDE/Text editors

The advantage I see here is that I never have to think to get to any window, I can seamlessly move between exactly what I want all the time. I never have to search through an expose-like interface or alt-tab through a giant list. However, I don’t have the ability to open up a ton of windows or it degrades quickly. I’m also lucky in that I don’t need a whole lot open all the time.

If you don’t need to keep a ton of different things open constantly, you might give this a shot.

Why it works for me

Any possible time-saving aside, I like to keep complete focus on what I’m doing. I don’t want to have to think about where that IM window is. I like to think that keeping everything easily accessible saves me brain cycles that can quickly go toward the task at hand.

I’m hoping this will inspire some of you to consider how you can setup your screen real estate for maximum productivity.

Do you have any suggestions, or perhaps you think your desktop setup is better? Hey, I’d like to hear it so share in the comments!

UPDATE: I should have probably mentioned that I use Gnome-Do (Linux) and Launchy (Windows) as a launcher. I also use Compiz’s Place Windows plugin to put all my windows on their respective desktops. I have most everything I need automatically started at boot time, so I just boot up, login, and go get coffee while my computer sets itself up :)

If you liked this post, please help me share it

Responses (30)

  1. [...] Random Feed wrote an interesting post today onHere’s a quick excerptI’ve been getting questions from co-workers and friends about how I have my desktop setup so I can get to any application I need quickly. I’ve been flattered by a few people adopting variations of my setup, and realized that I should share it just in case it might benefit some of my readers. I know that your needs are different than mine, so pick off what you like. I’m happy to give quick setup guides for anyone that asks. First things first: 2 Monitors For as small of a cost as an additiona [...]

  2. David Walsh says:

    Awesome article. While I’ve never been huge on multiple desktops, I don’t know where I’d be without multiple monitors for development. It makes development go much faster and gives me, simply, more space.

  3. @David:
    Thanks! I’m curious, how do you setup your desktop? You could probably make it a great blog post…

  4. Joe Breen says:

    Eric,

    Great post. I’m also a big fan of multiple monitors and desktops. Your setup sounds similar to mine except I’m running a mac with spaces enabled giving 8 desktops. As confusing as that may seem it works great for me because I usually run 2 virtual machines for development on Windows and SharePoint. Then IM, Browser, Mail, iTunes, MindManager/Task Management, Other Applications running on the other Desktops.

    Works good but when I’m on the road/customer site without multiple monitors my productivity goes rapidly downhill.

  5. @Joe:
    Yeah, when I don’t have my 2nd monitor it’s terrible. I’m spoiled I guess…

  6. Serge says:

    You could add the use of SplitView…it does exactly what it says…resize the current application window to half screen, or a quarter just with a keystroke.

  7. @Serge:
    Interesting..I’d never heard of SplitView. It would be most useful to keep all those IM windows in order. Thanks!

  8. rtra says:

    I was expecting more from this article.
    Anyway, i use 9 desktops and two monitors:
    1 - my main working area; this usually has one emacs frame and one mathematica window.
    2 - documentation
    3 - personal organizer (emacs frame with org-mode, calc-mode and calendar-mode windows
    4 - htop for a bunch of machines
    5 - shells
    6 - music player (mocp)
    7 - browser
    8 - email / irc / im client (3 or more emacs frames)
    9 - things I rarely use (bittorrent / vmware consoles)

  9. @rtra:
    I didn’t want to detail every small part of my environment, but what are you missing? There’s nothing too intricate about my setup unless you count all the hotkeys I have setup for Firefox, my IDE, etc.

    I guess I’m trying to express how I try to use simplicity to my advantage. If you have anything you’d like to hear more about, I’m happy to share.

    Also, I’m guessing you hotkey all of your desktops as well?

  10. foff foff says:

    When I need to get work done I close everything unrelated to the job.

    Sorry but IM and Email are things you should close.

  11. Serge says:

    @foff foff
    in my case, what if the job is done by telecommuting?

  12. Chris Coyier says:

    I love the 1% productivity increase = pays for itself math. So true. There is no doubt about it, double monitors are essential for people who are in front of a computer all day.

  13. @foff foff:
    Yes, I understand the case for promoting focus by removing distraction, but I’m in a place where I need to be available reasonably quickly if needed. My office culture really doesn’t promote phone calls, so IM/Email is our method. Gotta fit the culture sometimes.

    If you are in a spot where you can remove that stuff, stick with it if it helps.

    @Chris:
    That kind of math always seems to come up, doesn’t it? I see the trend improving, though.

  14. Inf J says:

    I’m not really a fan of virtual desktops…

    The setup that works for me is dual monitors + ultramon (windows only). Ultramon places a taskbar on the 2nd monitor. If I drag a window from monitor 1 to monitor 2, the task bar button will move from monitor 1’s taskbar to monitor 2’s taskbar. I have no idea why this isn’t built into windows - it is the single biggest productivity booster for me. If I wanted, I can have twice as many windows open as a normal user without losing my mind. I constantly rave about this small little program but every programmer I’ve talked to refuses to pay $30 for a “second taskbar”. It’s kind of odd because it’s the first thing they inquire about when they see my setup. Some spend more than that during lunch… I can’t understand why people refuse to pay for useful software… /rant

    I typically center the primary monitor in front of me and have the second angled off to my right. The primary monitor has my IDE(s). The second monitor has one instance of Firefox open for email, one instance of Firefox open for testing, one instance for documentation. Skype is always docked to the right of the 2nd monitor.

    Some of the linux guys here use “awesome” - a tiling window manager. But they also use editors such as vim and emacs. I like my heavyweight IDE’s such as eclipse and Netbeans, and they tend to require the full monitor, even if I’m running a very high resolution. I’ve tried using Win Split revolution on the second monitor, but it doesn’t seem very natural to use…

  15. Binny V A says:

    8 Virtual Desktop + 2 Monitors. I would also recommend using a launcher(Gnome-do, Katapult, etc.) to start apps.

  16. Jan Choike says:

    Great article, especially with describing the logic for how multiple monitors will provide a return on investment with 6 months. Instead of ViruaWin, I use Virtual Dimensions (http://virt-dimension.sourceforge.net/). I tried VirtuaWin before, but did not like the unnecessary complexity, when compared to Virtual Dimension.

  17. @Binny:
    Yes, I use Gnome-Do. I also have all my main applications: Thunderbird, FF, Shell, Pidgin automatically launched and placed on their respective desktops via the Compiz Place Windows plugin.

    @Jan:
    Thanks! I’d never heard of Virtual Dimensions. I’ll have to check it out.

  18. good samaritan says:

    Instead of all the GUI apps and desktops (gnome/kde etc)
    I use only text-based apps and tiled window manager.

    my setup:
    OS - ubuntu
    window manager - dwm. (u have 9 ‘workspaces’ - alt + #)
    programming - vim (u get auto-complete and fuzzy-search a la textmate with plugins)
    chat - fidgin (text-based version of pidgin)
    irc - irssi
    torrent - rtorrent
    video/audio - mplayer
    podcast client - hpodder
    rss reader - newsbeuter
    image viewer - feh

    when away from my machine I connect with ssh and screen and can use all of the above since they all run in a terminal.

  19. @good samaritan:
    Yes, it’s very productive to use text-based apps for everything. It seems like many of the very brightest guys I meet do this, especially because it is the most portable environment: just SSH and you have everything.

    The toughest thing to replace in my opinion is web browsing. It’s just not the same, and obviously if you’re doing testing on a GUI, you need to use it.

  20. Vasudev Ram says:

    Good post. Productivity tips are often worth checking out, and the stuff about virtual desktops was interesting.

    However, good samaritan has a good :-) point.
    Text-based apps are definitely very productive for a lot of people. And it’s not only because of portability via SSH; there’s another big factor - not having to constantly switch one of your hands between the keyboard and the mouse, makes for *much* faster typing. One doesn’t always need to type fast for long periods at a time, of course - part of development is thinking - about the requirements, the design, the code, the tests, the bugs, etc. But once you’ve done enought thinking to be able to get a chunk of programming done (coding, actually, in the more literal sense of the term rather than as a synonym for programming), then, if you’re one of those who can type fast, there is absolutely nothing like the speed of development that’s enabled by text-based apps, e.g. just pure vim and an interpreter or compiler (depending on which language you’re working in) - particularly when you’re on any UNIX variant, of course. Nothing else even comes close. Of course this only works for non-GUI development, i.e. text-mode apps desktop or server-side apps (although, strictly speaking, depending on the environment, it is sometimes possible to do the actual coding of even GUI apps in a text-based environment, and only use the GUI for runnning and testing your code - for example, with wxPython).

  21. Mike Henderson says:

    I am using a iMac for my work computer 1920×1200. I can see where the hot-keys can be very useful. For my needs though, I see Exposé as a productivity tool. I can quickly switch through apps in a visual way without much effort. Maybe I have a different learning personality.

    The thing thing that sucks with an iMac is I am limited to the one display so I keep browser windows have the the screen size so I am able to fit them side by side for certain situations.

    Recently I have started to look at using multiple desktops using spaces. Mac really makes it nice since you can drag any application into a desktop in a visual way. And if I need to find an app I can just click it in the dock and it will take me to the appropriate space.

    In Firefox I have 10+ tabs open at a time. The add-on Firefox Showcase helps me navigate these much like Expos&eacute. Maybe some of your readers might find this useful. :)

  22. Mark says:

    Nice article :) Always interesting to see how others have things setup.

    The only thing better than two monitors is to have one of the two monitors tipped longways for better browsing and coding (If your monitor rotates).

    Mark

  23. @Mark:
    Interesting idea! I’d never tried flipping a monitor vertically…

  24. [...] reading this blog on multiple desktops setup , I realized I should really try to make use of this neat feature in Ubuntu. Since Ubuntu 8.10, [...]

  25. Michelle says:

    Eric, interesting discussion. Makes my 1 desktop look pretty dang wimpy. Hey, not trying to sell product here, just payback since you and Chris were talking. Take a look at the calculator here: http://payback.ergotron.com. Payback can be in days or weeks, not necessarily months, no matter what kind of stand or display you’re looking at. I use dual-display at work, but have to work the numbers for the homefront. This thing is helping me with the opportunity cost rationalization as well. : -)

  26. @Michelle:

    Nice, thanks! I’ll probably have to use this on my boss sometime…

  27. Garf says:

    Ha, finally adopted the multi-monitor I see. Wonder where you first saw that at….

  28. @Garf:

    Yeah sorry I didn’t save the pic you sent me like 3 years ago or I’d have used it for this post ;)

  29. CrypticSwarm says:

    I tend to set up multiple desktop in either a 2×2 or 3×3. If i use a 2×2 i can jump to any other desktop immediately. If i’m using a 3×3 i tend to do primary work in the center one and can still jump to any of the other ones immediately (using arrows).

Leave a Reply