¿Cómo fusiono dos conjuntos de iconos?

14

Quiero fusionar el conjunto de iconos estándar de Ubuntu Mono y el conjunto de iconos de Faenza. Me gustaría mantener los iconos estándar de Ubuntu en el panel (incluidos los iconos de Dropbox, transferencias de archivos, etc.) y reemplazar todos los demás iconos de aplicaciones con las versiones de Faenza.

¿Cómo voy a hacer esto?

richzilla
fuente

Respuestas:

3

Edite este archivo a continuación con su editor de texto favorito

/usr/share/icons/ubuntu-mono-(which mono set you want)/index.theme

y poner a Faenza al comienzo de la línea de herencia.

Vallery
fuente
2
Debe evitar modificar los archivos del sistema. Una actualización de ubuntu-mono revertirá su cambio.
idbrii
12

Creo que la mejor manera de fusionar conjuntos de iconos es crear lo que yo llamo un conjunto de iconos ligero. Este conjunto de iconos vive en su directorio de inicio para que no se vea afectado por las actualizaciones del sistema, pero se vincula a los conjuntos de iconos del sistema, por lo que se actualizará junto con ellos. Estos temas no estarán disponibles para otros usuarios en su sistema.

Conjuntos de iconos ligeros

El administrador de temas de Ubuntu buscará ~/.iconsy /usr/share/iconsestablecerá conjuntos de iconos. Cualquier cosa que se ~/.iconsanule /usr/share/icons.para que pueda copiar un conjunto de iconos desde el directorio del sistema al directorio de inicio para personalizar el icono y ¡solo incluya las partes que desea cambiar!

En general, creo que es mejor hacer sus propios conjuntos de iconos que usen los del sistema. Puede hacerlo creando un conjunto de iconos, un archivo index.theme y agregando algunos iconos. Sin embargo, cuando combine diferentes conjuntos de iconos, deberá anular su Inheritsatributo para poder establecer su propio orden de precedencia.

Crear un conjunto de iconos para combinar temas

Creemos un conjunto de iconos súper mono:

# Create a new icon set
mkdir -p ~/.icons/super-mono

# Copy an existing icon config and modify it for our new icon set
cp /usr/share/icons/Faenza-Darkest/index.theme      ~/.icons/super-mono/.
sed -ie "s/Name=Faenza-Darkest/Name=super-mono/"    ~/.icons/super-mono/index.theme
sed -ie "s/Comment=.*$/Comment=Created with by me/" ~/.icons/super-mono/index.theme
sed -ie "s/Inherits=/Inherits=ubuntu-mono-dark,/"   ~/.icons/super-mono/index.theme

Ahora tenemos un nuevo ícono configurado en Apariencia que es exactamente como Faenza-Darkest.

Para fusionar nuestros dos temas, cambiamos el tema super-mono para heredarlo de ubuntu-mono-dark y luego Faenza.

sed -ie "s/Inherits=.*$/Inherits=ubuntu-mono-dark,Faenza/" ~/.icons/super-mono/index.theme

Eso debería ser suficiente para richzilla, solo selecciona super-mono en Apariencia.

Agregar iconos personalizados

También podemos agregar iconos individuales a este conjunto de iconos:

ln -s /usr/share/icons/Faenza-Darkest/actions/22/gtk-paste.png ~/.icons/super-mono/actions/22/.

Y ahora nuestro tema super-mono combina ubuntu-mono-dark y Faenza, excepto que usa un ícono de Faenza-Darkest. Vea las secciones posteriores para usar más que unos pocos íconos.

Es importante ver que copié el index.theme de Faenza-Darkest y luego usé iconos de Faenza-Darkest. El archivo index.theme dice dónde pueden estar los íconos. Si desea extraer iconos individuales de diferentes conjuntos de iconos, deberá fusionar sus archivos index.theme. Puede mirar los archivos y verá un campo llamado Directorios que enumera todas las carpetas que contienen iconos. Luego verá otros campos que describen estas carpetas. Si agrega un icono que no se describe en estos campos, se ignorará ese icono. Puede encontrar más información en la especificación index.theme .

Avanzado: combinación selectiva de tres conjuntos de iconos

También me encantan los iconos de ubuntu-mono. Me encantan los iconos de aplicaciones de Faenza, pero no me gustan los iconos mono de Faenza (los indicadores y botones). También me gustan los iconos de primaria. Por eso quiero combinar estos tres conjuntos de iconos. Hasta donde sé, la mejor manera de hacerlo es aislando los íconos que te gustan.

  1. Usa ubuntu-mono-dark
  2. Usa los íconos de aplicaciones de Faenza
  3. De lo contrario, use los iconos de primaria

Para hacer esto, necesitamos decirle a ubuntu-mono-dark que no herede de nada (para que también podamos usar Faenza y elemental).

# First, ubuntu-mono-dark
# Create a shadow of the system icon set
mkdir -p ~/.icons/ubuntu-mono-dark

# Copy an existing icon config and modify it for our shadow icon set
cp /usr/share/icons/ubuntu-mono-dark/index.theme   ~/.icons/ubuntu-mono-dark/.
sed -ie "s/Comment=.*$/Comment=A shadow to prevent inherits/" ~/.icons/ubuntu-mono-dark/index.theme
sed -ie "s/Inherits=.*$/Inherits=/"                ~/.icons/ubuntu-mono-dark/index.theme

Notarás que el conjunto de iconos ubuntu-mono-dark ahora está roto. Faltarán iconos proporcionados por Humanity-Dark y otros conjuntos de iconos de los que hereda. Este cambio solo afectará a su usuario.

Ahora podemos crear un nuevo conjunto de iconos que use los iconos de la aplicación de Faenza.

# Create a new icon set
mkdir -p ~/.icons/Faenza-apps

# Copy the existing icon config and modify it for our new icon set
cp /usr/share/icons/Faenza/index.theme             ~/.icons/Faenza-apps/.
sed -ie "s/Name=Faenza/Name=Faenza-apps/"          ~/.icons/Faenza-apps/index.theme
sed -ie "s/Comment=.*$/Comment=Just Faenza app icons/" ~/.icons/Faenza-apps/index.theme
sed -ie "s/Inherits=.*$/Inherits=/"                ~/.icons/Faenza-apps/index.theme

# Use Faenza's app icons
ln -s /usr/share/icons/Faenza/apps/ ~/.icons/Faenza-apps/.

Este conjunto de iconos de aplicaciones de Faenza también está roto. Solo tiene iconos para aplicaciones. Faltan todos los otros íconos porque eliminamos los Herederos

Ahora creamos el conjunto de iconos que usaremos. Nuestro conjunto de iconos no contendrá iconos, solo conecta nuestros otros conjuntos de iconos.

# Create a new icon set
mkdir -p ~/.icons/merge-mono-dark

# Copy an existing icon config and modify it for our new icon set
cp /usr/share/icons/Faenza/index.theme                 ~/.icons/merge-mono-dark/.
sed -ie "s/Name=Faenza/Name=merge-mono-dark/"          ~/.icons/merge-mono-dark/index.theme
sed -ie "s/Comment=.*$/Comment=Created with by me/"    ~/.icons/merge-mono-dark/index.theme
sed -ie "s/Inherits=.*$/Inherits=ubuntu-mono-dark,Faenza-apps,elementary-mono-dark/" ~/.icons/merge-mono-dark/index.theme

¡Ahora deberíamos poder seleccionar merge-mono-dark en Apariencia y tendremos un nuevo y hermoso conjunto de iconos! (Nota: No deberíamos necesitar fusionar archivos index.theme porque no estamos agregando íconos de diferentes conjuntos de íconos para fusionar-mono-dark. En cambio, estamos usando Herencias para fusionar automáticamente los conjuntos de íconos).


Explicación de algunos comandos.

Utilizo muchos comandos de Terminal para simplificar esta respuesta, pero aquí hay una descripción de lo que hacen.

ln -s /usr/share/icons/Faenza-Darkest/actions/22/gtk-paste.png ~/.icons/Faenza-Alan/actions/22/.

Esto crea un puntero en su conjunto de iconos al icono gtk-paste del conjunto de iconos del sistema. De esa forma no se utiliza espacio adicional en el disco duro y su conjunto de iconos se actualiza junto con el conjunto de iconos del sistema. Si no quiere eso, reemplácelo ln -scon cp -r.

sed -ie "s/dark/light/" ~/file

Medios para reemplazar todo darkcon lighten ~ / archivo.

sed -ie "s/Comment=.*$/Comment=Created with by me/" ~/.icons/super-mono/index.theme

Los .*$medios para hacer coincidir cualquier texto (. *) Con el final de la línea ($).

sed -ie "s/Inherits=/Inherits=ubuntu-mono-dark,/"   ~/.icons/super-mono/index.theme

Aquí estamos insertando ubuntu-mono-dark delante de la lista de Herencias porque lo estamos buscando Inherits=y reemplazando conInherits=ubuntu-mono-dark,

En cualquier lugar que use sed, puede editar el archivo y aplicar modificaciones manualmente.

idbrii
fuente
1
<sarcasm> No estoy seguro de que esta publicación sea lo suficientemente detallada como pydave </sarcasm> con toda seriedad, una gran respuesta. De hecho, tuve un problema similar con el ícono de Clementinas que esto soluciona.
zookalicious