L'astuce principale consiste à rechercher correctement l'emplacement des icônes.
Afin de déterminer cela, analysons les icônes HTML. La convention de dénomination pour les icônes est la même que pour le type MIME, seulement /
est remplacée par -
et aucune lettre majuscule n'est autorisée. C'est-à-dire que le type MIME, par exemple, text/x-changelog
aura l'icône nommée text-x-changelog.svg
(ou png
). Le type MIME pour HTML est text/html
. Donc, son icône sera text-html.*
Si nous exécutons la commande
find /usr/share/icons/ -type f | grep 'text-html\.'
nous aurons plusieurs endroits où ces icônes sont placées:
/usr/share/icons/Humanity/mimes/
/usr/share/icons/gnome/NNxNN/mimetypes/
/usr/share/icons/HighContrast/scalable/mimetypes/
Si nous visitons chacun d'eux avec Nautilus, nous verrons, ce Humanity/
dossier contient nos icônes actuelles, gnome/
certaines plus anciennes. HighContrast/
ne nous intéresse pas. Donc, afin de changer une icône, nous devons remplacer les icônes situées dans le Humanity/
dossier.
Notez également que les text-html.svg
icônes qui sont évolutives et qui auraient dû être placées dans un scalable
sous-dossier (qui devrait être logique) sont placées dans les dossiers pour des tailles différentes, de la même manière que les fichiers PNG raster.
Après le remplacement des icônes (dans tous les sous-dossiers en fonction de leur taille) par celles souhaitées, le cache des icônes doit être mis à jour:
sudo gtk-update-icon-cache /usr/share/icons/Humanity
C'est ça.
Il existe un autre moyen de déterminer la priorité des schémas d'icônes: vérifier leurs index.theme
fichiers. Si nous regardons à l'intérieur /usr/share/icons/Humanity/index.theme
, nous verrons:
Inherits=gnome,hicolor
Cela signifie que les icônes de gnome
et les hicolor
dossiers auront moins de priorité que ceux de Humanity
. Ceci est expliqué ici .
Etrangement, Nautilus n'obéit pas à ces règles d'héritage. Quand je a ajouté un nouveau type MIME, j'ai essayé de placer ses icônes dans /usr/share/icons/gnome/
, /usr/share/icons/hicolor
, ~/.local/share/icons/hicolor
, base de données de l' icône de mise à jour à chaque étape - en vain. Ces icônes étaient affichées correctement dans assogiate
le premier onglet, mais jamais dans Nautilus. Mais quand je les ai placés dans un Humanity
dossier et mis à jour une base de données d'icônes, ils sont apparus immédiatement.
NB: tout cela s'applique au thème d'icônes par défaut. Si vous utilisez un thème d'icônes personnalisé, vous devez vérifier où se trouvent les icônes réelles et y ajouter / modifier des icônes. De plus, dans les distributions plus récentes, ces règles d'héritage peuvent changer. Ensuite, vous devez localiser le nouveau dossier dans lequel sont stockées les icônes réelles (si ce n’est Humanity
plus le cas), comme expliqué précédemment.