GraphicalXConfiguration

Revision 25 as of 2008-08-06 16:39:19

Clear message

Summary

We need an easy way for people to change their X configuration in a sane way, including enabling 3D acceleration, 2 monitors, etc.

Rationale

As it stands, configuring X involves the manual editing of a text-based configuration file, which is not particularly well-commented. The xorg.conf file is also probably going away entirely.

Use cases

Brian wants to add additional monitors to his system. He has either multiple graphics cards, a video card with two video outputs or a combination thereof. He goes to System>Administration>Video Settings (or similar) and clicks to add a new screen. The Video Settings dialog allows Brian to identify each screen and then use a GUI to tell the system about the physical relationship of each screen (i.e. screen A is to the left of screen B). A wizard guides him through setting graphical options (Xinerama, Twinview, etc).

Jim wants to enable the closed-source ATI or Nvidia drivers on his new card without editing his xorg.conf and potentially screwing up his system.

Scope

Packaging an existing GUI tool. Nothing more, nothing less. The scope does not cover dealing with X breaking issues. For that see https://features.launchpad.net/distros/ubuntu/+spec/bullet-proof-x

Design

<to-do>

Implementation

A number of tools already exist. We need to look at all of them for sanity and ease of packaging.

system-config-xfree86

  • Created by Red Hat. Written in Python and pyGTK, which is a good sane language. UI is clear and easy to understand and is focused on what the user wants to do, rather than the syntax of the existing xorg.conf

http://fedora.redhat.com/projects/config-tools/redhat-config-xfree86.html

Xorg-Edit

  • Created specifically for Ubuntu. Exposes much of the syntax of xorg.conf and uses wxWidgets, which are not in main. Unsuitable

http://www.cyskat.de/dee/progxorg.htm

Sax2

  • Complete tool to control X, not just a GUI. Unknown how it will deal with new Xorg input and output hotplug. Allows configuration of tablets, etc. Large amounts of code to be audited.

http://sax.berlios.de/

Guidance

  • Written to be "the KDE system tools". Written in Python. Already shipped with Ubuntu for Kubuntu. Modular to allow GTK frontend to be written.

http://www.simonzone.com/software/guidance

Code

Available from above link. Work needs doing. See below.

Outstanding issues

There is new code landing in Xorg for the handling of input and outplug devices automatically. This new code means much of Sax2 and potentially Guidance might be obsolete.

BOF discussion dump

* there are a bunch of tools already written (e.g. SaX2)

  • X will be much easier to configure in the future and much more dynamic (dynamic input/output)
    • X will be able to review the settings without starting a new X server (7.3 timeframe, released in May)
  • there is the open issue that we want the user to change the default configuration
    • the solution may be that the server hands out its current configuration in text-form and then some config application can use this information to write as the default config file (using sudo). this avoids that random X clients can change the configuration of the server without authentication
  • xinerama is deprecated, render is the way forward
  • the goal is to be able to use X 7.3+ without any configuration (all will be auto-detected)
    • + dbus events can be used to notify about input devices + no /dev/input/mice needed anymore
  • X plans to move to fontconfig eventually, the core fonts stuff is planned to be more dynamic.
    • X will start with an empty fontpath (because it has some fonts built in)
  • we need to research what tools exist and contact the authors about their plans for the
    • dynamic X branch
  • we have two options:
    • - use the tranditional configuration file - do we want to startup with a sensible mode and let a userspace app do the policy
      • -> to get this done without flicking we need to delay the vt switch

    For 7.2 our best option is to pick a existing config tool (and look for one that will be not too hard to port to 7.3/render 1.2). The most important use-case for us is multihead configuration. And all existing tools need to be modifed for 7.3.

We will recheck writting out sync values to the xorg config.

We need to check the new nouveau driver (with 3d support). We can probably switch in the 7.3 timeframe from nv to this driver, and this should solve most of the problems with nv, but whether 3d will be usable then is unclear.

The proprietary nvidia driver is tracking the branch and there shouldn't be problems using it.

The open source ATI driver will improve markedly when ATI releases their documentation, which is very likely to happen.

XGL, Compiz etc should be viable with open-source drivers on Intel chips by 7.3

Wrap up: - because of the changes in 7.3 its not a good idea to invest a lot of time into the

  • current tools because they need to be redone for 7.3

- laptop external output is currently very driver specific and turning the external

  • port on is pretty power intensive and it can't be turned off after the Xserver was started

CategorySpec