¿Cómo puedo cambiar mediante programación el ícono de un archivo?

16

Si selecciono un icono en Nautilus y selecciono Propiedades, puedo hacer clic en el icono que se muestra allí. Esto me da un cuadro de diálogo de selección de archivos para seleccionar una nueva imagen de icono.

Me gustaría hacer esto mediante un script de algún tipo para poder asignar el mismo ícono a muchos archivos a la vez. O tome una lista de iconos y una lista de archivos y asígnelos entre sí.

¿Hay alguna forma de lograr esto? Algo en bash o Python sería genial, pero tomaré lo que pueda conseguir.

Tenga en cuenta:

  • No estoy preguntando cómo cambiar el ícono para un tipo de archivo.
  • No estoy preguntando cómo cambiar un ícono en el iniciador.

ingrese la descripción de la imagen aquí

Kris Harper
fuente

Respuestas:

25


Para cambiar esos íconos desde la línea de comandos, puede usar el siguiente comando:

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

Puede usar este comando en un script bash según sus necesidades.

Si ejecuta el comando y el icono no cambia de inmediato, puede instalar el paquete xautomation con:

sudo apt-get install xautomation

Y finalmente, use el comando "xte" para "enviar clave" en bash como "F5" para actualizar.
Un pequeño ejemplo sería:

#!/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"  

Espero que esto sea útil para ti.

Raguet romano
fuente
3

La respuesta de Roman parece ideal. Hay otra forma menos elegante. No estoy seguro de dónde viven los íconos en el resto del sistema, pero los íconos que están en su escritorio son solo pequeños archivos de texto en $ HOME / Desktop. Usualmente (pero no es necesario) tienen la extensión de .desktop. Uno de los campos en estos archivos es Icon = .... Puede usar un programa para cambiar lo que ese campo esté configurado al valor que elija. (Puede que tenga que hacer una actualización después de hacer esto, tal como sugiere Roman).

Cuando quiero usar un ícono para otra cosa o en otro sistema, a veces busco en estos archivos .desktop para saber cómo se llama el ícono en uso.

Las especificaciones para estos archivos se encuentran en: http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec

Joe

Joe
fuente