Lost and Found: Gnome Splash Icons

The splash screen is that box that appears just after you log in, usually showing a logo of some kind. As each component of the desktop loads, an icon is displayed. Here's the current Gnome splash graphic on my Gentoo Linux system:

Along the bottom of the splash window, the computer puts up status icons as each component of the desktop comes on-line, like these:


The Problem

There were icons missing from my system. Some of the icons on the splash screen were replaced with this ugly beast:

I couldn't find any documentation on this, so on with the Sherlock Holmes cap and off to investigate. First, I needed to know which program was displaying the splash icons. I prowled around in /usr/share/pixmaps until I found /usr/share/pixmaps/splash/gnome-splash.png.

This next spell uses a brute force method, so if you are squeamish, avert your eyes. The idea is to scan through a bunch of executable programs to find a string that matches the name of my splash image file. The grep -q makes the search quiet by surpressing output of the matches, since we only care about whether a match was found. Instead, I take advantage of the exit status of grep to print out the name of the splash image program.

cd /usr/bin
for PROG in gnome*
  strings $PROG | grep -q gnome-splash.png && echo $PROG

Eureka! "gnome-session" is output, and is therefore our culprit.

The Solution

Alas, "gnome-session" isn't documented in the Gnome help files. I must read the source code. This is another one of those times when Free Software empowers the user. The problem rests with a file called "splash-widget.c". It looks in /usr/share/icons/gnome/48x48/apps for the icons to display on the splash screen. When I looked in that directory, sure enough, there were no icons for my programs (sound-properties and gconfd-2 to be precise).

Now the solution is easy. Using nautilus, I scanned through /usr/share/pixmaps to find appropriate icons for those two missing applications. When I found them, I (as root) copied them into the proper location:

cp /usr/share/pixmaps/mixer/volume-max.png /usr/share/icons/gnome/48x48/apps/sound-properties.png
cp /usr/share/pixmaps/gnome-util.png /usr/share/icons/gnome/48x48/apps/gconfd-2.png
It turns out that gnome-session cannot follow symlinks, so you must actually copy the files.

Ah, that's better! As an added benefit to my splash screen looking neat and tidy, it also doesn't wait for me to click it to close - it closes shortly after the last icon is displayed.

Share and enjoy!

Copyright 2004 by Hal Eisen