web-dev-qa-db-ja.com

ホームディレクトリにmimetypeアイコンを追加する方法は?

MIMEタイプについて

Mimetypeを作成し、そのアイコンを追加したいです。 mimetypeはTo-doリスト用で、TODOパターンと一致し、タイプはtext/todoです。

TODOという名前のファイルを作成すると、mimetype text/todoであることがわかります。

アイコンを追加しようとします

  1. したがって、SVGファイルを~/.local/share/icons/hicolor/48x48/mimetypes/text-todo.svgにリンクし、そのようなファイルがmimetypeのアイコンとして使用されることを期待しています。しかし、そうではありません。

  2. Sudo update-icon-caches ~/.local/share/icons/hicolorを実行します。これは静かに実行されますが、何も変更しません。

  3. 次にSudo gtk-update-icon-cache ~/.local/share/icons/hicolorを実行しますが、次のメッセージが表示されます。

gtk-update-icon-cache:テーマインデックスファイルがありません。

または

gtk-update-icon-cache:生成されたキャッシュは無効でした。

Sudo gtk-update-icon-cache -tf ~/.local/share/icons/hicolorを実行すると。これも、ご想像のとおり、何も変わりません。

したがって、ホームディレクトリにmimetypeのアイコンを追加するにはどうすればよいですか

3
Severo Raz

私はこれを正しくするためにかなり長い時間を費やしてきましたが、ついにできました。

MIMEタイプの作成

まず、mimetypeファイルを作成し、ローカル~/.local/share/mime/packages/ディレクトリに保存する必要があります。ファイルは、次のような構造を持つことができます。

<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="text/todo">
      <comment>To-do list</comment>
      <glob case-sensitive="true" pattern="TODO" />
      <glob case-sensitive="true" pattern="TODO *"/>
    </mime-type>
</mime-info>

mime-type要素タグのtypeなどのフィールドが目的のmimetypeに一致し、glob要素タグにpattern属性の値がパターンに一致することを確認してくださいご希望のMIMEタイプ。ご覧のとおり、MIMEタイプは複数のglob要素を介して複数のファイル名パターンをカバーできます。

My[〜#〜] todo [〜#〜]mimetypeの場合、大文字と小文字を区別するパターンが必要だったため、 case-sensitive="true"属性と値のペア。大文字と小文字を区別する必要がない場合、この属性と値のペアは不要です。

Mimetypeファイルが完成したら、todo.xmlなどの便利な名前で保存します。 (注: XML拡張が重要な場合があります。)

ここでコマンドupdate-mime-database ~/.local/share/mime/を実行すると、これで完了です。このコマンドは、~/.local/share/mimeの下の正しいカテゴリディレクトリにmimetypeを配置します。

テスト中

~/.local/share/mime/globファイルを読み取り、次のようなコマンドで特定のファイルをテストすることにより、MIMEタイプが正しく解析されたかどうかをテストできます。

  • mimetype FILENAME
  • xdg-mime query filetype FILENAME

これらは、MIMEデータベースを更新した後にのみ機能します。

アイコンを追加する

多くのLinuxディストリビューションでは、サードパーティ/アドオンのアイコンは「hicolor」アイコンテーマの下にファイルされています。これは、他のアイコンテーマが依存するフォールバックアイコンテーマです。

~/.local/share/icons/hicolor/の下の正しいディレクトリに(有効なサブディレクトリをリストする/usr/share/icons/hicolor/index.theme記述子ファイルに従って)アイコンを追加し、update-icon-caches ~/.local/share/icons/hicolorを実行すると、すべて設定できます!

デスクトップマネージャーでは、新しいMIMEタイプを新しいアイコンに関連付けるために再起動が必要になる場合があります。

トラブルシューティング

ファイルに設定したmimetype/iconが取得されない場合は、mimetype XMLファイルのパターンをよく確認してください。明らかなパターンをテストすると、これを確認するのに役立つ場合があります。

2
Severo Raz

私が見つけることができるすべてのメソッドをテストします(多くのディレクトリをテストします)。システムバージョンは16.04です。

Mimetypeはfreecad docでは問題ないため、アイコンのみを設定します。

  1. application/x-extension-fcstd:などのMIMEタイプ名が見つかりました

    ▶mimetype '/ home/eexp /文档/freecad/cigar1.fcstd'/home/eexp /文档/freecad/cigar1.fcstd:application/x-extension-fcstd

  2. ここに適切なsvgファイルとcpを見つけました/ usr/share/icons/hicolor/scalable/mimetypes、ファイル名はapplication-x-extension-fcstdでなければなりませんmimetype名のように:

    ▶Sudo cp〜/ FreeCAD-logo.svg /usr/share/icons/hicolor/scalable/mimetypes/application-x-extension-fcstd.svg

  3. -fでアイコンキャッシュを更新します(ここにはindex.themeファイルがあります):

    ▶sudo gtk-update-icon-cache/usr/share/icons/hicolor/-f

  4. nautilusファイルの変更アイコン即時

0
utopic eexpress