El truco principal es averiguar correctamente dónde se encuentran los íconos reales.
Para determinar eso, analicemos los iconos HTML. La convención de nomenclatura para los iconos es la misma que para el tipo MIME, solo /
se reemplaza por -
y no se permiten letras mayúsculas. Es decir, el tipo MIME, por ejemplo, text/x-changelog
tendrá el icono llamado text-x-changelog.svg
(o png
). El tipo MIME para HTML es text/html
. Entonces su icono será text-html.*
Si ejecutamos el comando
find /usr/share/icons/ -type f | grep 'text-html\.'
Obtendremos varios lugares donde se colocan estos iconos:
/usr/share/icons/Humanity/mimes/
/usr/share/icons/gnome/NNxNN/mimetypes/
/usr/share/icons/HighContrast/scalable/mimetypes/
Si visitamos cada uno de ellos con Nautilus, veremos que esa Humanity/
carpeta contiene nuestros iconos actuales, gnome/
algunos más antiguos. HighContrast/
no nos interesa Entonces, para cambiar algún ícono, debemos reemplazar los íconos ubicados en la Humanity/
carpeta.
Observe también que los text-html.svg
iconos que son escalables y deberían haberse colocado en una scalable
subcarpeta (eso debería ser lógico) se colocan en las carpetas para diferentes tamaños, de la misma manera que los archivos PNG rasterizados.
Después de reemplazar los íconos (en todas las subcarpetas de acuerdo con sus tamaños) con los íconos deseados, se debe actualizar la caché de íconos:
sudo gtk-update-icon-cache /usr/share/icons/Humanity
Eso es.
Hay otra forma de determinar la precedencia de los esquemas de iconos: verificar sus index.theme
archivos. Si miramos adentro /usr/share/icons/Humanity/index.theme
, veremos:
Inherits=gnome,hicolor
Esto significa que los iconos gnome
y las hicolor
carpetas tendrán menos prioridad que los de Humanity
. Esto se explica aquí .
Por extraño que parezca, Nautilus no obedece estas reglas de herencia. Cuando añadí nuevo tipo MIME, he intentado colocar sus iconos en /usr/share/icons/gnome/
, /usr/share/icons/hicolor
, ~/.local/share/icons/hicolor
, base de datos de icono de actualización en cada paso - todo en vano. Estos íconos se muestran correctamente en assogiate
la primera pestaña, pero nunca en Nautilus. Pero cuando los coloqué en la Humanity
carpeta y la base de datos de iconos actualizada, aparecieron de inmediato.
Nota: todo esto se aplica al tema de icono predeterminado. Si utiliza algún tema de icono personalizado, debe verificar dónde se encuentran los iconos reales y agregar / cambiar iconos allí. También en las distribuciones más recientes, estas reglas de herencia pueden cambiar. Luego, debe ubicar la nueva carpeta que almacena los íconos reales (si ya no lo está Humanity
) como se explicó anteriormente.