Help KWin to revamp the configuration interfaces

The configuration interfaces of KWin in System Settings are really old. Some of them date back to KDE 1 times (copyright of 1997) when the window manager was KWM. This has some implications about the code: all the used widgets are configured through C++ which makes it very difficult to maintain and develop the configuration modules. The user interfaces do not yet use UI files which could be easily edited with Qt Designer. That’s the main reason why the interfaces still look like they used to be in KDE 1 and 2 times.

I think it’s about time to overcome the “uuuuhh, I don’t want to touch that code” state and start to move forward. For this it would require to transform the user interfaces into UI files. This is a very easy task which does not require any programming skills. And that’s why I blog about it. This would be a great task for anyone who always wanted to contribute to KDE, but has not dared because he is not a programmer.

All it needs is to go to System Settings -> Window Behavior -> Window Behavior and create for each tab a widget in Qt Designer which looks exactly like it used to be. If we have that it’s becoming easier for us developers to extend it, to try out better interfaces without touching the code. In case you have any questions feel free to send me a mail, contact me on IRC or leave a comment on this blog.

34 Replies to “Help KWin to revamp the configuration interfaces”

  1. Good morning

    May be interested in your suggestion re user interface.

    Using Debian Wheezy with KDE so the version is not up to date with KDE latest. How would that effect?

    Have had some programming background, but so rusty now that may as well say skill-level just rudimentary. Mostly C, C++, Pascal, a little Assembler, Cobol. Enjoyed (and still do) process of design more than coding, though.

    Looked in Synaptic, only saw qtcreater 2.5.0-2. There is mention of a gui layout and forms designer in its description, which assume is the package you mentioned, or may otherwise suit purpose.

    For various personal reasons, a strong possibility that may not be completely reliable, due to health and to other commitments and projects. Should still be able to contribute something.

    Prefer communication via email – less “public”.

    With greetings


    1. Debian Wheezy is just fine (it’s also my base system) and the package you are looking for is “qt4-designer”

  2. Interested. I’m a full time PyQT developer (with some code in C++/QT), I can give a hand for you. Contact me 🙂

        1. could you put the elements into a proper layout? Don’t use so many spacers – layouts like the form layout can handle that quite good and that helps scaling the items and also supports right-to-left languages.

        1. try to use less spacers, normally you don’t need them. Also try to directly integrate the correct wording from the existing dialogs. The less change we need the higher the chance we’ll use those 🙂

          1. Oh, ok, I’ll use less spacers (they are so handy that sometimes I abuse the use of them…)
            I’ll translate all the labels too 😉

            1. don’t translate. It needs to be exactly the same wording as the existing interfaces to make the life for the translators easier. If it changes the translators get notified and internal changes (C++ to UI) should not cause work for others 🙂 Best is to get the code and copy and paste the wording.

                1. not the object’s names, the text, tooltip and what’s this. All those should not change. That’s why it’s important to not translate them.

      1. That’s weird, I see the exactly same thing using both links :s
        But yeah, I give a +1 for what I see in there. There’s no consistency in system settings.
        Maybe I can do those too 🙂

    1. very good. I only have one suggestion: use also a form layout for the first group box, that would add I hope more consistency between the two groups as you already use a form layout in the second group.

        1. yes in the existing code it’s like that, but yeah not everything in the existing code is perfect (given that it is annoying to change such things in C++)

    1. cool, I just had a look at them and there are only a few more comments I have 🙂 (Yes, I know I’m terrible about that)

      • Please use the text exactly as in the code, the mnemonics are missing now (Source code can be found in cpp files of This source folder)
      • If you are at that, just also copy the tooltips and what’s this tips, best on both Label and Widget
      • Tiling got removed in master 🙂
      • For Dropdown lists you can add the values (just double click the list in designer)
      • On some tabs the buddies are missing
      • What would be super awesome is if you could give object names to the widgets. Best would be if you look into the source code and find the name of the option it references and then use the name “kcfg_NameOfOption”, e.g. “kcfg_SeparateScreenFocus”, but if you don’t find your way in the source code never mind, that’s quite fast copy and paste for me 😉

      But overall really awesome and much thanks for it.

      1. It isn’t my work.
        I was just wondering if “alexandrst” finished it the way you wanted, if not I was planning to reserve some time to do it.
        But now I see “Alexander Jones” has another solution…
        If it’s not good I can take some time to make it just the way you want it or has to be.

        1. thanks for the offer, but I think we have now quite some good results. I am so satisfied with this “experiment” that I will put up a few other tasks very soon.

          1. Sorry for not answering earlier, I just read the new comments.

            Do you want me to *fix* the things you said in the last comment or “Alexander Jones”‘s solution has them already?

            1. I have not yet evaluated all forms. I guess I will try to take some forms from each submission. I’ll probably contact you in private.

Comments are closed.