Nautilusはファイルタイプの説明をどこから取得しますか

Nautilusはファイルタイプの説明をどこから取得しますか

私はカスタムファイルタイプ用の共有MIME情報ファイルをいくつか作成して登録しました。例えば、

~/.local/share/mime/packages

次のようなファイルを追加しました

x-myokit.xml

MIMEタイプの説明を含む、例えば

<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
  <mime-type type="text/x-myokit">
    <comment xml:lang="en">Myokit model definition</comment>
    <glob pattern="*.mmt"/>
  </mime-type>
</mime-info>

Nautilus はファイルを認識しますが、ファイルの種類はまだ「不明」と表示されます。この列にもっと役立つものを表示させるにはどうすればよいですか?

答え1

これはNautilus開発者の決定によりハードコードされたものです基本的なタイプ情報のみを表示する列にはTypeデフォルトで、タイプ別にソートするとタイプファミリーがグループ化されます。
基本タイプはnautilus ファイル.c一般的な(象徴的な)アイコン名に基づく1 :

struct {
        const char *icon_name;
        const char *display_name;
} mime_type_map[] = {
    { "application-x-executable", N_("Program") },
    { "audio-x-generic", N_("Audio") },
    { "font-x-generic", N_("Font") },
    { "image-x-generic", N_("Image") },
    { "package-x-generic", N_("Archive") },
    { "text-html", N_("Markup") },
    { "text-x-generic", N_("Text") },
    { "text-x-generic-template", N_("Text") },
    { "text-x-script", N_("Program") },
    { "video-x-generic", N_("Video") },
    { "x-office-address-book", N_("Contacts") },
    { "x-office-calendar", N_("Calendar") },
    { "x-office-document", N_("Document") },
    { "x-office-presentation", N_("Presentation") },
    { "x-office-spreadsheet", N_("Spreadsheet") },
};

上記のカテゴリに該当しないタイプは次のように表示されますUnknown

if (basic_type == NULL) {
    basic_type = g_strdup (_("Unknown"));

その結果、MIME タイプapplication/x-myokit(対応するシンボリック アイコン名 付き) のファイルは列にapplication-x-genericとしてリストされ、MIME タイプ(対応するシンボリック アイコン名 付き) のファイルは 列にとしてリストされます(の下にあるファイルや内のファイルなどのさまざまなシステム ファイルも参照してください。これらはすべて としてリストされますが、そのうちの 1 つを選択して+を押すと、詳細で正確な情報が表示されます)。UnknownTypetext/x-myokittext-x-genericTextType*.so/usr/lib*.mo/usr/share/localeUnknownAltEnter


generic-icon nameファイルで を使用すると、Nautilus に別のものをリストさせることができますxml。ただし、オプションは上記のカテゴリに限定されます。したがって、たとえば、各ファイルを列に*.mmtリストしたい場合は、次のように編集します。ProgramTypex-myokit.xml

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
    <mime-type type="application/x-myokit">
        <comment>Myokit model definition</comment>
        <generic-icon name="text-x-script"/>
        <glob pattern="*.mmt"/>
    </mime-type>
</mime-info>

以下のコマンドで MIME データベースを更新することを忘れないでください。

update-mime-database ~/.local/share/mime

さらに役立つ情報が必要な場合は、設定MIME typeで列を有効化/チェックすることができますNautilus(またはdconf/ gsettings: を追加mime_type) org.gnome.nautilus.list-view default-visible-columns

1:gio info -a standard::symbolic-icon file対応するシンボリックアイコン名を確認するために実行します(古い設定ではgio infoに置き換えますgvfs-info

答え2

Nautilusは場所からファイルの説明を取得すると思います/usr/share/applications。私の他の回答からより有用な情報を見つけることができます。ここ。 特に、これAsk Ubuntu の回答では、ファイルの関連付けがどのように保存されるかが詳しく説明されています。

ファイル マネージャー (デフォルトでは Nautilus) は、ファイルの MIME タイプを使用して、どのプログラムでファイルを開くかを決定します。アプリケーションがインストールされると、 に配置されている .desktop ファイルで、開くことができる MIME タイプとファイルを開くために使用するコマンドを指定できます。/usr/share/applicationsこれは、メニュー、デスクトップ ショートカットなどに使用されるファイルです。

関連情報