Nautilus et Nemo utilisent deux icônes différentes pour les fichiers python:
Mais je veux qu’ils affichent l’icône python pour tous les fichiers python.
mimetype donne le même résultat pour les deux fichiers:
$ mimetype *.py
buy_test.py: text/x-python
candlestick_test.py: text/x-python
Le fichier -i donne différents résultats:
$ file -i buy_test.py
buy_test.py: text/x-python; charset=us-ascii
$ file -i candlestick_test.py
candlestick_test.py: text/x-objective-c; charset=us-ascii
Le résultat pour candlestick_test.py est incorrect, mais ce fichier est affiché avec l'icône python. Aucune idée pourquoi.
Quelqu'un ici a le même problème: Le gestionnaire de fichiers Ubuntu n’affiche pas les icônes appropriées
Mais la réponse qu'il a obtenue ne fonctionne pas pour moi:
$ grep -r 'text/x-python' /usr/share/thumbnailers
Pas de sortie.
Je pense que la différence principale entre ces fichiers python est le Shebang:
$ head -n2 buy_test.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
$ head -n2 candlestick_test.py
# -*- coding: utf-8 -*-
"""
Quand j'utilise ce Shebang (python 2) ...
#!/usr/bin/env python
... il y a aussi une icône python.
Comment Nautilus et Nemo choisissent-ils les icônes de fichier?
MODIFIER:
Quelques informations supplémentaires:
Il y a une icône python si j'utilise l'un de ces shebangs:
#!/usr/bin/env python
#!/usr/bin/python
Il n'y a aucune icône python si j'utilise l'un de ces shebangs:
#!/usr/bin/env python3
#!/usr/bin/python3
Il semble donc que python3 pose un problème.
EDIT 2:
Le type de filet de la requête xdg-mime FILENAME renvoie le type MIME correspondant au Shebang:
$ xdg-mime query filetype buy_test.py
text/x-python3
$ xdg-mime query filetype candlestick_test.py
text/x-python
Et quand je change l'extension de fichier de de candlestick_test.py en . Py3 , l'icône python disparaît et le type de filet de la requête xdg-mime renvoie text/x-python3 .
EDIT 3:
J'ai trouvé une nouvelle source d'information:
$ gio info ~/python/buy_test.py | grep icon
standard::icon: text-x-python3, text-x-generic
standard::symbolic-icon: text-x-python3-symbolic, text-x-generic-symbolic, text-x-python3, text-x-generic
$ gio info ~/python/candlestick_test.py | grep icon
standard::icon: text-x-python, text-x-generic
standard::symbolic-icon: text-x-python-symbolic, text-x-generic-symbolic, text-x-python, text-x-generic
Je suppose donc que je dois lier les fichiers texte-x-python3 à texte-x-python des icônes en quelque sorte.
Enfin je pourrais le réparer!
Autant que je sache, Nemo et Nautilus essaient de charger un fichier nommé text-x-python3.svg à partir de ./usr/share/icons/[MyTheme]/mimes/[ActualIconSize]/. S'il existe un tel fichier dans ~/.local/share/icons/[MyTheme]/mimes/[ActualIconSize]/, il a une priorité plus élevée. Mais aucun de ces répertoires n'existait pour mon thème: Humanity-Dark .
Nemo/Nautilus essaie donc de trouver cette icône dans un autre thème. Dans /usr/share/icons/Humanity-Dark/index.theme est défini le thème à essayer ensuite:
$ grep Inherits /usr/share/icons/Humanity-Dark/index.theme
Inherits=Humanity,Adwaita,hicolor
L'essai suivant est l'humanité . Il existe des icônes pour text-x-python mais pas pour text-x-python3 . Alors j'ai fait:
mkdir -p ~/.local/share/icons/Humanity-Dark/mimes/48
cp /usr/share/icons/Humanity/mimes/48/text-x-python.svg ~/.local/share/icons/Humanity-Dark/mimes/48/text-x-python3.svg
Idem pour les tailles d'icône 16 et 22. Maintenant, il se présente comme prévu:
Peut-être que cette solution est utile pour quelqu'un d'autre.