Adding Icons to a Theme in Elementary Luna

Elementary Luna IconSince I’m using Elementary Luna as my daily driver, I’m using it with a lot of apps not designed with it in mind. Rather, the Elementary icon set doesn’t include icons for these programs, such as Eclipse, NVIDIA X Server Settings, Skype, etc. Luckily, a beautiful icon set called Faenza does. By installing Faenza and patching our Elementary icon set with links to Faenza icons, we can fill in the gaps in our icon set.

First, make sure you’ve installed Faenza as root and that the command ls /usr/share/icons/Faenza doesn’t report a missing directory. Next, we’ll create directories to make sure that both sides have the right folders. This only needs to be done once:

$ sudo mkdir /usr/share/icons/elementary/apps/{16,22,24,32,48,64,96,128,scalable}

The above command might generate errors due to pre-existent directories, but that’s not a problem, we just want to make sure that they’re there for this next step. We’ll now create symbolic links to the icons, to save a little space on disk and avoid duplication of data:

$ for size in 16 22 24 32 48 64 96 ; do 
    sudo ln -s /usr/share/icons/{Faenza,elementary}/apps/$size/skype.png
$ sudo ln -s /usr/share/icons/{Faenza,elementary}/apps/scalable/skype.svg

Note the last line, which ends in svg, this is a scalable SVG vector rather than a baked PNG image.

Finally, we’ll rebuild GNOME’s icon cache, so that our theme will begin using the icons right away:

$ sudo gtk-update-icon-cache -f /usr/share/icons/elementary

With that, we’re all done and you should see your beautiful new icons. You might have to restart programs for things to start working as expected, but otherwise, everything should be in proper order :)

2 thoughts on “Adding Icons to a Theme in Elementary Luna

  1. Ends up with “gtk-update-icon-cache: No theme index file.” at my machine. :(
    As I don’t know how to get some, or if it’s just a mistake I made at installation… any solution?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>