Cómo guiar un programa para cambiar el color de la carpeta en Ubuntu o cualquier cambio de icono, como se muestra en este video

Como se muestra en el video, se puede hacer fácilmente con Nautilus (el administrador de archivos predeterminado para Ubuntu). Según los detalles de la respuesta, entiendo que desea hacerlo de la manera difícil, es decir, codificándolo desde cero. Esta es una excelente manera de comprender las funcionalidades disponibles para usted y debe seguir adelante.

Algunas cosas a tener en cuenta antes de comenzar su proyecto:

  1. Hay algunas carpetas especiales (Inicio, Documentos, Música, Escritorio, Descarga, Imágenes, Acciones públicas, Plantillas, Videos), que tienen diferentes iconos en el tema predeterminado.
  2. Los iconos de la carpeta se cargan desde el tema predeterminado, que los contiene como archivos .svg. Entonces, en esencia, encontrará 10 archivos .svg diferentes (9 iconos de carpetas especiales y uno para las Carpetas predeterminadas) dentro de su tema de iconos predeterminado.

Ahora, una forma de cambiar los colores de estos iconos es crear una copia de estos archivos .svg en el color que desee, crear un nuevo tema y cargarlo. Por ejemplo, si desea que algunas carpetas sean verdes, puede crear copias de todos estos 10 íconos en verde.

El siguiente paso es decidir la cantidad de colores que desea, crear tantos directorios y copias de estos 10 iconos en ellos. (También puede automatizar este proceso. Lea sobre cómo cambiar los colores de las imágenes svg en GTK. Genere dinámicamente).

Ahora necesita asignar un color a una carpeta particular a medida que lo selecciona. Para esto, debe escribir una extensión de Nautilus, que es esencialmente un script de Python. (Lea sobre cómo escribir una extensión nautilus).
Nota: Puede omitir esta parte si desea realizar este cambio desde la terminal. Escriba un script de shell para cargar el color que desee. Básicamente, cargará un tema de icono particular para la carpeta. O simplemente puede abrir la ventana de propiedades para ese directorio y establecer el svg que desee como el icono personalizado.

Si decide escribir una extensión nautilus, diseñe un menú contextual que permita al usuario seleccionar un color que corresponda a uno de los colores que decidió que tenían sus iconos en el paso anterior (o permita que ingresen un código de color y los genere íconos dinámicamente). Cuando el usuario selecciona la opción en particular, encuentre el ícono que desea establecer para esa carpeta en particular, obtenga la uri de ese ícono, acceda al nuevo directorio como un objeto y configure su cadena de atributos con la uri del ícono.

Si está utilizando Python, debe importar algunos paquetes (Nautilus, GObject, Gio, GLib, y puede haber un par más) desde gi.repository. Acceda a los métodos para obtener la carpeta como un objeto y configure su cadena de atributos.

Para hacer esto, debe cambiar el código de nautilus. Por lo tanto, debe descargar el código nautilus y compilarlo usted mismo. Esto no es posible si no quieres descargar nada 🙁