Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

If I select an icon in Nautilus and select Properties, I can click on the icon presented there. This gives me a file-chooser dialog to select a new icon image.

I would like to do this via a script of some sort so that I can assign the same icon to many files at once. Or take a list of icons and a list of files and assign them to each other.

Is there some way I can accomplish this? Something in bash or Python would be great, but I'll take what I can get.

Please note:

  • I am not asking how to change the icon for a file type.
  • I am not asking how to change an icon on the launcher.

enter image description here

share|improve this question
add comment

2 Answers

up vote 14 down vote accepted


To change those icons from the command line, you can use the following command:

gvfs-set-attribute -t string /path/to/your/file metadata::custom-icon file:///path/to/your/icon.png

You can use this command in a bash script according to your needs.

If you run the command and the icon does not change immediately, you can install the xautomation package with:

sudo apt-get install xautomation

And finally, use the command "xte" to "sendkey" in bash like "F5" to refresh..
A little example would be:

#!/bin/bash
gvfs-set-attribute -t string /home/hermes/testicon metadata::custom-icon file:///home/hermes/Desktop/applet_blank.png
sleep 3
xte "key F5"  

I hope this is useful for you.

share|improve this answer
    
Awesome. Works like a charm. Thanks. –  Kris Harper Nov 21 '12 at 0:50
add comment

Roman's answer looks ideal. There is another less elegant way. I'm not sure where icons live in the rest of the system, but icons that are on your Desktop are just little plain text files in $HOME/Desktop. They usually (but don't have to) have the extension of .desktop. One of the fields in these files is Icon=.... You can use a program to change whatever that field is set to to the value of your choice. (You may have to do a refresh after doing this just as Roman suggests.)

When I want to use an icon for something else or on another system, I sometimes look in these .desktop files to find out what the icon in use is named.

The specs for these files live at: http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec

Joe

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.