For a few months now I have been working with a dual screen setup. I have built configured up 3-4 screen get ups for several people at the office (usually using VillageTronic VTBook PCIMCIA video cards) and I finally decided to try this sort of thing myself. So I popped the laptop out of the docking station and set it up next to my main monitor as a secondary display. This worked surprisingly well, and I liked it so much that this is my permanent setup.
In case you are interested, it looks like this:
The monitors don’t really line up, but it’s not like I need them to. I’ve been working this way for a while and I finally feel that I can comment on the experience. It is overwhelmingly positive of course. Having a second display to work with is great and any drawbacks are outweighed by the ability to have two documents open side by side in full screen mode. But yes – there are some drawbacks. Or rather little quirks that no one ever notices until they hook up second monitor to their machine. Most of the time I work under KDE so that’s where I notice most of these quirks. I did use Windows in this mode too, but not as extensively.
The truth is this: most of our software is written with one monitor in mind. Let me give you couple of examples – like maximizing windows. When you maximize a window, it fills up the current display which is actually a good thing. It works this way both in KDE and windows. No one wants to span documents across separate displays. Unfortunately, once you maximize a window you cannot move it to another display by dragging it. It gets locked into place. Of course if you are a KDE user you can still drag the window silhouette on your pager – that still works. But most people who get a dual or triple screen setup do not realize you have to un-maximize the window, drag it and then maximize it again.
The very concept of task bar and system tray is geared toward a single display setup. You could always span your task bar across your displays but I found it inconvenient. In most cases your menu, quick launch buttons and most of the open windows end up showing up on your leftmost screen, even if they are open on another display. This is especially inconvenient if you use different sized displays (like mine) and your leftmost screen is not your primary one. So usually you end up with the task bar contained in it’s entirety on your main display.
Once again this is not convenient because if you have more than a few windows open you never really know which task bar entry belongs on which screen. In KDE you can sort of get away from the confusion utilizing virtual desktops. I usually run with 6 and I try not to have more than 2-3 apps per desktop. This works nicely with a dual screen setup but if I need to open more windows it can get confusing.
Most linux distros are really great at managing virtual desktops with neat pagers that let you drag windows between them and see what is open where at a glance. The KDE pager adapts very nicely to this setup and and without it I would be really pissed off. I just wish there was a way to sort the task bar entries with regards to which display are they open on. I almost think each monitor should have it’s own task bar section or something like that.
You know which is the application that gives me most of grief in this setup though? Firefox! I’m a huge Firefox fan, and I love this browser to death. But I became painfully aware that Mozilla developers never really considered multi-desktop, mutli-display environments when designing the browser.
Let me give you a scenario here: let’s say I’m writing some code and I’m googling for a solution or syntax for particular problem. I have 2 displays and multiple virtual desktops. On desktop #1 I have my email on the left display and my Firefox on my right display. On deskotp #2 I have my IDE on the right and nothing on the left display.
I open bunch of search results in background tabs and check them in sequence. I find my solution on one of them. What I would like to do now, would be to “tear off” that tab and send it to the left display of my second virtual desktop so I can have both that tab and IDE up at the same time. Unfortunately this is not possible. The best I can do is to open a new FF window and paste in the URL into it. Which is less intuitive and takes few more actions:
- Drag+Drop using KDE pager
Yes, I can do it really quick, but ideally the sequence of actions should look like this:
You know which browser does this? Chrome! Google got the tabbed browsing paradigm right and I totally want the ability to tear off tabs in the next release of Firefox.
Long time readers will notice that last year I mercilessly bashed Jeff Arwood for saying the exact same thing. Now I’m forced to humbly eat my own words. Tabs are perfect for single screen setup – but once you start adding new displays into the mix their value diminished as your screen real estate increases.
After using side by side configuration for few months I know exactly what Jeff was saying, and I’m now inclined to agree with him. Then again, I still use them extensively. I tend to have one *main* instance of my browser where I have multiple tabs open at all times. This is where I do most of my web browsing. Then I open pages in new windows and relocate them to other desktops and displays as needed. Which is where another problem creeps in: sessions.
Sessions work perfectly each time when you only have a single window of Firefox open at all times. You close the window and next time you open the browser it will restore your state. This sometimes becomes tricky when you have 2 display and 6 virtual desktops. If you have multiple windows open, then clicking X closes the current window and all it’s tabs – it does nothing for the rest of the windows. Which makes sense. Only that it ruins your session. Let’s say you have 3 windows open – the first one has 4 tabs, the second one has 2 and the third one has a single tab with some silly thing that you opened and forgot about. If you close these windows in a sequence Firefox will only remember the state of the 3rd window. This means you lose all the tabs from the first two.
I’m not saying this doesn’t make sense – it does. This is actually by design. You don’t want unwanted windows to hang around forever. If you want to preserve multiple-window session you need to use the Quit command in the File menu. But I can’t tell you how many times I ruined my sessions this way. You won’t get this unless you rely on browser sessions the way I do. I frequently don’t even bookmark websites – I just leave them open in a tab because I know Firefox will restore them for me no matter what. Even if my machine blows up – if I can get a copy of my Firefox profile onto a new computer, then it will open up with the browser next time I launch it.
Now I’m training myself to always use the Quit command to close the browser but old habits die hard. I never had this issue in a single display setup because I never really saw a reason to have multiple windows of FF open at the same time. Now I do see a reason, and I’m painfully aware of all these little quirks that go with it.
Similarly, I never saw a reason to run VirtualBox in seamless mode. I sort of liked the fact all my Windows apps were contained in a single window. As soon as I got my multiple display thing going, I decided to give it a whirl to see if I could spread them out a bit. No dice. Apparently the seamless mode is irreversibly b0rken and whenever it detects multiple displays, it keels over and dies.
The funny thing is that no one ever even things about these things until they get a second display. Most developers don’t test their software in multi-screen setups because hardly anyone has them. I’m as guilty of this as anyone – for example my PerfMonG monitoring app used to disappear when you moved it to a secondary display and then disconnected it. I never even considered that this could have happened – cause I never really used dual screen setups.
Something tells me that things are going to continue to be this way for a long time. Multi-display environments are still rather uncommon and I don’t see them becoming mainstream anytime soon. Then again, I see more and more places investing in dual-head rigs for their developers which gives me a glimmer of hope here. If programmers work with multiple screens on a daily basis they will be sensitive to the issues that come with such environment.
“Luke, why don’t you use Chrome instead of Firefox then?”
I tried, but there is no Chrome for Linux and the open source port (Chromium) is still very flaky. Whenever I tried to drag it onto the second display it would get confused and jump back to the main one. That’s why.
Also: Firebug. I need it. The lite version just doesn’t cut it.