First of all: I LOVE OXYGEN-GTK! Thank you very much. I'm in loving relationship to your project for a long time (even before I was able to spell oxygen-gtk ;) Coming a long way up, when started with KDE 1.0, I'm using a special color theme for most of the time, because I don't like all those cold colored DEs. Needless to say, that I'm very sensitive about changes in this area. Especially, when defaults come into play.. Using openSUSE 13.2/x86_64 with KDE 4.14 nowadays (for one reason, because Plasma5 adds another color settings layer on top, due to Qt5). With Qt5.4, that comes with openSUSE, all is well, Qt5 inherits the KDE4 color settings just fine, and oxygen-gtk spreads that to the essential Gtk based apps as well (Firefox, Gimp, LO). Now I started to prepare for a Qt5.6 based project here: https://build.opensuse.org/project/monitor/home:frispete:PyQt5 That's a Qt 5.6.1 build, that should work fine as a Qt 5.4.2 replacement. Unfortunately, immediately after upgrading the packages, Gtk changed its appearance to oxygens default color map including the background gradient, that I've disabled. (Firefox menus turned gray). Some further investigation revealed, that I could either choose Adwaita as GTK2 theme and have it respecting my color map, or oxygen-gtk and have the oxygen default color map. Both is visually disappealing.. My humble guess is that Qt5.6 changed the configuration representation for color settings, resulting in oxygen-gtk using some default values. After reverting to 5.4.2, all is well again. I've tried a lot to cope with it, though. Removed ~/.config/Trolltech.conf, fiddled with ~/.gtkrc, GTK2_RC_FILES and friends, checked the generated color map in ~/.gtkrc, which is fine, etc.. Here's something, that might be useful for others: convert GTK color values to something, that the rest of the world understands: $> python3 -c "print([int(255.0*v) for v in (1.000, 0.980, 0.902)])" Replace the three numbers with some values from ~/.gtkrc, and check the result in some color choosing widget.. I'm ready and prepared to build some oxygen-gtk packages out of git. Reproducible: Always BTW: Hugo, Ruslan, I found some hostility for your project coming from the GTK camp. Given their unfair behaviour, they deserve, that everybody and their aunts is using gtk2 still. I assure you, that your code will keep executing on a lot of systems, since this is one of the rare ways to make this ugly GTK stuff looking fine. This experience reminded me, how UGLY things could be. Version: gtk2-{engine,theme}-oxygen-1.4.6, Qt 5.4.2, KDE 4.14 all from openSUSE 13.2. Qt changed to 5.6.1, built in home:frispete:PyQt5 (based on KDE:Qt on Build Service).
Dear Hans-Peter, First of all, thanks a lot for the kind words ! Concerning the issue at hand I am confused. In principle the way oxygen-gtk retrieves its configuration from qt should not depend on the qt version (and even less on qt5, because it is all kde4 stuff). In more details, it looks for kde4 configuration files in the directory list returned by "kde4-config --path config", and loads whatever is found in kdeglobals and in oxygenrc. None of this should depend on qt5 version (in fact, to Ruslan, we should probably update it to also use the output of "kf5-config --path config") Can you check the output of kde4-config for the two versions of qt5 you are testing, see if kdeglobals and oxygenrc are there in both cases, and see whether its content is consistent (colors, gradient) with what you see on screen, and what you want to have for your gtk apps ? On my side I will try compile qt-5.6 (I'm on 5.5 here), to see if there is something fishy, but no guarantee. Best regards, Hugo
Dear Hugo, thanks for the immediate reply. Much appreciated. kde4-config --path config results in: /home/hp/.kde/share/config/:/usr/share/kde4/config/:/etc/kde4/share/config/ Both config files look consistent and didn't change in my home (checked with backups, the one of yesterday was produced with the newer Qt installed). I'm setting up a VM now, where I expect to reproduce the problem at hand, and been able to try fixes quickly without disturbing my day to day work.
You can compile oxygen-gtk passing -DOXYGEN_DEBUG=1 to cmake. Then you'll get tons of debug output when you start GTK2 apps - including info about config it loads.
@Hugo Is kde4-config optional in KF5? It seems to be there with the default install.
(In reply to Ruslan Kabatsayev from comment #4) > @Hugo > Is kde4-config optional in KF5? It seems to be there with the default > install. No clue to be honest. I'm still running kde4 (with bits and pieces of kf5) I guess you must have it as long as you have qt4/kde4 apps installed ...
Okay, here are some news: the package, that changes behaviour is called libqt5-qttools. If installed, the erroneous effects take place, and vanish, if removed. Confirmed on my desktop and in a VM. Here's the package content: Name : libqt5-qttools Version : 5.6.1 Release : 102.1 Architecture: x86_64 Install Date: Fr 24 Jun 2016 15:41:18 CEST Group : Development/Libraries/X11 Size : 2497346 License : SUSE-LGPL-2.1-with-digia-exception-1.1 or GPL-3.0 Signature : RSA/SHA256, Do 23 Jun 2016 03:47:19 CEST, Key ID 6d65170129e3735a Source RPM : libqt5-qttools-5.6.1-102.1.src.rpm Build Date : Do 23 Jun 2016 03:43:27 CEST Build Host : lamb07 Relocations : (not relocatable) Vendor : obs://build.opensuse.org/home:frispete URL : http://qt.digia.com Summary : Qt 5 QtTools Module Description : Qt is a set of libraries for developing applications. This package contains base tools, like string, xml, and network handling. Distribution: home:frispete:PyQt5 / openSUSE_13.2 -rwxr-xr-x 1 root root 1138488 Jun 23 03:43 /usr/bin/assistant-qt5 -rwxr-xr-x 1 root root 451384 Jun 23 03:43 /usr/bin/designer-qt5 -rwxr-xr-x 1 root root 57112 Jun 23 03:43 /usr/bin/pixeltool-qt5 -rwxr-xr-x 1 root root 69008 Jun 23 03:43 /usr/bin/qcollectiongenerator-qt5 -rwxr-xr-x 1 root root 64800 Jun 23 03:43 /usr/bin/qdbus-qt5 -rwxr-xr-x 1 root root 132744 Jun 23 03:43 /usr/bin/qdbusviewer-qt5 -rwxr-xr-x 1 root root 164560 Jun 23 03:43 /usr/bin/qhelpconverter-qt5 -rwxr-xr-x 1 root root 23192 Jun 23 03:43 /usr/bin/qhelpgenerator-qt5 -rwxr-xr-x 1 root root 61024 Jun 23 03:43 /usr/bin/qtdiag -rwxr-xr-x 1 root root 23016 Jun 23 03:43 /usr/bin/qtpaths -rwxr-xr-x 1 root root 23168 Jun 23 03:43 /usr/bin/qtplugininfo lrwxrwxrwx 1 root root 26 Jun 23 03:43 /usr/lib64/qt5/bin/assistant -> ../../../bin/assistant-qt5 lrwxrwxrwx 1 root root 26 Jun 23 03:43 /usr/lib64/qt5/bin/assistant-qt5 -> ../../../bin/assistant-qt5 lrwxrwxrwx 1 root root 25 Jun 23 03:43 /usr/lib64/qt5/bin/designer -> ../../../bin/designer-qt5 lrwxrwxrwx 1 root root 25 Jun 23 03:43 /usr/lib64/qt5/bin/designer-qt5 -> ../../../bin/designer-qt5 lrwxrwxrwx 1 root root 26 Jun 23 03:43 /usr/lib64/qt5/bin/pixeltool -> ../../../bin/pixeltool-qt5 lrwxrwxrwx 1 root root 26 Jun 23 03:43 /usr/lib64/qt5/bin/pixeltool-qt5 -> ../../../bin/pixeltool-qt5 lrwxrwxrwx 1 root root 37 Jun 23 03:43 /usr/lib64/qt5/bin/qcollectiongenerator -> ../../../bin/qcollectiongenerator-qt5 lrwxrwxrwx 1 root root 37 Jun 23 03:43 /usr/lib64/qt5/bin/qcollectiongenerator-qt5 -> ../../../bin/qcollectiongenerator-qt5 lrwxrwxrwx 1 root root 22 Jun 23 03:43 /usr/lib64/qt5/bin/qdbus -> ../../../bin/qdbus-qt5 lrwxrwxrwx 1 root root 22 Jun 23 03:43 /usr/lib64/qt5/bin/qdbus-qt5 -> ../../../bin/qdbus-qt5 lrwxrwxrwx 1 root root 28 Jun 23 03:43 /usr/lib64/qt5/bin/qdbusviewer -> ../../../bin/qdbusviewer-qt5 lrwxrwxrwx 1 root root 28 Jun 23 03:43 /usr/lib64/qt5/bin/qdbusviewer-qt5 -> ../../../bin/qdbusviewer-qt5 lrwxrwxrwx 1 root root 31 Jun 23 03:43 /usr/lib64/qt5/bin/qhelpconverter -> ../../../bin/qhelpconverter-qt5 lrwxrwxrwx 1 root root 31 Jun 23 03:43 /usr/lib64/qt5/bin/qhelpconverter-qt5 -> ../../../bin/qhelpconverter-qt5 lrwxrwxrwx 1 root root 31 Jun 23 03:43 /usr/lib64/qt5/bin/qhelpgenerator -> ../../../bin/qhelpgenerator-qt5 lrwxrwxrwx 1 root root 31 Jun 23 03:43 /usr/lib64/qt5/bin/qhelpgenerator-qt5 -> ../../../bin/qhelpgenerator-qt5 lrwxrwxrwx 1 root root 19 Jun 23 03:43 /usr/lib64/qt5/bin/qtdiag -> ../../../bin/qtdiag lrwxrwxrwx 1 root root 20 Jun 23 03:43 /usr/lib64/qt5/bin/qtpaths -> ../../../bin/qtpaths lrwxrwxrwx 1 root root 25 Jun 23 03:43 /usr/lib64/qt5/bin/qtplugininfo -> ../../../bin/qtplugininfo drwxr-xr-x 2 root root 0 Jun 23 03:43 /usr/lib64/qt5/plugins/designer -rwxr-xr-x 1 root root 43776 Jun 23 03:43 /usr/lib64/qt5/plugins/designer/libcontainerextension.so -rwxr-xr-x 1 root root 31344 Jun 23 03:43 /usr/lib64/qt5/plugins/designer/libcustomwidgetplugin.so -rwxr-xr-x 1 root root 23008 Jun 23 03:43 /usr/lib64/qt5/plugins/designer/libqquickwidget.so -rwxr-xr-x 1 root root 47864 Jun 23 03:43 /usr/lib64/qt5/plugins/designer/libtaskmenuextension.so -rwxr-xr-x 1 root root 31392 Jun 23 03:43 /usr/lib64/qt5/plugins/designer/libworldtimeclockplugin.so -rw-r--r-- 1 root root 258 Jun 23 03:43 /usr/share/applications/assistant5.desktop -rw-r--r-- 1 root root 254 Jun 23 03:43 /usr/share/applications/designer5.desktop -rw-r--r-- 1 root root 270 Jun 23 03:43 /usr/share/applications/qdbusviewer5.desktop drwxr-xr-x 2 root root 0 Jun 23 03:43 /usr/share/doc/packages/libqt5-qttools -rw-r--r-- 1 root root 1196 Mai 31 12:46 /usr/share/doc/packages/libqt5-qttools/LGPL_EXCEPTION.txt -rw-r--r-- 1 root root 22961 Mai 31 12:46 /usr/share/doc/packages/libqt5-qttools/LICENSE.FDL -rw-r--r-- 1 root root 35645 Mai 31 12:46 /usr/share/doc/packages/libqt5-qttools/LICENSE.GPLv3 -rw-r--r-- 1 root root 26832 Mai 31 12:46 /usr/share/doc/packages/libqt5-qttools/LICENSE.LGPLv21 -rw-r--r-- 1 root root 8178 Mai 31 12:46 /usr/share/doc/packages/libqt5-qttools/LICENSE.LGPLv3 drwxr-xr-x 2 root root 0 Jun 23 03:43 /usr/share/icons/hicolor drwxr-xr-x 2 root root 0 Jun 23 03:43 /usr/share/icons/hicolor/128x128 drwxr-xr-x 2 root root 0 Jun 23 03:43 /usr/share/icons/hicolor/128x128/apps -rw-r--r-- 1 root root 6176 Jun 23 03:43 /usr/share/icons/hicolor/128x128/apps/assistant5.png -rw-r--r-- 1 root root 3889 Jun 23 03:43 /usr/share/icons/hicolor/128x128/apps/designer5.png -rw-r--r-- 1 root root 3353 Jun 23 03:43 /usr/share/icons/hicolor/128x128/apps/qdbusviewer5.png drwxr-xr-x 2 root root 0 Jun 23 03:43 /usr/share/icons/hicolor/32x32 drwxr-xr-x 2 root root 0 Jun 23 03:43 /usr/share/icons/hicolor/32x32/apps -rw-r--r-- 1 root root 1378 Jun 23 03:43 /usr/share/icons/hicolor/32x32/apps/assistant5.png -rw-r--r-- 1 root root 1076 Jun 23 03:43 /usr/share/icons/hicolor/32x32/apps/qdbusviewer5.png Any idea, what could be the culprit here?
BTW, the best way to test this is simply running oxygen-gtk-demo.
Okay, I was able to resolve this issue today.. The whole mess was due to a patch, that was applied on the package, preferring "qtpaths --paths ConfigLocation" over kde4-config --path config. Sure for bothering you, Hugo and Ruslan, and thank you for your support. Highly appreciated.
Just for reference: https://build.opensuse.org/package/show/home:frispete:PyQt5/oxygen-gtk2