Go forward in time to April 2009.
The other day I wrote about the state of RANDR in GNOME. I have been working on some of the bugs around supporting multiple monitors.
These days, you get a confirmation dialog whenever you change your RANDR settings, because we still have to deal with sucky drivers that may crash when changing resolutions or the plugged monitors.
Gnome-settings-daemon brings up this dialog, as g-s-d is the central point for RANDR configuration changes in GNOME. However, this dialog of course appears when you click "Apply" in the Display Properties capplet. There was no way for gnome-settings-daemon to know the transient-parent window for the confirmation dialog, so the dialog could appear below the capplet. This is fixed now; g-s-d now lets you pass it a parent window ID and a timestamp.
I also fixed some bugs when restoring your original configuration during the first login. Since in a first-time login there is no monitors.xml file, there was nothing to go back to, and your original configuration was not restored. This is fixed now.
A silly crasher in gnome-display-properties, caused by me not actually plugging/unplugging monitors to test them (I would just change their configuration, but leave them plugged in all the time).
Finally, two patches for gnome-panel which are awaiting review. One is to fix the case where you plug in an external monitor to your laptop, and the panel moves to the external monitor. The other one is for when the panel appears "in the middle" of a high-resolution monitor when you also have a low-resolution one plugged in, and you are using Mirror Screens mode.
Are you a GNOME hacker living in Taiwan? Mail me if you are :)
Sabayon 2.25.0 "Bitter tea" is released
I've just released Sabayon 2.25.0. This version has a couple of bug fixes, plus tons and tons of translations (including a new translation to Sinhala, which means that 19 million people can now watch Sabayon break in their native language).
I'm pretty ashamed of this release. Sabayon 2.25.0 is KNOWN TO BE BROKEN. At some point, probably before the migration to GIO, Sabayon stopped picking up file changes to some directories while you are editing a user profile. This means that Sabayon saves mostly empty user profiles, which are useless.
Help in debugging this would be much appreciated. We also have a crasher that necessitates prompt extermination.
For my paranoid Mexican friends, coffeehouse revolutionaries, and fans of the long emergency — something to chew on:
RANDR is the X extension that lets applications see that they are running on a machine with more than one monitor: a laptop and a projector, a desktop machine with three monitors, a docking station, etc. Over the past few months many people have done a lot of work to make all of this Just Work(tm), but unfortunately there is still a lot of work to do.
We have done a lot of scattered work to fix RANDR — the X people work on drivers and the next revision of the RANDR extension; GNOME and KDE people work on supporting what X gives us and they define policies about how multiple monitors should be used; application writers fix their apps when something doesn't work well when you have more than one monitor.
Over the past week or so I have been collecting all the RANDR-related bugs, with the intention of prioritizing them and seeing just how things stand.
GNOME's support for RANDR has various parts:
GTK+: The GdkScreen API has simple functions to see how many monitors there are and which part of the big desktop they are showing. Most applications can simply use the GdkScreen API if they need to be concerned at all with multiple monitors. When would you use this? Basically, any time when you "want to do something with respect to the size of the screen" — you should do it with respect to the appropriate monitor, not with respect to the whole GdkScreen (as this will be as big as the sum of all your monitors).
GnomeRR*: This is an unstable API inside gnome-desktop, mostly for consumption by gnome-settings-daemon and the gnome-display-properties capplet.
gnome-settings-daemon and the gnome-display-properties capplet: These days, gnome-settings-daemon has a plugin that watches for changes in the RANDR configuration (did you plug/unplug a monitor?) and which runs a tray icon to let you fiddle with your monitors. The capplet lets you configure your monitors: side by side, one atop the other, their resolutions, etc.
The core desktop: This is essentially gnome-panel and Metacity or Compiz. The panel in particular has a bunch of bugs related to multiple-monitor support. These are unnerving since the core desktop is people's "last resort" when things go wrong — if people see a buggy random app they just think "buggy app", but if they see that the basic desktop doesn't work correctly, they think "Linux sucks".
Applications: Fortunately, most applications don't need to do anything special to support multiple monitors. Some want to do things specially, like OOImpress having a "presentation mode" with your notes in your laptop's screen and the presentation in the projector. However, most of the time applications just need to be careful about making dialog boxes transient to their parent windows, and stuff like that, for things to appear in the correct monitor.
Under all of that there is of course the X server and drivers for graphics cards. There are bugs there, too!
I've started keeping track of a few resources related to fixing RANDR everywhere:
Call to distributions: If you have custom patches to fix RANDR-related stuff in GNOME, please file the patch in bugzilla.gnome.org, and make the bug block the randr-tracker bug described above. That way I'll get notified about your patch.
Call to module maintainers: If you know of RANDR bugs in your GNOME module, please make them block the randr-tracker bug. Feel free to ask if you need advice on how to solve multi-monitor problems!
In the following posts I'll be describing some notable RANDR bugs and what we can do about them.
Go backward in time to February 2009.
Federico Mena-Quintero <federico@gnome.org> Thu 2009/Mar/05 13:26:14 CST