Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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.. smile

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

roger64 a écrit :

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... roll

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

abelthorne a écrit :

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.  tongue

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. roll

1290777227.png

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..

1292244772.png

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


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