KDE 4.10, oxygen-gtk2 and icon themes

Maciek Borzecki maciek.borzecki at gmail.com
Sat Feb 9 14:27:06 UTC 2013


Hi all,

I'm trying out KDE 4.10, and there seems to be an issue regarding icon
theme handling for GTK2 apps with certain icon themes.
For the record, the default Oxygen theme works for both GTK2 and GTK3
apps. Switching, for instance, to KFaenza only GTK3 apps have proper
icon theme, while GTK2 (like yumex, google-chrome, firefox) fallback
to default gnome icon theme. Behaviour is the same, even if I set GTK
theme to something else than oxygen-gtk, like Adwaita or Zukitwo.
For comparison, when same icon theme is selected in Xfce, the icons
are properly loaded.

It seems that the problems arise only for themes that use index.theme
to indicate respective size icons (there are no <size>x<size>
directories in top dir).

I've hooked up strace to Firefox to see what files are being accessed,
and it turns out that if I'm running a GTK2 app under Xfce,  firs
index.theme is accesed, and all relevant icons are loaded:

  14199:3035  stat("/home/maciek/.icons/KFaenza/index.theme",
{st_dev=makedev(8, 5), st_ino=3042247, st_mode=S_IFREG|0644,
st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=16,
st_size=5213, st_atime=2013/02/09-14:01:43,
st_mtime=2011/10/08-21:00:02, st_ctime=2013/02/09-14:05:08}) = 0
  14200:3035  open("/home/maciek/.icons/KFaenza/index.theme", O_RDONLY) = 26
  14212:3035  stat("/home/maciek/.icons/KFaenza/emblems/8",
{st_dev=makedev(8, 5), st_ino=3039143, st_mode=S_IFDIR|0755,
st_nlink=2, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=8,
st_size=4096, st_atime=2013/02/09-14:01:42,
st_mtime=2011/09/25-17:33:32, st_ctime=2013/02/09-14:05:08}) = 0
  14213:3035  stat("/home/maciek/.icons/KFaenza", {st_dev=makedev(8,
5), st_ino=3026351, st_mode=S_IFDIR|0755, st_nlink=11, st_uid=1000,
st_gid=1000, st_blksize=4096, st_blocks=8, st_size=4096,
st_atime=2013/02/09-14:01:41, st_mtime=2011/11/04-23:43:27,
st_ctime=2013/02/09-14:05:08}) = 0
  14214:3035  open("/home/maciek/.icons/KFaenza/icon-theme.cache",
O_RDONLY) = -1 ENOENT (No such file or directory)
  14215:3035  openat(AT_FDCWD,
"/home/maciek/.icons/KFaenza/emblems/8",
O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 26
  14219:3035  stat("/home/maciek/.icons/KFaenza/actions/16",
{st_dev=makedev(8, 5), st_ino=3045145, st_mode=S_IFDIR|0755,
st_nlink=2, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=72,
st_size=36864, st_atime=2013/02/09-14:01:41,
st_mtime=2013/02/09-14:02:03, st_ctime=2013/02/09-14:05:08}) = 0
  14220:3035  stat("/home/maciek/.icons/KFaenza", {st_dev=makedev(8,
5), st_ino=3026351, st_mode=S_IFDIR|0755, st_nlink=11, st_uid=1000,
st_gid=1000, st_blksize=4096, st_blocks=8, st_size=4096,
st_atime=2013/02/09-14:01:41, st_mtime=2011/11/04-23:43:27,
st_ctime=2013/02/09-14:05:08}) = 0
  14221:3035  open("/home/maciek/.icons/KFaenza/icon-theme.cache",
O_RDONLY) = -1 ENOENT (No such file or directory)
...
followed by getdents with a long list of files.

However, under KDE the log shows that KFaenza/index.theme is opened,
but no icons are loaded afterwards. The GTK proceeds to open
Faeza/index.theme as it's first in the inherit list and so on, ending
up with default gnome icons at the end.

  16450:3929  <... read resumed>
"/home/maciek/.kde/share/icons/:/"..., 4096) = 49
  16497:3929  open("/usr/share/themes/oxygen-gtk/gtk-2.0/icons4", O_RDONLY) = 20
  16501:3929  stat("/home/maciek/.kde/share/icons/KFaenza",
{st_dev=makedev(8, 5), st_ino=3026351, st_mode=S_IFDIR|0755,
st_nlink=11, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=8,
st_size=4096, st_atime=2013/02/09-14:01:41,
st_mtime=2011/11/04-23:43:27, st_ctime=2013/02/09-14:05:08}) = 0
  16502:3929  open("/home/maciek/.kde/share/icons/KFaenza/index.theme",
O_RDONLY) = 20
  16506:3929  stat("/usr/share/icons/KFaenza", 0x7fffe560bed0) = -1
ENOENT (No such file or directory)
  16507:3929  stat("/home/maciek/.kde/share/icons/Faenza",
{st_dev=makedev(8, 5), st_ino=2905510, st_mode=S_IFDIR|0775,
st_nlink=12, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=8,
st_size=4096, st_atime=2013/02/09-13:39:27,
st_mtime=2013/02/09-13:39:28, st_ctime=2013/02/09-13:39:28}) = 0
  16508:3929  open("/home/maciek/.kde/share/icons/Faenza/index.theme",
O_RDONLY) = 20
  16512:3929  stat("/usr/share/icons/Faenza", 0x7fffe560bc90) = -1
ENOENT (No such file or directory)
  16513:3929  stat("/home/maciek/.kde/share/icons/gnome",
0x7fffe560ba50) = -1 ENOENT (No such file or directory)
  16514:3929  stat("/usr/share/icons/gnome", {st_dev=makedev(8, 1),
st_ino=272417, st_mode=S_IFDIR|0755, st_nlink=10, st_uid=0, st_gid=0,
st_blksize=4096, st_blocks=8, st_size=4096,
st_atime=2013/02/09-12:21:50, st_mtime=2013/02/09-12:22:02,
st_ctime=2013/02/09-12:22:03}) = 0
  16515:3929  open("/usr/share/icons/gnome/index.theme", O_RDONLY) = 20

Then a Tango theme under KDE:
  18252:4426  open("/usr/share/icons/Tango/index.theme", O_RDONLY) = 20
  18256:4426  stat("/home/maciek/.kde/share/icons/gnome",
0x7fff3fb9cf10) = -1 ENOENT (No such file or directory)
  18257:4426  stat("/usr/share/icons/gnome", {st_dev=makedev(8, 1),
st_ino=272417, st_mode=S_IFDIR|0755, st_nlink=10, st_uid=0, st_gid=0,
st_blksize=4096, st_blocks=8, st_size=4096,
st_atime=2013/02/09-12:21:50, st_mtime=2013/02/09-12:22:02,
st_ctime=2013/02/09-12:22:03}) = 0
  18258:4426  open("/usr/share/icons/gnome/index.theme", O_RDONLY) = 20
  18263:4426  stat("/home/maciek/.kde/share/icons/crystalsvg",
0x7fff3fb9cf10) = -1 ENOENT (No such file or directory)
  18264:4426  stat("/usr/share/icons/crystalsvg", 0x7fff3fb9cf10) = -1
ENOENT (No such file or directory)
  18265:4426  open("/usr/share/icons/Tango/16x16/mimetypes/image-x-generic.png",
O_RDONLY) = 20

Notice that there is an access pattern similar to the erroneous
KFaenza case. However the Tango theme does have a differentl layout of
directories (like 16x16, 22x22...) for storing icons of respective
sizes. This causes GTK2 apps to find proper icons.

It looks like the index.theme is either unused or cannot be
interpreted. Both environments have Net/IconThemeName is set to
KFaenza in xsettings (used dump_xsettings from xsettingsd package to
verify that).

Any clues what might be wrong here?

Cheers,
--
Maciek Borzecki


More information about the kde mailing list