As promised in my previous posts, in this blog post I will deal with a project I’m working on which implements this blueprint.
Bryce Harrington (the mentor of this blueprint), Colin Watson (the approver) and I talked about this at the UDS in Prague. The blueprint is based on Bryce’s original idea to improve the Screen Resolution panel. The work was divided into 2 phases:
Phase 1 (which is a higher priority) is about providing the Screen Resolution panel with the capability to set the virtual resolution in the xorg.conf when, put simply, 2 or more screens don’t fit the framebuffer. Currently the Screen Resolution panel doesn’t succeed in such case since the drivers are not able to reallocate the framebuffer yet. A simple GUI should allow users to set the required virtual resolution and write the settings to the xorg.conf through PolicyKit.
Phase 2 is about adding an “Advanced settings” button to the Screen Resolution panel so as to allow advanced users to edit the xorg.conf through a simple GUI. The aim of such program is not to set up multiple screens layouts but only to make it easier for users to add, edit and remove options without having to know which section an option, say, DontZap, belongs to, or to switch to a different driver. A more detailed explanation of the use cases is available here.
In Prague we agreed that this project couldn’t become reality without an xorg.conf parser/writer and some other tools. For this reason I started the X-Kit project:

Components:
* XorgParser: a simple, transparent and easy to extend xorg parser.
* XorgValidator: a program which uses X-parser, tries to make sense of xorg.conf and operates accordingly.
* Xorg Options Data Store: a program which translates the content of the manual of the xorg.conf into an XML file.
* Xorg Options Editor GTK: a simple GTK GUI to the xorg.conf.
* Xorg Options Editor KDE: a simple GTK GUI to the xorg.conf.
NOTE: all the code is in Python
Aim:
* a desktop agnostic kit to manipulate the xorg.conf (and whatever will replace the xorg.conf in the future).
Advantages of XorgParser:
* Simple API.
* Easy to extend.
Current Status:
* XorgParser: version 0.3 is available. You can get the code from my bazaar branch or from my PPA
* XorgValidator: there is already some code in place which I haven’t released yet.
* Xorg Options Data Store: the program is complete, works well and will be released soon.
* Xorg Options Editor GTK (aka Phase 2): the program is almost complete and will be released soon. You can have a look at this screencast to see how it works.
* Xorg Options Editor KDE: not started yet
* Phase1: the Python part is complete and, as you can see in this screencast, it works well. The screencast, however, doesn’t reflect the current status of phase 1 but still gives an idea of how this will work in practice.
For further details on the project, please have a look at the wiki.
A special thanks to Bryce Harrington and Martin Pitt whose feedback on the parser was extremely important.