GraphicalXConfiguration

Differences between revisions 18 and 19
Revision 18 as of 2006-11-01 02:08:19
Size: 6059
Editor: d64-180-214-139
Comment: start massive rewrite
Revision 19 as of 2006-11-01 02:24:53
Size: 2584
Editor: d64-180-214-139
Comment: rewrite spec
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
We need an easy way for people to edit their xorg.conf in a sane way, including enabling 3D acceleration, 2 monitors, etc.

AndreasSchildbach: Is auto-configuration (when (un-)plugging monitors) also in scope of this spec?
We need an easy way for people to change their X configuration in a sane way, including enabling 3D acceleration, 2 monitors, etc.
Line 18: Line 16:
Brian wants to add a second monitor. He has either a second graphics card or a video card with two video outputs. He goes to System>Administration>Video Settings (or similar) and clicks to add a new screen. A wizard guides him through setting graphical options and then prompts him to restart X (warning him about saving open documents). There is, however, and option to restart X later, much like the restart notification after a kernel upgrade. Brian wants to add a second monitor. He has either a second graphics card or a video card with two video outputs. He goes to System>Administration>Video Settings (or similar) and clicks to add a new screen. A wizard guides him through setting graphical options.
Line 21: Line 19:
Creating and packaging a graphical X configuration tool. Packaging an existing GUI tool.
Line 28: Line 26:
 * system-config-xfree86 needs to be evaluated for sanity. It is written in pygtk and doesn't expose too much of the underlying bits, which sax, etc. do. A number of tools already exist. We need to look at all of them for sanity and ease of packaging.
Line 30: Line 28:
 * [http://www.cyskat.de/dee/progxorg.htm] is a fairly advanced effort to make such a tool. It does, however, carry inherent limitations which are described below. Concerted work needs to be done on addressing these issues, and this needs to find itself packaged into default desktop installations. 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
Line 32: Line 32:
 * Sax2 [http://sax.berlios.de/] tool used by suse, has bindings for python, includes support for DualHead/ Multihead/ Autodetection/ Support for vendor specific drivers/ Tablet/ TouchScreen and lots more... 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
Line 34: Line 36:
 * 'Advanced/failsafe' mode that triggers '''gksu dpkg-reconfigure xserver-xorg -f gnome''' ???? 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/
Line 36: Line 40:
 * The guidance system tools already provide such a tool:
  * a xorg.conf parser and writer,
  * automatic detection of hardware,
  * an abstraction layer to manipulate the setup,
  * testing the new configuration
  * modesetting for monitors
  * a gamma correction system
  * Xinerama support
It's written modular, so it should be easy to write another (GTK-based) userinterface and share the backends. [http://www.simonzone.com/software/guidance webpage with screenshots], [http://websvn.kde.org/trunk/playground/base/guidance/displayconfig/ code]
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
Line 50: Line 48:
Many. Unfortunately. 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.
Line 52: Line 50:
Various video cards have different options. There are hundreds of permutations of options, and they all need to be sanely documented, and schemas implemented (giving advice per card, per setup about whether to enable them). This tool is useless without taking into account the inherent complexity of X and xorg.conf. This needs to be a graphical solution, with easy-to-use wizards, of course, but it also needs to be a powerful admin tool.

You need to restart X for changes to take effect. This is a serious problem, and will apparently be fixed in a few versions' time of Xorg. This means not in time for Edgy.

Backups, backups, backups. If a user hoses something with this tool it is almost as bad for them as if they hosed the entire computer with Gparted. X failing to start should be caught and a backup restored, if the user wishes.

Auto-detection is apparently difficult, and not implemented in xorg-edit. This is crucial for ease-of-use, and perhaps borrowing an idea from Vista in this respect would not be a bad thing. Unfortunately, such autodetected changes require a restart of X. See above.
The gui should not be able to leave the user in an unbootable state. There is another spec for dealing with X failures: https://features.launchpad.net/distros/ubuntu/+spec/bullet-proof-x
Line 61: Line 53:


== Discussion ==

 * '''Killerkiwi''' - See the sax2 (the code used in SUSE) project http://sax.berlios.de/ for a xorg backend and a KDE front end (I dont think a GTK front end exists yet...), the ui should probably try and cover the most 'common' uses ie at the very least Dual Display Setup

 * It would be great to have a console based application to edit some config in xorg, if something goes wrong and the user cannot start X. Features: video driver choice, resolution choice, recovering xorg.conf to its original state, etc. This tool may run if X fail to start. -- SamGrandjean
  * '''dpkg-reconfigure xserver-xorg''' does that, doesn't it ? -- FabiánRodríguez [[DateTime(2006-10-27T16:41:42Z)]]
   * The problem with dpkg-reconfigure xserver-xorg is that it resets the whole xorg.conf, and one cannot change only one setting without being asked with a lot of (non user friendly) questions. -- SamGrandjean [[DateTime]]
 * If the above comment about needing a GTK re-write is about Xorg-Edit, then I don't really see why, as wxWidgets automatically defaults to GTK when used in a linux environment. Of course, this comment could have been easily about Sax, which appears to be QT. -- Derick_eisenhardt

 * Kubuntu already has an X config tool in kde-guidance (displayconfig), you could port this to GTK.
 
 * In order to deal with the numerous video card/driver options, perhaps a separate package, xorg-driver-#####-options, that would allow the options to be updated regularly would be of use. This way, well tested options are installed with the package and use by automated configuration tools. Other options are explored by those experienced and motivated to manually tweak their configurations. Once developers/tweakers have found reliable options, the can be integrated into the xorg-driver-#####-options package.
 * Take a look at the [http://www.ubuntuforums.org/showthread.php?t=156243&page=10 Ubuntu forum]. There is already such a feature for xorg-edit with xml-files that can be edited and created by the user. -- Dee [[DateTime]

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

This is being proposed to decrease the ["ListOfNGUIs"]; i.e. to make it possible to change video settings beyond screen resolution through the GUI. As it stands, configuring X involves the manual editing of a text-based configuration file, which is not particularly well-commented.

Use cases

Brian wants to add a second monitor. He has either a second graphics card or a video card with two video outputs. He goes to System>Administration>Video Settings (or similar) and clicks to add a new screen. A wizard guides him through setting graphical options.

Scope

Packaging an existing GUI tool.

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.

The gui should not be able to leave the user in an unbootable state. There is another spec for dealing with X failures: https://features.launchpad.net/distros/ubuntu/+spec/bullet-proof-x

CategorySpec

GraphicalXConfiguration (last edited 2008-08-06 16:39:19 by localhost)