GSoC 2011 ideas – SaX 3

Google Summer of Code 2011You must already heard about this from everybody. Google Summer of Code 2011 is nearby and openSUSE wants to participate. Currently we are collecting ideas and mentors and we are going to apply. I also came up with few projects and volunteered to mentor them. I saw Thomas Thym introducing his GSoC ideas and I think it’s great to write a blog posts that introduce projects. So I’ll join and here comes the first project that many of you were waiting for – SaX 3.

SaX 3

I guess I don’t have to explain what was SaX 2 good for. It is one of the most voted features in openFATE – bring SaX back to live. SaX 2 was the tool to configure X server. Whenever your X didn’t behave correctly, whenever you needed to tweak any settings, SaX 2 was there for you. Unfortunately it worked only with xorg.conf file. Nowadays X are much better. We’ve got auto detection of everything which works most of the time. Some little tweaks can be added to /etc/X11/xorg.conf.d directory and every tweak can be in separate file. It’s much better than before, easier to take care of, easier to understand and maintain. But as already mentioned, SaX2 can’t handle current situation. That is why I propose creating SaX 3 as a part of GSoC.


Main feature is that it should be able to configure X. That means to force them to use different mode that your monitor claims to support, force it to use different graphic card driver or change default resolution. Also some little tweaks like per mouse drivers with specific settings (I have pretty different settings for my trackpoint than for my external mouse) or default keyboard layout. I guess we all expect this basic functionality from SaX.

From coding point of view, we need to keep it as small as possible. As it will be one of the basic administration tool, we don’t want it to pull in several frameworks just to configure X. And if I can’t get X working I still want to use this tool. So that makes it obvious that ncurses UI is a must. On the other hand, once I have X running, I don’t want to see any ugly ncurses anymore, but nice Qt/GTK. So it should also support at least some toolkit for nice and shiny X window UI. But as this might pull in some dependencies and pulling Qt to your minimalistic PekWM desktop might sound terrifying, it should be optional and SaX should be able to detect whether it is installed and X are running so it can use it or not.

One feature that is also a little bit important is to make it distribution independent to make it easy for other distributions to use it, improve it and contribute back, so we will make a world better place for all of us 😉


I wrote it on the wiki and yesterday I already received an e-mail from interested student, who is considering it! So if openSUSE and SaX3 get selected, there is a pretty good chance that we will have it!


  1. altarius says:

    it would be cool, to configure multiple gpu’s (vga-switcheroo) with sax3.
    eg to say the computer, only to start the integrated one, and leave the other one disabled, without user interaction (at each boot i have to disable my radeon manually…)

    1. Michal Hrušecký says:

      Didn’t thought about this particular issue yet. Thanks for bringing it up. I’ll make sure to keep that it mind. We’ll see once we will start digging into specific configuration options (if we will get selected).

  2. Michal says:

    Just don’t waste time and effort with ncurses, you won’t do it from remote and in vast majority of cases it’s possible to start X server with a minimal configuration (vesa) so that GUI can be displayed. If the system is so broken that X can’t be started that’s usually beyond the scope of what sax3 could possibly do (reinstall packages, recompile stuff, etc).

    1. Michal Hrušecký says:

      Well in majority of cases X autodetection works ok and minor tweaks ca be done via desktop environment. SaX is supposed to help you in corner cases…
      One good reason to have two UI is to make sure it is easy to add third one or port it to newer (GTK2 -> GTK3, Qt 3 -> Qt 4 -> Qt 5, … )
      Why do I consider ncurses usefull UI? There are weird things out there. I know that in most cases vesa with 640×480@60Hz will work. But I think I already met card that didn’t worked in vesa mode well but worked with it’s own driver. And there are graphic cards that doesn’t work with their drivers but works with vesa. Multiple heads/graphic cards can probably be also tricky sometimes… Also misconfigured input devices can give you hard time. So yes, starting some minimal X with GUI might be an option but I still think that ncurses is easier (how to pick safe default?) and safer choice.
      Dependencies on graphical framework is no big issue for us (binary distribution, big hdd), but might be issue if you are setting up minimal X environment or if you are running for example Gentoo 😀

  3. Ozzy says:

    I miss the SaX me to. I use to configure/tweak my X server with it. I was upset when i saw is not present anymore in openSuSE 11.3 distro when I tried SaX2 -m 0=nvidia command. So im feel pretty unsafe without SaX2 on openSuSE.

    1. Michal Hrušecký says:

      Well, in this particular case SaX is actually not needed anymore as Xorg will automatically pick NVidia binary driver if you have it available, but I understand that some more advanced settings can be troublesome and even for skilled sysadmin it might be faster to just use a simple tool then searching through the manual.

  4. Ozzy says:

    Yes Michal with Nvidia is ok , but I have a laptop with Intel video card and with compiz is freezing often in KDE; I saw in YaST it were active more video drivers and I disabled them. I wold feel more comfortably if I could configure my X with SaX, but now it’s not possibel under openSuSE 11.3. Waiting the 11.4 and hoping there will be maybe present the SaX somehow.

    1. Michal Hrušecký says:

      As far as I know there is no SaX in openSUSE 11.4. I agree, that having SaX makes you more comfortable. But if you have Intel and you want to use Compiz, I think there is only one driver that let’s you do that (intel one). 😀

  5. Larry says:

    A lack of SaX is one of the things keeping me from moving to 11.4. I have a 19″ CRT running at 1024×768(which X ALWAYS forces at 1280×1024 which I don’t care for) and a 22″ LCD at 1920×1080. I use 11.0 with Ximera(sp?) and have the CRT as primary. I’ve yet to get anything other than the same mirrored picture on both monitors under 11.4(I’m also using KDE3 so no SaX2 is a huge problem since KDE3 doesn’t really have a config tool).

    Autodetect just fails on these oddball setups.

    I’m not a programmer, but I will test it if you code it.


    1. Michal Hrušecký says:

      Well, KDE3 is dead and KDE4 has a tool 😉 Apart of that, there is ‘xrandr’ command that will let you configure and reconfigure screen settings on the fly. But definitely understand that it is much better to have things setup before X will start 😉

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>