Saturday, January 8, 2011

Oxygen + Gtk + DBus

  • Gtk: one of the most widely used toolkit to write opensource applications for your desktop, the second one being Qt, used notably for all KDE applications;
  • Oxygen: refers (notably) to KDE's default widget's style, originally written for Qt/KDE applications only;
  • DBus: inter-process communication system used for applications to communicate between each-other. In KDE it is used notably for propagating configuration changes (such as the color scheme) to KDE applications.
This post introduced oxygen-gtk, a native port of the KDE's default widget style to the Gtk toolkit, which allowed applications such as Gimp, Inkscape, and many others, to integrate seamlessly in the KDE desktop. This style was written to follow most of KDE configuration options, such as the icon theme, icon sizes, fonts, etc. However any change to the KDE configuration was only accounted for by GTK applications after the latter were restarted.

Today, we added DBus support to oxygen-gtk, so that Gtk applications keep track of modifications to KDE's configuration and update themselves on fly. This is best illustrated by the screencast below, during which color scheme and font size are changed in KDE's system settings, and Gimp updates accordingly without restart.

This feature is already available for testing in oxygen-gtk's git repository. It will be included in the next feature release of oxygen-gtk (version 1.1.0), some time in June.

mmm... recording a screencast in KDE. Which application should I use ? qt-recordmydesktop, or gtk-recordmydesktop:


  1. Wow! Great work! You are absolutely amazing. :)

    Btw. will the git-version continue to work with KDE 4.6?

  2. Hugo, why are there differences in button paddings between those 2 windows in the screenshot above? From the estetical point of view they both lack paddings in various places to me.


  3. What is the correct gtkrc-2.0 content to enable this theme, I never managed to find it (I don't want to use gnome-theme-daemon)

  4. @amiroff
    We'll investigate, but my suspicion is that it is due to how gtk-recordmydesktop actually uses gtk to make the dialog (since the buttons in other apps/dialogs are ok with this theme, in terms of padding).

    you can also use the system-settings module that gets installed usually with gtk-qt-engine.

  5. Awesome work :). It sucks that we have to do this work since they won't it for us, like we did for them. :(

  6. About the question, even that it is not about visual thing. But I found both, GTK+ and Qt versions GUI for recordmydesktop causing lagging and low quality on any computer (now 5) and any distro what I have tried. Thats why I always use recordmydesktop from commandline what gives smooth non lagging recording everytime.

  7. Just wanted to say that it works and looks great. One bug report though:
    In eclipse (written in swt which works on native gtk widgets), I get strange toolbar color which looks really out of the place.
    I'm not sure if this can be fixed. I hope yes, as it would make a really seamless kde + gnome integration for me.

  8. @mateusz

    please report bugs of this kind at, and provide screenshots. That's the best way for your report not to be forgotten and for us to keep on improving the style.

  9. Please..
    I love the theme Oxygen.. Thanks for this. :)

    But I use both kde and xfce. When use gtk applications on kde, these are perfectly integrated. Theme colors and icons. :)

    But when I use xfce, I would like to use the desktop icons, and these were not replaced by kde.
    You could add an option to configure this?

    In this way, could use a skin called "Oygen (Integrated on KDE)" and another simply "Oxygen" to use the icons in xfce.

    Excuse my bad English!. :D

  10. Heloo...
    Sorry for the above .. now reviewing the code again I found the option OXYGEN_FORCE_KDE_ICONS_AND_FONTS

    It's exactly what I wanted.. ;)
    Although it would be good if this is not a compile option..