Versión 1.3 de IconMod: cambiar iconos desde una url


"Y es que un proyecto no es un proyecto si no se mejora día a día"


 

Cogemos nuestra caja mágica y le metemos diez mil programas súper-útiles pero que no nos dejan de convencer su diseño o sus iconos.  Sabemos que para cambiar los iconos tendríamos que ir a una línea de un archivo situado en un sitio y cambiarla con cuidado de no tocar nada más, abrirlo como superusuario etc.

Para cosas como esas está IconMod y un poquito de Gimp en caso de que queramos diseñar nuestros propios iconos. 

Aunque ya lo dije en una entrada anterior diré una pequeña introducción:

IconMod es un programa OpenSource que empecé a desarrollar solo y rápidamente recibí ayuda de manera indirecta de Fanta de elbinario.net Quién vio el código y decidió hacerle unas modificaciones para que se prestase al Scripting.
Modificando un poco la idea de Fanta y adaptándola a un modelo de varios módulos conseguimos crear la versión 1.2 de IconMod. En esta versión conseguimos dos modos de uso. A través del modo interactivo donde el programa te va preguntando los parámetros. O el modo de Scripting o OneLiner donde con una sola línea podíamos modificar un icono y de esta manera crear Scripts que cambiaran muchísimos iconos de un tirón en los ordenadores en los que los pusiéramos.

Ahora... ¿pero la versión 1.3 para qué? 
Y es que en esta versión quería liberar de espacio los Scripts que hiciéramos con el método de Scripting. Y llevar una carpeta con un montón de imágenes no era viable. Además de que si queríamos pasar nuestro Script a otra persona tendría que descargarse todas las imágenes y además... A no ser que lo guardase en /tmp/ hasta que llamase a IconMod seguramente las imágenes quedarían duplicadas en el ordenador.
Con esta pretensión y con la idea de ahorrarnos la vida le añadí una nueva funcionalidad para poder descargar los iconos en tiempo real solo indicando la url. Y así nació IconMod 1.3

En el método de Scripting se incluye una nueva opción -u y --url. Ambas hacen lo mismo. Aquí tenemos un ejemplo para cambiar la imagen de Firefox por el icono de Debian.

sudo iconmod -s firefox -u https://www.debian.org/Pics/openlogo-50.png

El resultado es el siguiente


 Un dato importante es que siempre debemos llamar a IconMod con permisos administrativos ya que si no nos dará un error. 

Este error se debe a que el funcionamiento interno del programa en esta funcionalidad es el siguiente (en el modo OneLiner):

Coge la Url de la imagen. Saca el nombre de la imagen y lo muestra en pantalla. Añade .desktop a la aplicación que hemos elegido. Va a /usr/share/applications/ y busca el archivo de su aplicación. Si no lo encuentra avisa de que la aplicación no existe o has escrito mal el nombre.

Después coge el nombre de la aplicación y le pone la extensión del icono especificado en la Url y guarda la imagen especificada en /opt/iconmod/photos/ con el nombre de la aplicación más la extensión de la imagen. Todo para un mayor orden.

Esta acción ya requiere privilegios administrativos.

Y finalmente modifica el archivo de la aplicación para cambiarle el valor que apunta a la imagen del Icono de esta sin tocar los demás valores.

En el modo interactivo o guiado aparece una nueva pregunta donde pregunta si la imagen es local[l] o está en la network[n].

Tanto si ya lo tenemos instalado como si no el proceso de instalación/actualización es el mismo.

# si no tenemos instalado Python3 
sudo apt-get install python3
# si no tenemos instalado git
sudo apt-get install git
# descargamos el programa
cd /tmp/
git clone https://github.com/curiosoinformatico/iconmod
cd iconmod
# instalamos/actualizamos el programa
sudo ./setup.sh
# Si nos da errores de que no puede sobrescribir algo o crear un directorio
# porque ya existe no nos preocupamos. Significa que ya lo teníamos instalado 
# antes y solo ha actualizado las cosas que han cambiado y no ha tocado las 
# anteriores.


Fijaros en el Icono de Firefox en la barra superior...
En el icono de la aplicación también cambia. 


Es importante que en la Url especifiquemos la ruta de la imagen completa, si no nos lanzará un error. 
http://curiosoinformatico/4454/dss por ejemplo, daría un error. 

https://www.debian.org/Pics/openlogo-50.png por ejemplo, sería una Url bien especificada.
Honestamente espero que os sirva para algo, estáis invitados por supuesto a ayudar a añadirle funcionalidades y mejorarlo y como siempre...
 

Un fuerte abrazo!

No hay comentarios:

Publicar un comentario