DisplayConfigGtk

Differences between revisions 1 and 2
Revision 1 as of 2008-05-06 07:30:27
Size: 1393
Editor: c-67-168-235-241
Comment:
Revision 2 as of 2008-05-06 08:44:54
Size: 3904
Editor: c-67-168-235-241
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
These days xserver can auto-detect monitors, drivers, and resolutions correctly almost every time. But there are still corner cases (maybe including yours), but they're getting so increasingly rare that having a GUI for specifying the monitor is sort of overkill. It's better for us when we find such cases, to just fix the xserver directly, so users don't need to do any configuration at all. If it isn't getting detected properly, please make sure a bug is filed on the issue (see http://wiki.ubuntu.com/X/Debugging). displayconfig-gtk is deprecated in Hardy, but has not been dropped yet because it is still used for Bulletproof-X mode. It also remains available for use with drivers that still use Xinerama and have not been updated to use Xrandr.
Line 3: Line 3:
That said, as Conrad points out, displayconfig-gtk is still present, just not advertised. Unless you're careful and/or lucky, displayconfig-gtk can produce invalid configurations under Hardy, due to the way Xorg has changed, which makes it a lot harder to support and maintain in Hardy than before. == Background ==
Line 5: Line 5:
Regarding dual head, displayconfig-gtk is only able to generate valid dual head displays for old Xinerama-based drivers, which are quite rare these days; again, if you are in a corner case where it does work, then by all means keep using displayconfig-gtk for that. But for 99.x% of users, trying to use displayconfig-gtk for this will only break their X. The new Xrandr GUI will eventually support making dual head configs. I don't know if that change will be available for Hardy; if not I will make sure it's available in a PPA, and hopefully get it in for 8.04.1. A common complaint by Ubuntu users in Feisty and before was the lack of a simple GUI way to configure X. displayconfig-gtk (derived from KDE's guidance / displayconfig toolset) provided an excellent solution to this problem and was a welcomed addition to Ubuntu at the time.

displayconfig-gtk was designed and developed for the old-style Xorg, where the user was required to fully configure their hardware including resolutions, refresh rates, and sometimes even modelines. It contains databases of every video card, driver, and monitor with the particular settings and quirks needed to make it work.

However, today's Xorg has a lot of this logic built right into the xserver and its drivers. It is largely able auto-detect monitors, graphics cards, and so on, and thus users are no longer expected to write all of this in xorg.conf in order to boot. Thus, displayconfig-gtk duplicates this logic and is not as widely tested nor as actively maintained as the xserver's logic.

Further, for multi-head configuration, the entire underlying technology displayconfig-gtk assumes, called "Xinerama", is no longer provided by most video drivers and Xinerama-based configurations generated by displayconfig-gtk will actually crash X. Instead, most video drivers now use "X Resize and Rotate", or XRandR, to do this. XRandR has the benefit of being able to make resolution changes dynamically without having to restart X; this feature is particularly helpful when "hot plugging" projectors and external monitors.

displayconfig-gtk was a Ubuntu-only invention, although we did present it to GNOME and hoped they'd take it. Unfortunately, upstream indicated they'd prefer something which was in C and did not have dependencies on KDE components (i.e. guidance). We only had a small number of Canonical and Ubuntu community people maintaining it (and they were increasingly busy with other tasks), so without increased involvement from more of the community we weren't able to keep up with the wide variances of different people's hardware and configurations.

We investigated modifying displayconfig-gtk to include Xrandr configuration as well as Xinerama, and to suppress the output of configuration settings no longer needed, however it was felt that these changes risked making an already complex codebase even more complicated. It made more sense to switch gears to a new, fully Xrandr-based tool. As of Hardy, this tool is the Screen Resolution applet under {{{System / Preferences}}}.

To eliminate confusion and help users avoid the various issues that testers have reported, we've removed displayconfig-gtk from the menus. However, there are some situations where this tool actually is the best way to configure Xorg. For this reason, we've left displayconfig-gtk installed by default.

== Benefits of the Change ==

The new Screen Resolution tool brings several benefits over displayconfig-gtk in addition to being Xrandr-based instead of Xinerama:

 * Auto-detects monitor, resolutions, etc.
 * Allows changing settings on the fly without restarting X
 * Even simpler looking interface
 * Doesn't touch or modify the user's xrandr
 * Doesn't need root privileges since xrandr works in user space
 * Is adopted upstream at GNOME and by RedHat and Mandriva

== Remaining Issues ==

There are still some unresolved issues:

 * Dual-screen displays still require manually editing xorg.conf to add a "Virtual" setting
 * There isn't a graphical way to set the driver (although check out {{{Jockey}}} and {{{EnvyNG}}}).
 * There are still bugs (see http://wiki.ubuntu.com/X/Reporting and send us a report).

displayconfig-gtk is deprecated in Hardy, but has not been dropped yet because it is still used for Bulletproof-X mode. It also remains available for use with drivers that still use Xinerama and have not been updated to use Xrandr.

Background

A common complaint by Ubuntu users in Feisty and before was the lack of a simple GUI way to configure X. displayconfig-gtk (derived from KDE's guidance / displayconfig toolset) provided an excellent solution to this problem and was a welcomed addition to Ubuntu at the time.

displayconfig-gtk was designed and developed for the old-style Xorg, where the user was required to fully configure their hardware including resolutions, refresh rates, and sometimes even modelines. It contains databases of every video card, driver, and monitor with the particular settings and quirks needed to make it work.

However, today's Xorg has a lot of this logic built right into the xserver and its drivers. It is largely able auto-detect monitors, graphics cards, and so on, and thus users are no longer expected to write all of this in xorg.conf in order to boot. Thus, displayconfig-gtk duplicates this logic and is not as widely tested nor as actively maintained as the xserver's logic.

Further, for multi-head configuration, the entire underlying technology displayconfig-gtk assumes, called "Xinerama", is no longer provided by most video drivers and Xinerama-based configurations generated by displayconfig-gtk will actually crash X. Instead, most video drivers now use "X Resize and Rotate", or XRandR, to do this. XRandR has the benefit of being able to make resolution changes dynamically without having to restart X; this feature is particularly helpful when "hot plugging" projectors and external monitors.

displayconfig-gtk was a Ubuntu-only invention, although we did present it to GNOME and hoped they'd take it. Unfortunately, upstream indicated they'd prefer something which was in C and did not have dependencies on KDE components (i.e. guidance). We only had a small number of Canonical and Ubuntu community people maintaining it (and they were increasingly busy with other tasks), so without increased involvement from more of the community we weren't able to keep up with the wide variances of different people's hardware and configurations.

We investigated modifying displayconfig-gtk to include Xrandr configuration as well as Xinerama, and to suppress the output of configuration settings no longer needed, however it was felt that these changes risked making an already complex codebase even more complicated. It made more sense to switch gears to a new, fully Xrandr-based tool. As of Hardy, this tool is the Screen Resolution applet under System / Preferences.

To eliminate confusion and help users avoid the various issues that testers have reported, we've removed displayconfig-gtk from the menus. However, there are some situations where this tool actually is the best way to configure Xorg. For this reason, we've left displayconfig-gtk installed by default.

Benefits of the Change

The new Screen Resolution tool brings several benefits over displayconfig-gtk in addition to being Xrandr-based instead of Xinerama:

  • Auto-detects monitor, resolutions, etc.
  • Allows changing settings on the fly without restarting X
  • Even simpler looking interface
  • Doesn't touch or modify the user's xrandr
  • Doesn't need root privileges since xrandr works in user space
  • Is adopted upstream at GNOME and by RedHat and Mandriva

Remaining Issues

There are still some unresolved issues:

  • Dual-screen displays still require manually editing xorg.conf to add a "Virtual" setting
  • There isn't a graphical way to set the driver (although check out Jockey and EnvyNG).

  • There are still bugs (see http://wiki.ubuntu.com/X/Reporting and send us a report).

X/DisplayConfigGtk (last edited 2008-11-01 02:06:35 by c122-108-27-22)