Comment changer l'icône pour un type de fichier particulier?

42

J'essaie de changer l'icône pour les application/x-hwpfichiers. J'ai ajouté les icônes aux endroits appropriés et vérifié avec assoGiate (après avoir lu ce fil de discussion ). Cela montre que l'icône de mon choix est associée au type de fichier. Néanmoins, Nautilus affiche toujours l'ancienne icône. Comment faire en sorte que Nautilus affiche la bonne icône?

Scott Severance
la source
@Rinzwind: Merci. Malheureusement, ce lien résout un problème différent. Il est basé sur la modification des icônes de fichiers individuels. Je veux changer l'icône par défaut pour tous les fichiers d'un type donné.
Scott Severance
Utilisez-vous un thème d'icônes personnalisé? Cela pourrait interférer avec l'icône qui est supposée apparaître.
RBourgogne
J'utilise le thème Stock Ambiance. Quoi qu'il en soit, cela ne devrait pas avoir d'importance, car à ma connaissance, aucun thème d'icône ne couvre ce type de fichier. L'icône qui apparaît par défaut ne s'affiche que lorsque Nautilus ne sait pas quelle autre icône afficher. De plus, les thèmes d'icônes sont hiérarchiques. Par conséquent, si une icône appropriée ne peut pas être trouvée dans le thème actuel, une recherche sera effectuée dans la hiérarchie, qui aboutira finalement au thème hicolor. Mes icônes sont installées dans les thèmes ubuntu0mono-dark et hicolor.
Scott Severance

Réponses:

22

Voici un ensemble d’instructions qui devraient vous donner une icône personnalisée pour les fichiers hwp.

Ouvrir un terminal:

  • Vérifiez que le type MIME existe: grep 'hwp' /etc/mime.types

    si vous obtenez une sortie ressemblant, application/x-hwp hwpsautez l’étape suivante.

  • Créez le type MIME sudo -H gedit /etc/mime.typeset ajoutez la ligneapplication/x-hwp hwp

  • Ajoutez l'icône (qui doit être appelée application-x-hwp.svg) :

    sudo cp PathToIcon/application-x-hwp.svg /usr/share/icons/gnome/scalable/mimetypes
    

    (n'oubliez pas de remplacer PathToIcon)

Obtenu l'information d' ici

danjjl
la source
Merci pour la suggestion. Je n'ai pas encore eu l'occasion de l'essayer à fond (jusqu'à présent, pas de succès), mais j'accorde la prime, car les autres suggestions n'ont pas fonctionné et je n'aurai plus l'occasion de travailler dessus auparavant. la prime expire.
Scott Severance
Vous devriez peut-être vérifier si votre thème d'icônes hérite de gnome (la plupart des thèmes d'icônes). Vous trouverez ces informations dans index.theme situé dans le répertoire de votre jeu d’icônes
danjjl
Vous devez également vérifier ~/.local. Par exemple ~/.local/share, qui imite le dossier /usr/local/share. Votre application installée localement (c’est-à-dire l’application réservée à votre intention et non d’autres connexions) peut avoir ses propriétés. Modifier des fichiers similaires, par exemple,~/.local/share/icons/XXXX/XXXX
Robin Hsu
@danjjl: Que voulez-vous dire par (n'oubliez pas de remplacer PathToIcon)?
JoKalliauer
1
@JoKalliauer dans la commande pour copier l'icône /usr/share/... . Je me réfère à PathToIcon. Ceci doit être remplacé par le chemin d'accès à l'icône sur votre PC. (si vous pensez que cela pourrait être formulé plus clairement, n'hésitez pas à proposer une modification)
danjjl
14

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-changelogaura 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.svgicônes qui sont évolutives et qui auraient dû être placées dans un scalablesous-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.themefichiers. Si nous regardons à l'intérieur /usr/share/icons/Humanity/index.theme, nous verrons:

Inherits=gnome,hicolor

Cela signifie que les icônes de gnomeet les hicolordossiers 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 assogiatele premier onglet, mais jamais dans Nautilus. Mais quand je les ai placés dans un Humanitydossier 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 Humanityplus le cas), comme expliqué précédemment.

whtyger
la source
Vous devez également vérifier ~/.local. Par exemple ~/.local/share, qui imite le dossier /usr/local/share. Votre application installée localement (c’est-à-dire l’application réservée à votre intention et non d’autres connexions) peut avoir ses propriétés. Modifier des fichiers similaires, par exemple,~/.local/share/icons/XXXX/XXXX
Robin Hsu
0

J'espère que vous avez essayé de vous déconnecter et de vous connecter pour actualiser le cache des icônes.

Vérifiez également si votre icône est disponible dans une taille appropriée (celle que vous utilisez pour afficher le type de fichier dans Nautilus).

Vous pourriez aussi manquer de courir gtk-update-icon-cache.

Essayez ce tutoriel: http://swik.net/Ubuntu/Only+Ubuntu/How+To+Change+File-File+(mimetype)+Icons+in+Ubuntu/chcrf

Essayez de créer manuellement icon.theme, voici un exemple de awn:

[Icon Theme]
Name=awn-theme

Directories=scalable

[scalable]
Size=48
MaxSize=256
Context=Apps
Type=Scalable

Le manuel est ici: http://live.gnome.org/GnomeArt/Tutorials/IconThemes

Chris Hasiński
la source
J'ai installé une icône 48x48 et défini Nautilus sur 100%, qui utilise 48x48. Pas de dé. La reconnexion ne fait aucune différence. Courir gtk-update-icon-cachen'a aucun effet.
Scott Severance
J'ai mis à jour ma réponse, est-ce que cela vous a aidé?
Chris Hasiński
Je n'ai pas créé manuellement un thème d'icônes, car je ne veux pas d'un nouveau thème. Je veux juste que l'icône entre dans le thème hicolor, parce que c'est la base de tous les thèmes d'icônes. Créer un nouveau thème ira à l'encontre de mon objectif.
Scott Severance
-2

1)

 sudo apt-get install assogiate

suivez ce bon tutoriel avec de belles images

http://lordamit.blogspot.com/2010/07/change-file-type-icons-mime-type-icons.html


2)

Si le type de fichier n'est pas détecté correctement ou s'il affiche un type de fichier incorrect, trouvez les caractères d'identification de votre type de fichier

EX: rar aller à http://filext.com/file-extension/rar

identifiant "Hex: 52 61 72 21 1A 07 00, ASCII: Rar!"

ouvrez le fichier dans un bénédiction ou un éditeur hexadécimal et trouvez l'identifiant et le décalage (où commencent vos mots-clés)

dans notre cas, le bit ainsi compensé est "0".

Cliquez ensuite sur "Editeur de types de fichiers" pour modifier ou créer un nouvel élément, puis sélectionnez Modifier et sous le contenu du fichier.

sélectionnez "chaîne" dans le menu déroulant, entrez "Rar!" et réglez le décalage "0".

Terminé

sodam
la source
3
Comme je l'ai noté dans ma question initiale, l'assogiate ne fonctionne pas.
Scott Severance