Preload image: /images/menu_left_hilight.png Preload image: /images/menu_mid_hilight.png Preload image: /images/menu_right_hilight.png Preload image: /images/menu-local_left_hilight.png Preload image: /images/menu-local_mid_hilight.png Preload image: /images/menu-local_right_hilight.png

Adding icons to ELF binaries

About elfres

Screenshot of icons in ELF binaries

As a seasoned user of the terminal, the issue of an application having an icon embedded into it is something that I didn't even notice until I started converting others to Ubuntu. I propose adding a non-obtrusive section to ELF applications that provides this functionality and can be accessed through GNOME's thumbnail capability. This idea is meant to compliment the icons provided through the package manager and take advantage of the extensibility of the ELF specification.

Many users expect applications that they've downloaded to have recognizable icons, this icon is usually something familiar from visiting the website for the program. A good example of an application that's not already included in the Ubuntu repo is "songbird", which has a large egg right next to the download link and for its Windows icon.

In addition, provided that this technology is adopted by different segments of the development community (GNOME, automake, and developers) then icon handling will no-longer require any action for packagers. GNOME could easily check the ELF binary for an icon, so no configuration file would be necessary for the appropriate icon to appear. By storing a GUID in the binary it would also be possible to theme icons for all system applications (over-riding the icon stored in the binary) by using the GUID as a unique id for matching the application with an icon stored in a theme.

To discuss this topic please visit

Launchpad spec:

NOTE: This project is a technology demonstration for implementing this functionality. This implementation should not be considered a spec, a discussion of what is appropriate and what is needed should be made before locking down how ELF icons should be handled.


I now have an Ubuntu PPA setup, so if you're running 9.10 or later you can add ppa:ehoover/compholio to your Software Sources to automatically obtain updates and download the software. The easiest way to do this (for recent debian-based distributions) is to run the following at the command-line:

sudo apt-add-repository ppa:ehoover/compholio;
sudo apt-get install gnome-elf-thumbnailer;
    Debian Packages RPM Packages
Downloadable Packages: libr 0.6.0:  (x86-32) (x86-64) (x86-32) (x86-64)
Downloadable Packages: elfres 0.6.0:  (x86-32) (x86-64) (x86-32) (x86-64)
Downloadable Packages: gnome-elf-thumbnailer 0.6.0:  (x86-32) (x86-64) (x86-32) (x86-64)
  Complete 0.6.0 sources