NautilusとNemoは、pythonファイルに2つの異なるアイコンを使用します。
ただし、すべてのpythonファイルに対してpythonアイコンを表示するようにします。
mimetypeは両方のファイルに同じ結果を与えます:
$ mimetype *.py
buy_test.py: text/x-python
candlestick_test.py: text/x-python
file -iは異なる出力を与えます:
$ 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
candlestick_test.pyの出力は間違っていますが、このファイルはpythonアイコンで表示されます。理由はわかりません。
ここで誰かが同じ問題を抱えていました: buntuファイルマネージャーは適切なアイコンを表示していません
しかし、彼が得た答えは私にはうまくいきません:
$ grep -r 'text/x-python' /usr/share/thumbnailers
出力なし。
これらのpythonファイルの主な違いはシバンだと思います:
$ head -n2 buy_test.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
$ head -n2 candlestick_test.py
# -*- coding: utf-8 -*-
"""
このシバン(python 2)を使用すると...
#!/usr/bin/env python
... pythonアイコンもあります。
NautilusとNemoはどのようにファイルアイコンを選択しますか?
編集:
いくつかの追加情報:
これらのシェバンのいずれかを使用する場合、pythonアイコンがあります。
#!/usr/bin/env python
#!/usr/bin/python
これらのシバンのいずれかを使用する場合、nopythonアイコンがあります。
#!/usr/bin/env python3
#!/usr/bin/python3
Python3が問題のようです。
編集2:
xdg-mime query filetype FILENAMEは、Shebangに一致するMIMEタイプを返します。
$ xdg-mime query filetype buy_test.py
text/x-python3
$ xdg-mime query filetype candlestick_test.py
text/x-python
そして、candlestick_test.pyのファイル拡張子を。py3に変更すると、[python]アイコンが消え、xdg-mime query filetypeがtext/x-python3を返します。
編集3:
新しい情報源を見つけました。
$ 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
だから、text-x-python3ファイルをtext-x-pythonアイコンはどういうわけか。
最後に修正できました!
私の知る限り、NemoとNautilusはtext-x-python3.svgという名前のファイルをからロードしようとします/ usr/share/icons/[MyTheme]/mimes/[ActualIconSize] /。 〜/ .local/share/icons/[MyTheme]/mimes/[ActualIconSize] /にそのようなファイルがある場合、より高い優先度があります。しかし、私のテーマにはこれらのディレクトリはありませんでした:Humanity-Dark。
そのため、Nemo/Nautilusは別のテーマでそのアイコンを見つけようとします。 / usr/share/icons/Humanity-Dark/index.themeで、次に試すテーマを定義します。
$ grep Inherits /usr/share/icons/Humanity-Dark/index.theme
Inherits=Humanity,Adwaita,hicolor
次の試行はHumanityです。 text-x-pythonにはアイコンがありますが、text-x-python3にはありません。だから私はやった:
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
アイコンサイズ16および22でも同じです。
たぶん、この解決策は他の誰かに役立つでしょう。