Pages : 1
#1 Le 16/11/2010, à 12:15
- roger64
Associer une icône à un type de fichiers
Bonjour
J'avais cru y arriver en 2008. Il faut me rendre à l'évidence, je n'y arrive pas.
Je souhaite que les fichiers avec l'extension .pgn (notation de partie d'échecs) utilisent une icône qui me plait. Lorsque je clique sur les propriétés d'un fichier .pgn, il m'indique qu'il appartient à
application/x-chess-pgn. Je ne sais pas ce qu'est ce programme. Je ne le reconnais pas.
Pour moi, le seul programme d'échecs que j'utilise est Scid que j'ai installé après compilation et avec make install.
J'ai réussi dans le temps à associer aux fichiers avec l'extension .si4 (Scid) cette même icône. Mais rien à faire pour les fichiers avec l'extension .pgn.
J'ai googlé et trouvé des articles qui me semblaient clairs, notamment celui-ci.
http://www.packtpub.com/article/control … -in-ubuntu
J'ai tenté de bricoler avec assogiate, d'associer avec bless un nombre magique, j'ai perdu un temps considérable et je n'y arrive pas.
Si quelqu'un a une méthode explicite pour y arriver, ce ne sera pas de refus.
Dernière modification par roger64 (Le 24/11/2010, à 14:00)
Hors ligne
#2 Le 16/11/2010, à 14:18
- abelthorne
Re : Associer une icône à un type de fichiers
application/x-chess-pgn, c'est le type MIME du fichier. Si je ne m'abuse, il suffit d'avoir dans ton thème une icône application-x-chess-pgn qui correspondra à ce type pour qu'elle soit utilisée avec les fichiers .pgn. C'est peut-être un brin plus compliqué que ça parce qu'il est possible que GNOME/Nautilus cherche une icône gnome-mime-application-x-chess-pgn mais au pire, il suffit d'avoir les deux dans le thème.
Bon, je n'ai jamais testé en profondeur les types MIME en bidouillant des thèmes d'icônes mais je crois que ça se passe comme ça.
Dernière modification par abelthorne (Le 16/11/2010, à 14:18)
Hors ligne
#3 Le 16/11/2010, à 22:21
- roger64
Re : Associer une icône à un type de fichiers
Bonjour
Je cherche une solution durable. Un thème chez moi n'est pas durable. J'avais trouvé une solution de ce genre il y a deux ans : c'est construire sur des châteaux de sable. Mais je reconnais que je suis loin d'avoir des idées nettes à ce sujet..
Hors ligne
#4 Le 17/11/2010, à 12:11
- roger64
Re : Associer une icône à un type de fichiers
En fouillant mon disque dur, j'ai trouvé dans le thème infinity une icône appelée gnome-mime-application-x-extension-pgn.pgp (rien que ça) qui devait fonctionner il y a deux ans ou plus quand j'utilisais ce thème là.
J'ai trouvé un rapport de bug dans le launchPad à propos d'assogiate, avec lequel actuellement je n'arrive à rien en ce qui concerne l'association d'une icône avec un type de fichier.
https://bugs.launchpad.net/ubuntu/+sour … bug/312260
Bon, les recherches continuent...
Dernière modification par roger64 (Le 17/11/2010, à 12:16)
Hors ligne
#5 Le 17/11/2010, à 12:17
- abelthorne
Re : Associer une icône à un type de fichiers
Je cherche une solution durable. Un thème chez moi n'est pas durable.
Ce sont pourtant les thèmes d'icônes qui gèrent les icônes. Si tu t'en fous d'avoir des icônes cohérentes (puisque tu veux garder les tiennes quel que soit le thème que tu utilises), tu peux toujours les mettre dans le thème hicolor, c'est celui de base. Si une icône n'est pas présente ailleurs, le système va normalement la chercher là.
Dernière modification par abelthorne (Le 17/11/2010, à 12:18)
Hors ligne
#6 Le 17/11/2010, à 13:33
- roger64
Re : Associer une icône à un type de fichiers
Veut pas.
J'ai essayé avec les répertoires d'icônes gnome et hicolor de mettre un fichier svg appelé application-x-chess-pgn.svg dans les répertoires /scalable/mimetype puis de faire
sudo gtk-update-icon-cache -f /usr/share/icons/hicolor
Il me répond que la mise à jour a été réussie. Je me délogue, relogue et rien ne change.
J'abandonne provisoirement car je suis à court d'idées.
Hors ligne
#7 Le 19/11/2010, à 06:07
- roger64
Re : Associer une icône à un type de fichiers
Bonjour
Je crois avoir compris...
La solution la plus facile pour effectuer ce genre de modifications ponctuelles est probablement le logiciel assogiate.
http://packages.ubuntu.com/search?suite … =assogiate
Vous pouvez utiliser assogiate de deux façons possibles:
gksu assogiate
qui modifiera /usr/local/share/mime
assogiate
qui modifiera /home/user/.local/share/mime
Il faut donc après avoir entré vos modifications (notamment dans le cas qui nous intéresse ici l'emplacement de l'icône que vous avez choisie) sauvegarder en faisant, selon le cas:
sudo update-mime-database /usr/local/share/mime
ou
update-mime-database /home/user/.local/share/mime
J'ai rajouté pour faire bonne mesure le troisième emplacement. Il doit aussi être possible d'utiliser une seule commande pour sauvegarder les trois bases de données.
sudo update-mime-database /usr/local/mime
Il n'est pas nécessaire de mettre une icône svg. Une icône au format png est aussi acceptée.
assogiate dispose aussi d'une fonction d'export que je n'ai pas utilisée.
NB: user est à modifier en fonction de votre nom.
Dernière modification par roger64 (Le 19/11/2010, à 08:28)
Hors ligne
#8 Le 19/11/2010, à 12:06
- roger64
Re : Associer une icône à un type de fichiers
Confirmation réussie
J'ai effectué la même opération avec mes fichiers au format .epub, qui apparaissent comme des fichiers texte standard en leur affectant une icône "maison".
J'ai tenté de modifier sans succès l'entrée existante: application/epub+ zip en y mettant une icône.
Finalement, j'ai réussi en créant une nouvelle entrée du même nom application/epub + zip, à laquelle j'ai affecté l'icône.
Double sauvegarde de mime-database et ça roule. L'important, semble t-il, est que votre modification soit mentionnée dans le fichier override.xml.
NB: important Etant en "expérimentation", j'ai commis quelques erreurs de manipulation. Je me suis montré en particulier trop "volontariste" avec les fichiers des bases de données xml, qui pourtant sont "lisibles". Je vous conseille instamment d'éviter de les modifier directement sous peine d'effets curieux (genre non-affichage de certains types de fichier dans certains répertoires...) et surtout indémerdables....
Dernière modification par roger64 (Le 20/11/2010, à 02:22)
Hors ligne
#9 Le 24/11/2010, à 14:16
- roger64
Re : Associer une icône à un type de fichiers
application/x-chess-pgn, c'est le type MIME du fichier. Si je ne m'abuse, il suffit d'avoir dans ton thème une icône application-x-chess-pgn qui correspondra à ce type pour qu'elle soit utilisée avec les fichiers .pgn. C'est peut-être un brin plus compliqué que ça parce qu'il est possible que GNOME/Nautilus cherche une icône gnome-mime-application-x-chess-pgn mais au pire, il suffit d'avoir les deux dans le thème.
Bon, je n'ai jamais testé en profondeur les types MIME en bidouillant des thèmes d'icônes mais je crois que ça se passe comme ça.
Tu as raison. Chaque fichier dispose normalement d'un type mime (clic droit propriétés). A partir de cela, en fait il y a deux cas de figure principaux selon la réponse à la question suivante:
le type mime du fichier en question est-il reconnu dans la base officielle ?
Pour connaître la réponse, il faut rechercher sa présence dans le fichier /usr/share/mime/packages/freedesktop.org.xml
Si ce n'est pas le cas, assogiate suffit sans problème à associer icône et type de fichier. Il inscrit les modifications dans le fichier override.xml.
J'ai ainsi réussi en l'utilisant à associer une icône aux fichiers de format si3, si4 et lrf qui sont des formats spécifiques. Comme ce faisant on ajoute qqch à la base de données mime utilisateur, il faut sauvegarder les changements avec la commande update-mime-database à laquelle on ajoute suivant le cas:
- l'emplacement de la base de données utilisateur: /home/user/.local/share/mime
- l'emplacement de la base de données développeur: /usr/local/share/mime
- l'emplacement de la base de données système: /usr/share/mime
Si c'est le cas, il faut un traitement lourd que je détaillerai dans un autre post avec des exemples.
Dernière modification par roger64 (Le 24/11/2010, à 14:32)
Hors ligne
#10 Le 26/11/2010, à 15:14
- roger64
Re : Associer une icône à un type de fichiers
Bon en ce qui concerne la seconde partie, j'ai obtenu finalement au moins un résultat positif pour les mime-types existants. Voici comment j'ai réussi à mettre une icône spécifique pour les fichiers epub.
Les fichiers epub sont identifiés dans la base de données freedesktop.org.xml sous le mimetype
application/epub+zip. Elle leur attribue une icône générique « x-office-document »
L'icône générique est l'icône de la famille à laquelle appartient le fichier. Ici, il s'agit de la famille où l'on trouve aussi les traitement de texte, etc...Dans le cas où une icône spécifique au mimetype n'est pas trouvée, l'ordinateur se rabat sur l'icône générique. C'est ce qui se passait ici parce que notre thème d'icônes n'a pas d'icône spécifique pour l'epub.
Lorsque vous donnez à l'icône son nom spécifique, il est normalement directement dérivé de celui de son mime-type. Ainsi le mime-type application/epub+zip aura l'icône spécifique application-epub+zip.png (ou svg)
L'icône utilisée (qu'elle soit spécifique ou générique), est fournie par le thème d'icônes. Dans Ubuntu les thèmes existent à deux niveaux:
- Au premier niveau, le thème d'icônes ubuntu-mono-dark dépend d'Humanity dark qui lui même dépend d'Humanity, un peu comme des poupées gigogne.
- Ensuite, en cas de défaut, l'ordinateur cherche une icône dans les thèmes de deuxième niveau Gnome et Hicolor.
Dans le cas qui m'intéresse, j'ai trouvé l'icône générique utilisée pour le mime-type epub+zip (« x-office-document » si vous avez bien suivi) dans le dossier mime du thème Humanity. Plus exactement, il y avait sept tailles différentes d'icônes (16,22,24,32,48,64 et 128), toutes au format svg.
Il faut donc mettre en place sept icônes spécifiques au format svg dans ces mêmes dossiers. Elles semblent devoir être de forme carrée bien que je ne l'ai pas vu explicitement dans la documentation.
Une fois que c'est fait, on met à jour le thème d'icônes, on met à jour la base de données mime et normalement tout roule.
sudo gtk-update-icon-cache -f /user/share/icons/Humanity
sudo update-mime-database /user/share/mime
Pour moi cela a fonctionné pour le format epub mais échoué pour le format de notation d'echecs pgn sans que je comprenne pourquoi.
Annexe.
Identification du mime-type epub+zip dans /usr/share/mime/packages/freedesktop.org.xml
J'ai élagué la partie « langues » qui comprend en fait une trentaine d'entrées. Vous repèrerez:
- le nom de l'icône générique qu'il vous faudra retrouver dans le thème d'icônes
- les éléments d'identification du mimetype à savoir
- le « glob » qui est le classique suffixe d'extension .epub
- les éléments « magiques » qui sont ici au nombre de trois et que l'on retrouve au même emplacement au début de chaque fichier.
</mime-type>
<mime-type type="application/epub+zip">
<comment>electronic book document</comment>
<comment xml:lang="fr">document livre électronique</comment>
<generic-icon name="x-office-document"/>
<magic priority="50">
<match value="PK\003\004" type="string" offset="0">
<match value="mimetype" type="string" offset="30">
<match value="application/epub+zip" type="string" offset="38"/>
</match>
</match>
</magic>
<glob pattern="*.epub"/>
</mime-type>
Conclusion
L'association d'une icône à un type de fichiers est facile lorsqu'il s'agit d'un type nouveau et non répertorié. On utilisera avec profit le logiciel assogiate.
Elle est beaucoup plus laborieuse lorsqu'il s'agit d'un type répertorié car elle nécessitera une modification du thème d'icônes. Elle ne peut alors être raisonnablement conseillée que de façon ponctuelle.
Dernière modification par roger64 (Le 27/11/2010, à 02:36)
Hors ligne
#11 Le 13/12/2010, à 14:55
- roger64
Re : Associer une icône à un type de fichiers
Bonjour
En fait, il semble que le types pgn et epub soient bien identifiés par mon système. Pourtant seule l'icône pgn n'apparait pas sur le bureau (contrairement à l'icône epub). Si vous avez une explication..
Hors ligne
#12 Le 30/01/2011, à 17:08
- Tuxmouraille
Re : Associer une icône à un type de fichiers
Bonjour,
Je relance ce sujet car j'ai trouvé a solution.
Je suis sous Ubuntu 10.10, il faudra vérifier que ça marche pour les autres versions.
Voici un scripte qui permet de le faire:
#!/bin/bash
mime=`zenity --title "Choix du type MIME" --entry --text "Veuillez indiquer le type MIME :"`
if [ "$mime" != "" ] ; then
icone=`zenity --file-selection --title="Choix de l'icône" --file-filter="SVG Scalable Vector Graphics image | *.svg"`
if [ "$icone" != "" ] ; then
typemime=`file --mime-type -b "$icone"`
if [ "$typemime" = "application/x-svg" ] || [ "$typemime" = "image/svg+xml" ] || [ "$typemime" = "image/svg+xml-compressed" ]; then
mime=${mime/\//-}
cp -f $icone $HOME/.local/share/icons/hicolor/scalable/mimetypes/$mime.svg
ln -sf ../../scalable/mimetypes/$mime.svg $HOME/.local/share/icons/hicolor/scalable/mimetypes/gnome-mime-$mime.svg
ln -sf ../../scalable/mimetypes/$mime.svg $HOME/.local/share/icons/hicolor/scalable/apps/$mime.svg
ln -sf ../../scalable/mimetypes/$mime.svg $HOME/.local/share/icons/hicolor/scalable/apps/gnome-mime-$mime.svg
list="16x16 24x24 32x32 40x40 48x48 128x128 256x256"
for d in $list ; do
mkdir -p $HOME/.local/share/icons/hicolor/$d/apps
mkdir -p $HOME/.local/share/icons/hicolor/$d/mimetypes
ln -sf ../../scalable/mimetypes/$mime.svg $HOME/.local/share/icons/hicolor/$d/apps/$mime.svg
ln -sf ../../scalable/mimetypes/$mime.svg $HOME/.local/share/icons/hicolor/$d/mimetypes/$mime.svg
ln -sf ../../scalable/mimetypes/$mime.svg $HOME/.local/share/icons/hicolor/$d/apps/gnome-mime-$mime.svg
ln -sf ../../scalable/mimetypes/$mime.svg $HOME/.local/share/icons/hicolor/$d/mimetypes/gnome-mime-$mime.svg
done
else
zenity --error --title="ERREUR" --text="Ce fichier n'est pas une image au format SVG.
Veuillez vérifier votre image ou en choisir une autre.
Son type MIME est : $typemime"
fi
fi
fi
exit
Ensuite il faudra créer dans "$HOME/.local/share/icons" un lien symbolique du nom de "gnome" pointant vers "$HOME/.local/share/icons/hicolor". Pour le moment le scripte ne le fait pas à cause des exceptions (le dossier gnome existe déjà) Je n'ai pas encore réfléchit à leur gestions.
Je pourrai donner des explications s'il le faut.
Le support d'Optimus pour Linux.
Ubuntu 18.04 64 bits, portable ASUS N53SN-SZ161V, Intel® Core™ i5-2410M @ 2.30GHz, 8080MB SODIM Ram, NVIDIA® GeForce™ GT 550M
Hors ligne
#13 Le 30/01/2011, à 20:15
- Tuxmouraille
Re : Associer une icône à un type de fichiers
Re,
Il peut être nécessaire de relancer nautilus si vous l'utilisez:
nautilus -q
Le support d'Optimus pour Linux.
Ubuntu 18.04 64 bits, portable ASUS N53SN-SZ161V, Intel® Core™ i5-2410M @ 2.30GHz, 8080MB SODIM Ram, NVIDIA® GeForce™ GT 550M
Hors ligne
#14 Le 11/03/2011, à 15:08
- Hibou57
Re : Associer une icône à un type de fichiers
Hop, réponses ici : [Info] Vous n'arrivez pas à associer une icône à un type MIME ?
Hajimemashteeeee… \(^o^)/ Tachikoma desu (^_^;)
Le saviez‑vous : le j’m’en foutisme est la cause de la plupart des fléaux du monde contemporain.
Mangez des standards : un grand bol de Standard tous les matins, et vous débutez la journée en pleine forme !
bulleforum.net — Forum de discussions, La Bulle (papotage de la vie courante ou choses trop sérieuses)
Hors ligne
Pages : 1