Today will be a bit off-topic and a break from the (just started) workflow stuff.
The sweetness of dual screen…
A very comfortable thing when working with photographs is to have a dual screen system. The principle is to have one monitor with your tools / programs and another one (color managed) with your photograph on it. I have a flat monitor normally attached to my computer (for office work, web browsing…) and an extra (old) CRT which I use for photography. The CRT is color managed.
This allows you to have your image in full screen mode, while having enough screen estate at your disposal to work on the layer’s palette and have the brushes dialog open as well – and still see what is going on. Incidentally, we can see the logic behind The Gimp (and Cinepaint) opening a new window for each tool / palette.
… the traditional (read: painful) way …
If you are a little bit familiar with Linux, you probably know that enabling dual screen has been a pain in the a… neck for as long as one can remember. Today, most (if not all) the graphic cards have the ability to manage two screens – either by cloning them (you see the same thing on both screens) or by extending them (your two screens act like a giant one – what we are interested here).
Now that usually meant fiddling around with your xorg.conf file, trying not to mess up the screen, server display and xinerama sections. The process was time consuming and the outcome hazardous: the walking definition of frustration.
And even if you had managed getting a xorg.conf that worked in two screens mode, you still would have to modify it to move from one to two screens and restart X. I ended up with xorg1.conf (for 1 screen) and xorg2.conf (for 2 screens) and copying the file I needed to xorg.conf (as root…) and restarting my X.org server (ctrl + alt + bkspace in Ubuntu). Far from ideal and easy.
…and the X.org 7.3 (read: schweeeet) way.
Now Keith Packard (one of the X.org gurus, he has an entry in wikipedia) has been demonstrating a new version of xrandr (1.2) which allows monitor hot-plugging in X.org. That’s right, it does what it says! And the best thing about that is that it is coming in Ubuntu Gutsy Gibbon – I never have the patience to wait for the official release, so I always end up with a beta system.
So with xrandr 1.2, we have the ability to start and stop a monitor on the fly. Typing
in a terminal spits out something like
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 2560 x 1024 VGA-0 connected 1280x1024+0+0 (normal left inverted right) 338mm x 270mm 1280x1024 60.0*+ 75.0 59.9 1024x768 75.1 70.1 60.0 800x600 72.2 75.0 60.3 56.2 640x480 75.0 72.8 60.0 720x400 70.1 DVI-0 disconnected (normal left inverted right) S-video disconnected (normal left inverted right)
We see that the different outputs are recognized. Now typing:
xrandr –output DVI-0 –right-of VGA-0 –mode 1280×1024
starts the new monitor in giant screen mode, right of your current screen – no need to restart X.org, log again and reopen all your application. How sweet! There is a wiki here that goes into more detail about xrandr 1.2 status.
Now this is quite new so it is not perfect or production ready. So here are a few words of caution:
- You still need to keep an xorg.conf around. I had to setup a virtual screen in the screen / display section in order to have xrandr 1.2 work as expected (virtual 2560 x 1024)
- It only works with Intel and (open source driver) Radeon cards (I think, mine is a Radeon 9550 and it definitely works)
- Last time I checked, my card’s second head had to be initialized at boot time otherwise it won’t accept hot-plugging – so you can hot-plug a screen but only if the screen was attached to the computer at boot time.
- It is only command line for now, but projects are blossoming to take advantage of this new functionality (think: a nice gui dialog popping up when a new monitor is inserted…)
All of that would be of little use if color management didn’t work. But it does. Or at least, your two monitors are considered as one giant screen which you can calibrate with xcalib – so basically you create an ICC profile for the monitor which you will use to display your photograph and you load the profile with xcalib. Your photographs monitor is color managed – but your tools monitor is not. I haven’t found a way to have two monitors acting as one giant screen, but applying two different ICC profiles one to each of the monitors.
So like so many things in Linux, good stuff to look forward, even if it is not quite there yet…