Bug 1318707

Summary: QT apps do not use adwaita by default, nor it can be forced
Product: [Fedora] Fedora Reporter: Kamil Páral <kparal>
Component: adwaita-qtAssignee: Martin Bříza <mbriza>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 24CC: jgrulich, kparal, massi.ergosum, mbriza, mclasen, poncho
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-06-22 13:25:07 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Kamil Páral 2016-03-17 14:42:14 UTC
Description of problem:
I tried doing https://fedoraproject.org/wiki/Test_Day:2016-03-17_Qt_Gtk_Integration . However, all QT apps I run look like using a default gtk theme, not adwaita.

This is fedora-gooey-karma in F24:
http://i.imgur.com/IoxkBC9.png
and in F23:
http://i.imgur.com/EofVGnb.png

This is goldendict in F24:
http://i.imgur.com/CzwkYJQ.png

This is krename in F24:
http://i.imgur.com/7l0gYUv.png
and how it is supposed to look with adwaita (screenshot provided by mbriza):
http://i.imgur.com/kmcFsrG.png

So, by default, adwaita doesn't seem to be used.

But even more, I can't seem to be able to force it. When I try:
$ QT_STYLE_OVERRIDE=adwaita krename 
or 
$ krename -style adwaita
it does not change anything, still the same look.


Version-Release number of selected component (if applicable):
installed Workstation Live image from here http://dl.fedoraproject.org/pub/alt/stage/24_Alpha-1.5/Workstation/x86_64/iso/
adwaita-cursor-theme-3.19.91-1.fc24.noarch
adwaita-gtk2-theme-3.19.91-1.fc24.x86_64
adwaita-icon-theme-3.19.91-1.fc24.noarch
adwaita-qt4-0.3-2.fc24.x86_64
adwaita-qt5-0.3-2.fc24.x86_64
adwaita-qt-common-0.3-2.fc24.noarch
krename-4.0.9-15.fc23.x86_64
fedora-gooey-karma-0.1-7.fc24.noarch
goldendict-1.5-0.10.RC2.fc24.x86_64


How reproducible:
100%

Steps to Reproduce:
1. install F24 Alpha 1.5 Workstation Live
2. install some of those apps
3. run them and compare their look
4. try to force the adwaita theme

Comment 1 Jan Grulich 2016-06-22 13:07:15 UTC
Is this reproducible with final Fedora 24 release? When I run "krename -style adwaita" then it works perfectly for me.

Comment 2 Kamil Páral 2016-06-22 13:24:20 UTC
Yes, with final release of F24, I no longer see any problem with krename. Let's consider this fixed.

Comment 3 Massimiliano 2016-07-14 21:55:30 UTC
In Mate DE adwaita-qt is not currently the default theme (the fallback is GTK+), but it can be forced:
$ QT_STYLE_OVERRIDE=adwaita vlc

Installed packages:
$ rpm -qa *adwaita*
adwaita-gtk2-theme-3.20.2-1.fc24.x86_64
adwaita-qt-0.4-3.fc24.x86_64
adwaita-qt-common-0.4-3.fc24.noarch
adwaita-cursor-theme-3.20-1.fc24.noarch
adwaita-qt4-0.4-3.fc24.x86_64
adwaita-icon-theme-3.20-1.fc24.noarch
adwaita-qt5-0.4-3.fc24.x86_64

Obviuously I cannot install qgnomeplatform due its dependencies. Is there any other setting I'm missing?

Comment 4 Jan Grulich 2016-07-15 06:46:51 UTC
Why you cannot install qgnomeplatform?

Comment 5 Martin Bříza 2016-07-15 13:59:10 UTC
In case you for some reason are not able or willing to use qgnomeplatform, I recommend going for the qt5ct platform plugin and configuration tool (packaged in Fedora under the same name).
It allows you to config a lot of Qt settings. The only thing you'll have to do would be to override the QT_QPA_PLATFORM environment variable.

Comment 6 Massimiliano 2016-07-15 20:37:48 UTC
(In reply to Jan Grulich from comment #4)
> Why you cannot install qgnomeplatform?
Well:

# dnf install qgnomeplatform
Ultima verifica della scadenza dei metadati: 0:00:29 fa il Fri Jul 15 21:37:22 2016.
Dipendenze risolte.
======================================================
 Package                                              
======================================================
Installazione in corso:
 accountsservice-libs                                 
 argyllcms                                            
 caribou                                              
 caribou-gtk2-module                                  
 caribou-gtk3-module                                  
 cheese-libs                                          
 clutter-gst3                                         
 colord-gtk                                           
 control-center                                       
 control-center-filesystem                            
 desktop-backgrounds-gnome                            
 evolution-data-server                                
 f24-backgrounds-gnome                                
 gdm                 <-- Another display manager!
 geoclue2-libs                                        
 geocode-glib                                         
 gjs                                                  
 gnome-bluetooth                                      
 gnome-bluetooth-libs                                 
 gnome-color-manager                                  
 gnome-desktop3                                       
 gnome-online-accounts                                
 gnome-session                                        
 gnome-session-wayland-session                        
 gnome-session-xsession                               
 gnome-settings-daemon                                
 gnome-shell         <-- Another shell!
 gupnp-av                                             
 gupnp-dlna                                           
 ibus-libs                                            
 iio-sensor-proxy                                     
 libgdata                                             
 libgsystem                                           
 libgweather                                          
 libical                                              
 mozjs24                                              
 mutter             <-- Another composite manager!                     
 pulseaudio-gdm-hooks                                 
 python3-caribou                                      
 python3-pyatspi                                      
 qgnomeplatform                                       
 rygel                                                
 telepathy-filesystem                                 
 telepathy-glib                                       
 telepathy-logger                                     
 vino                                                 
 webkitgtk3                                           
 xorg-x11-server-Xwayland         

Riepilogo della transazione
======================================================
Installati  48 pacchetti

Dimensione totale dello scaricamento: 41 M
Dimensione installata: 164 M  <-- Total space lost! 

I believe that one half gnome and 164 Mb are too expensive for a consistent L&F.

(In reply to Martin Bříza from comment #5)
> In case you for some reason are not able or willing to use qgnomeplatform, I
> recommend going for the qt5ct platform plugin and configuration tool
> (packaged in Fedora under the same name).

This package costs only 551 k. It appears under the menu: System -> Preferences -> Appearance (good place!). 

> It allows you to config a lot of Qt settings. The only thing you'll have to
> do would be to override the QT_QPA_PLATFORM environment variable.

Reading the /usr/share/doc/qt5ct/README file, it seems that the right environment variable to set is:

$ QT_QPA_PLATFORMTHEME=qt5ct vlc

Now vlc has adwaita as theme.

Thank you all for the suggestions.

But... from this bug it seems that only gnome (apart KDE) will have a consistent L&F for Qt5 (without some manually configuration), right?

Comment 7 Jan Grulich 2016-07-18 06:01:45 UTC
I think that all these are pulled in due to dependency on GDM which I removed already and that updated package should be in updates-testing repository.

Comment 8 Massimiliano 2016-07-18 16:39:49 UTC
(In reply to Jan Grulich from comment #7)
> I think that all these are pulled in due to dependency on GDM which I
> removed already and that updated package should be in updates-testing
> repository.

# dnf --enablerepo=updates-testing install qgnomeplatform

===============================================
 Package                                 Arch  
===============================================
Installazione in corso:
 qgnomeplatform                          x86_64

Riepilogo della transazione
===============================================
Installati  1 pacchetto

Dimensione totale dello scaricamento: 45 k
Dimensione installata: 102 k  <-- Reasonable cost

Following [1] I have to set the QT_QPA_PLATFORMTHEME to get the theme working.
Theme is ok, but the font is wrong: it is inherited from the key org.gnome.desktop.interface.font-name of dconf and not from current environment (i.e. org.mate.interface.font-name). The font shown is Cantarell in my case, while the system default is Droid Sans.

To summarize, for MATE DE:
* both libraries (qt5ct and qgnomeplatform) can set adwaita as default theme
* both are cheap (small space)
* both require manual setup by setting the QT_QPA_PLATFORMTHEME variable
* qt5ct is more flexible, while qgnomeplatform tries to inherit from gnome settings

IMHO:
* For a simple fixed setup set the QT_STYLE_OVERRIDE variable (e.g. in your ~/.bash_profile). Override once and forget it. No further library is required.
* If you want a more flexible setup (with GUI) install qt5ct and then override QT_QPA_PLATFORMTHEME

Thanks
Massimiliano

[1] https://fedoraproject.org/wiki/Test_Day:2016-03-17_Qt_Gtk_Integration