Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 286412 - kde-base/systemsettings-4.3: "GTK Styles and Fonts" item not available even though "Raleigh" theme is.
Summary: kde-base/systemsettings-4.3: "GTK Styles and Fonts" item not available even t...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords: InOverlay
Depends on:
Blocks:
 
Reported: 2009-09-25 13:41 UTC by Jeremy Murphy
Modified: 2010-01-02 01:19 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jeremy Murphy 2009-09-25 13:41:23 UTC
As mentioned in the Gentoo KDE Guide, one can install gtk-engines-qt, etc in order to theme GTK applications and this provides access to the "GTK Styles and Fonts" item in the Appearance panel.  However, even before any gtk-engines-* packages are installed, there is a "Raleigh" theme installed with x11-libs/gtk+, yet one cannot access the aforementioned settings page to select between it and "Use my KDE style...".
My feeling is that the availability of this settings item would be better to depend on the presence of the gtk+ package than gtk-engines-*.

Reproducible: Always

Steps to Reproduce:
1. Install a GTK package.
2. Don't install any gtk-engines-* packages.
3. Try to access "GTK Styles and Fonts" in the Appearance panel of System Settings.

Actual Results:  
No settings item.

Expected Results:  
The settings item for GTK applications.

Portage 2.2_rc41 (default/linux/amd64/10.0/desktop, gcc-4.4.1, glibc-2.10.1-r0, 2.6.31-gentoo x86_64)                                                                             
=================================================================                        
System uname: Linux-2.6.31-gentoo-x86_64-Intel-R-_Core-TM-2_CPU_6300_@_1.86GHz-with-gentoo-2.0.1                                                                                  
Timestamp of tree: Thu, 24 Sep 2009 14:45:01 +0000                                       
distcc 3.1 x86_64-pc-linux-gnu [disabled]                                                
ccache version 2.4 [enabled]                                                             
app-shells/bash:     4.0_p33                                                             
dev-java/java-config: 2.1.9-r1                                                           
dev-lang/python:     2.6.2-r2, 3.1.1-r1                                                  
dev-util/ccache:     2.4-r8                                                              
dev-util/cmake:      2.6.4-r2                                                            
sys-apps/baselayout: 2.0.1                                                               
sys-apps/openrc:     0.4.3-r3                                                            
sys-apps/sandbox:    2.1                                                                 
sys-devel/autoconf:  2.13, 2.63-r1                                                       
sys-devel/automake:  1.8.5-r3, 1.9.6-r2, 1.10.2, 1.11                                    
sys-devel/binutils:  2.19.1-r1                                                           
sys-devel/gcc-config: 1.4.1                                                              
sys-devel/libtool:   2.2.6a                                                              
virtual/os-headers:  2.6.30-r1                                                           
ACCEPT_KEYWORDS="amd64 ~amd64"                                                           
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=core2"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-O2 -pipe -march=core2"
DISTDIR="/home/portage/distfiles"
FEATURES="assume-digests ccache collision-protect distlocks fixpackages metadata-transfer parallel-fetch prelink preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="http://ftp.iinet.net.au/pub/Gentoo "
LANG="en_AU.UTF-8"
LC_ALL="en_AU.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="en_AU.UTF-8 en_AU en_GB.UTF-8 en_GB"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/home"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/layman/sunrise /usr/local/portage/layman/x11 /usr/local/portage"
SYNC="rsync://rsync.au.gentoo.org/gentoo-portage"
USE="X a52 aac aalib acpi alsa amd64 ao avahi bash-completion berkdb blas branding bzip2 cairo cddb cdr cli cracklib crypt css curl dbus djvu dts dvd dvdr emboss encode exif expat fam ffmpeg fftw flac fontconfig fortran gd gdbm geoip gif gmp gnome gnutls gphoto2 gpm graphviz gsl gstreamer gtk hal iconv icq icu imagemagick imlib ipod ipv6 isdnlog java java5 java6 javascript jpeg jpeg2k kde lapack ldap libnotify lm_sensors lzo mad matroska mikmod mmap mmx mng modules mp3 mp4 mpeg mplayer msn mtp mudflap multilib mysql mysqli ncurses nls nptl nptlonly nsplugin ntfs offensive ogg openal openexr opengl openmp pam pch pcre pdf perl plasma png ppds pppd python qt3support qt4 quicktime readline reflection samba sdl session sharedmem smp speex spell spl sqlite sqlite3 sse sse2 ssl startup-notification subversion svg sysfs syslog tcpd theora threads thunar tiff timidity truetype unicode usb v4l2 vcd vorbis wavpack wmf wxwindows x264 xcb xcomposite xml xorg xpm xscreensaver xulrunner xv xvid xvmc zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_AU.UTF-8 en_AU en_GB.UTF-8 en_GB" USERLAND="GNU" VIDEO_CARDS="radeon"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Alex Alexander (RETIRED) gentoo-dev 2009-09-25 14:22:53 UTC
x11-themes/gtk-engines-qt is the package that provides the "GTK Styles and Fonts" item in System Settings, so if you need that panel you have to install it :)
Comment 2 Jeremy Murphy 2009-09-26 01:56:01 UTC
OK, I didn't realise that technicality, but it doesn't really change my point, so I'm going to reopen it.  My point is that that feature should be available without installing gtk-engine-qt.  At the moment it is possible to install numerous GTK themes, but not be able to select any of them because the one theme (engine package) with the settings item is not installed.  That just doesn't seem right.  Surely we can design a better solution.  Like I said previously, it seems like it would make much more sense to enable that settings item with the installation of gtk+, not gtk-engines-qt.  If that means moving the kcmgtk4.desktop file from the gtk-engines-qt package into the gtk+ package and installing it if the kde USE flag is enabled -- then I hope we can at least discuss it.  At *worst*, or as a stopgap, installation of one theme could depend on gtk-engines-qt so that the user gets the settings item.  The way it currently works doesn't make sense.
Comment 3 Jeremy Murphy 2009-10-03 00:28:55 UTC
So, what do you think about this?
Comment 4 Alex Alexander (RETIRED) gentoo-dev 2009-10-03 01:40:14 UTC
I've added an experimental "gtk" USE flag in kde-testing overlay's kde-base/systemsettings that depends on gtk-engines-qt.

This should help :)
Comment 5 Jeremy Murphy 2009-10-03 03:01:18 UTC
I like it.  :)

I'm not sure that it's going to work in all cases, though.  Is it not possible that a KDE user might have USE="-gtk" and still install GTK+-based applications?  I'm still inclined to think that a "kde" flag in x11-libs/gtk+ is the way to go.  Although rather than moving the file like I suggested earlier, make gtk+ depend on gtk-engines-qt if the flag is enabled.

I think your idea is definitely a step in the right direction, thanks Alex!
Comment 6 Maciej Mrozowski gentoo-dev 2009-10-05 01:30:39 UTC
Relying on from KDE perspective third party library/application (gtk-engines-qt here) with arguably low quality is definitely wrong way - Alex please revert this.
If any - gtk theme Qt4 style is the way to go (as it's known to be better and provide *exact* same look & feel - not the other way around. And it doesn't need any USE flags tweaks.
Comment 7 Jeremy Murphy 2009-10-27 09:55:40 UTC
But Maciej, I'm not sure that you're actually addressing the problem as I described it initially and in comment #2.  Sure, I can see why you don't want KDE to depend on some package that weakens the integrity of KDE.  But something is not quite right with this GTK theme business: it's fairly obvious that if you have a theme installed then you want to be able to select it, but at the moment it's broken.
Comment 8 Alex Alexander (RETIRED) gentoo-dev 2009-10-27 10:03:28 UTC
I still feel that the gtk USE flag was the right way to go :)
Comment 9 Maciej Mrozowski gentoo-dev 2009-10-27 14:11:12 UTC
Well, the fact that one has gtk theme installed doesn't necessarily mean he/she wants to have it available in all other toolkits (Qt4 being one of them, what about Qt3, Motif).
And you're suggesting what's in fact available already - there is gtk USE flag in x11-libs/qt-gui ebuild, to provide Gtk look and feel for QT4 apps.
Making something like this for x11-libs/gtk+ makes little sense considering gtk-engines-qt is low-quality package not worthy of being considered Qt4 theme provider for gtk apps.
Comment 10 Jeremy Murphy 2009-12-29 08:47:10 UTC
Hi, sorry about the long delay in replying, it went under the radar for a while.

(In reply to comment #9)
> Well, the fact that one has gtk theme installed doesn't necessarily mean he/she
> wants to have it available in all other toolkits (Qt4 being one of them, what
> about Qt3, Motif).

Yes, I agree with that statement, but that's not the point I'm making.  I'm saying that it's possible to install themes without being able to select them.  It's like letting users install themes for program X without actually installing program X -- it doesn't make sense!  Don't you see that?


> And you're suggesting what's in fact available already - there is gtk USE flag
> in x11-libs/qt-gui ebuild, to provide Gtk look and feel for QT4 apps.

Oh but I don't want to do that!  I want the opposite!  Please, it seems like you have misunderstood the point I am trying to make.

This situation is also seriously complicated by the recent hard masking of gtk-engines-qt.  It highlights the problem that gtk-engines-qt is both a theme AND the theme selector.  Could the crucial file (kcmgtk4.desktop) that provides the settings item please be split off into its own package, something like 'gtk-engines-kdesettings'?  And all gtk-engines-* be made to depend on it if the kde USE flag is enabled?  That would solve everything, and it doesn't make KDE itself depend on anything new.

Please, this is urgent now that gtk-engines-qt is masked.
Comment 11 Jeremy Murphy 2009-12-29 08:59:36 UTC
Just a quick update, there are actually three files for the theme selector:

/usr/lib64/kde4/kcm_gtk4.so
/usr/share/icons/kcmgtk.png
/usr/share/kde4/services/kcmgtk4.desktop
Comment 12 Jeremy Murphy 2009-12-29 13:35:11 UTC
It's OK, my prayers have been answered: Samuli is splitting the KCM module out into a new package.
Comment 13 Jeremy Murphy 2010-01-02 01:19:46 UTC
It works, hurrah!