SimpleXModeSelection

Summary

Currently, the display modes used by the X server are selected at install time, and can only be changed by reconfiguring using debconf. We should allow the mode to be selected from the desktop environment.

Rationale

  • dpkg-reconfigure xserver-xorg is too complicated to use
  • System -> Preferences -> Screen Resolution does not show all resolutions supported by my monitor

  • Unlike Windows, the only obstacle to move a hard-disk from one machine to another are:
    • wrong driver specified in /etc/X11/xorg.conf
    • /etc/iftab forced udev to use another ethernet interface, which has no corresponding /etc/network/interfaces entry.

Use cases

  • Switching between low-resolution (laptop) display to high-resolution (external) display. When only external display is turned on, we would like to see it in high resolution. Currently it is combersome: first you need to reconfiger xserver-xorg; then every time you need to (a) either switch to external display while booting; (b) or stop desktop manager, switch to external display, start desktop manager again.

Scope

Design

Implementation

Code

Data preservation and migration

Outstanding issues

  • One approach would be to write the full list of known modes into the config file, so that they are available for switching via XRANDR. We would choose a conservative mode by default, but allow the user to easily switch to a more aggressive one if they desire.
    • The X server's default mode names are currently not unique, e.g. there are several modes named "1024x768", with different refresh rates. If we are to list a wide range of modes, we need to be able to select a conservative mode by default, for which we will need to be able to refer to an exact mode. Otherwise, the server might choose a mode with a high refresh rate by default.
    • Another issue is that X seems to choose the virtual desktop size based on this list, which causes a problem if it contains modes larger than the default
  • X.org upstream has done significant work on eliminating the need for xorg.conf entirely, which is essentially the direction in which we would like to go.

    • We should investigate whether this work can be backported into Edgy
    • We could stop writing a configuration file and then merge fixes on an as-needed basis
  • The XRANDR tool only allows changing the mode used after login. How will we change the default mode for gdm?
    • Suggest adding a UI to the tool to set the default mode for the entire system
    • Then what? Write a config file? Use XRANDR from gdm?

BoF agenda and discussion

Warbo: For what it's worth, I regularly move my USB harddrive between two different machines, one with an ATI graphics card and one with an Nvidia, and Xorg.conf is automagically changed to suit the new card using the 2D Free Software drivers, with a backup made (for some reason it chooses the ati driver on the machine with a Radeon 9200, even though the live CD knows to use the 3D radeon driver by default). Also, after using a monitor with 1280x1024 resolution I plugged it into one with a maximum 1024x768. The desktop, GDM, etc. stayed at a size of 1280x1024, but on a resolution of 1024x768 (this time xorg.conf did not even have to change), I presume through Xrandr automagically detecting the monitor's maximum resolution. This has only happened since Dapper, and I see that this spec is a few months old, so these may be the result of it, but on Launchpad it is listed as new?

braindump of discussion held on Thursday, November 9th, 2006

  • One approach would be to write the full list of known modes into the config file, so that they are available for switching via XRANDR. We would choose a conservative mode by default, but allow the user to easily switch to a more aggressive one if they desire.
    • The X server's default mode names are currently not unique, e.g. there are several modes named "1024x768", with different refresh rates. If we are to list a wide range of modes, we need to be able to select a conservative mode by default, for which we will need to be able to refer to an exact mode. Otherwise, the server might choose a mode with a high refresh rate by default.
      • And this is great! (picking a good refresh rate)
    • Another issue is that X seems to choose the virtual desktop size based on this list, which causes a problem if it contains modes larger than the default
    • when a new monitor is installed, we find out if its a CRT or LCD (via EDID)
      • if it's a LCD use the highest reported resolution
      • if it's a CRT use the second highest reported resolution as it's generally the highest usable one. NOTE - this is correct only for low quality CRT monitors, normal CRT monitors supports very high resolution modes, look at bug https://launchpad.net/bugs/68654 for more info.

  • X.org upstream has done significant work on eliminating the need for xorg.conf entirely, which is essentially the direction in which we would like to go.

    • This branch is called 'autoconfig-for-7.2' and will be landed on Feisty
    • We could stop writing a configuration file and then merge fixes on an as-needed basis
      • this is hard
      • X.Org configuration could be modularized into /etc/X11/config.d or such
        • how to deal with upgrades?
        • how upstream is going to like it?
  • The XRANDR tool only allows changing the mode used after login. How will we change the default mode for gdm?
    • Suggest adding a UI to the tool to set the default mode for the entire system
    • Then what? Write a config file? Use XRANDR from gdm?

Other comments

  • The use case assumes that's its possible to switch between laptop and external displays. I thought that changing the resolution was only a part of this more complicated problem. Will the newest work from X.org fix this, or is a more complete tool as suggested in the xorg-config-ui spec needed?


CategorySpec

SimpleXModeSelection (last edited 2008-08-06 16:35:25 by localhost)