Re: Display configuration capplet

Bryce Harrington <bryce canonical com> writes:

> In looking at, it appears the
> development done so far has focused on a monitor hotplug feature and the
> start of a cairo-based monitor layout canvas.  

The code in

certainly has support for xrandr 1.2 multi-head functionality. That's
the whole point of it.

This is all intended to be added to gnome-desktop,
gnome-settings-daemon, and gnome-control-center for 2.24.

Here is an overview of how it works:

There is a new file, $HOME/.gnome2/monitors.xml, that maps a monitor
setup (= what monitors are connected to which outputs) to information
about what modes and positions the monitors have in the virtual

At login time, gnome-settings-daemon reads this file and detects what
monitors are currently connected. If it finds a match, it sets the
corresponding modes.

When the capplet starts, it detects monitors and displays them on the
screen, much as in Bryan's mockup:

When the user hits apply, the new configuration is added to
monitors.xml, and the capplet signals gnome-settings-daemon to reread
the configuration. G-s-d will then apply the new settings.

That much is working already. For Fedora 9, some additional features
are planned:

    - Clone mode

This is not implemented yet, but needs to be.

    - X server should generate monitor hotplug events, at least for
      some hardware (i965)

These will be caught by g-s-d which will compare the new monitor setup
to the monitors.xml file and apply the modes if it finds a match. When
a display is automatically configured, a bubble will pop up allowing
the user to open the capplet.

This means you can move a laptop between home and work, and have it
automatically adapt to whatever displays are available.

    - Make the 'Virtual' size dynamically changable in X

So that the user doesn't have to change xorg.conf

    - X server should generate events for hotkeys

Hotkeys are things like 'Fn F7' on thinkpad that are generally
reported through ACPI events. These too will caught by g-s-d which can
then take appropriate action. What appropriate action is, I don't know
exactly yet.

> There is a randrwrap but it appears to not have the xrandr 1.2
> multi-head functionality, and isn't integrated with the GUI yet.

randrwrap.[ch] is a simple wrapper around xrandr that uses the glib
mainloop to keep the RandR information up-to-date automatically. It
supports everything xrandr 1.2 supports, including multi-head. 

I don't know what you mean by "isn't integrated with the GUI yet". The
capplet GUI uses randrwrap.[hc].

If you tried it out and found that it didn't do anything when you
clicked apply, that's just because you don't have the appropriate
gnome-settings-daemon changes.

If you run the code in the ~ssp/randr/daemon/ directory, then clicks
on apply should take effect.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]