GNOME Bugzilla – Bug 106076
broken volume control icon
Last modified: 2003-03-11 19:32:21 UTC
Description of Problem: The icon for the volume control is broken. Steps to reproduce the problem: 1. compile gnome 2.2.0 2. start gnome-panel Actual Results: Wrong icon Expected Results: the speaker icon How often does this happen? always
Created attachment 14317 [details] screenshot of broken volume control icon
I used the official gnome tarbals.
Are you talking about the icon with the little red "x" in the upper right panel? Is this the volume control applet?
the icon with the little red "x" in the upper right panel is indeed the volume control applet where I'm talking about.
In the directory {prefix}/share/pixmaps/mixer there should be a bunch of png files - volume-medium.png volume-mute.png volume-max.png volume-min.png volume-zero.png Are they there?
Yes, they're there... compukid@pc1:/usr/local/share/pixmaps/mixer$ ls -lh total 24K -rw-r--r-- 1 root staff 1.6K Feb 12 18:45 gnome-mixer-applet.png -rw-r--r-- 1 root staff 2.4K Feb 12 18:45 volume-max.png -rw-r--r-- 1 root staff 2.1K Feb 12 18:45 volume-medium.png -rw-r--r-- 1 root staff 1.9K Feb 12 18:45 volume-min.png -rw-r--r-- 1 root staff 972 Feb 12 18:45 volume-mute.png -rw-r--r-- 1 root staff 1.6K Feb 12 18:45 volume-zero.png
hmm... where is the rest of gnome installed? The applet may be looking in /usr/share/pixmaps/mixer not /usr/local/share/pixmaps/mixer
gnome is installed in the default (/usr/local) location. I'll try to make some symlinks so the png's will be available in both locations.
which keys in gconf are used for settings of the image of the volume-control icon?
There are no gconf keys controlling the images. As John said, the applet looks in {prefix}/share/pixmaps/mixer for the icons. Do you have an older version of GNOME installed elsewhere? It may be the applet is looking in a directory of a different GNOME installation. Here's how you should be able to find where mixer is looking: 1) remove the mixer applet from the panel 2) run 'strace -eopen /usr/local/libexec/mixer-applet-2' (or wherever the binary is located) 3) add the mixer applet to the panel using the right click menu Now watch for output where it tries to open the image files. Note what directory it is looking in.
Created attachment 14614 [details] output of "strace -eopen /usr/local/libexec/mixer_applet2"
Seems like he's searching for the file: 'NULL' (mixer_applet2:15481): Gtk-WARNING **: Useless GtkIconSource contains NULL filename and pixbuf (mixer_applet2:15481): Gtk-CRITICAL **: file gtkiconfactory.c: line 2091 (gtk_icon_source_set_filename): assertion `filename == NULL || g_path_is_absolute (filename)' failed
Actually, the problem is that it prepends the wrong prefix to icon path: open("NONE/share/pixmaps/mixer/gnome-mixer-applet.png", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/local/lib/charset.alias", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) This is where the icon is opened: mixer.c:841: gnome_window_icon_set_from_file (GTK_WINDOW (about), GNOME_ICONDIR"/mixer/gnome-mixer-applet.png"); and this is what the definition of the GNOME_ICONDIR in config.h is: #define GNOME_ICONDIR "NONE/share/pixmaps" It appears that the problem is the configure script?
Changing the config.h manually and recompiling the applets fixed the problem for me
Yeah that's correct. Somehow GNOME_ICONDIR should be set to "/something/share/pixmaps". I'm not sure why it's not be set correctly. Here's the relavant line 253 from configure.in: AC_DEFINE_UNQUOTED(GNOME_ICONDIR, "${prefix}/share/pixmaps") For you guys ${prefix} should be /usr/local, but for some reason it is substituting NONE. The code hasn't changed in years for this. What version of automake, autoconf are you using?
compukid@pc1:~$ automake --version automake (GNU automake) 1.4-p6 Copyright (C) 1999, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Tom Tromey <tromey@redhat.com> compukid@pc1:~$ autoconf --version Autoconf version 2.13
I also found this line in config.h #define PREFIX "NONE"
"./configure --prefix=/usr/local" did fix it for me...
*** This bug has been marked as a duplicate of 104935 ***