Nautilus 從哪裡取得其檔案類型描述

Nautilus 從哪裡取得其檔案類型描述

我已經為自訂文件類型創建並註冊了一些共享 mime-info 文件。例如,在

~/.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 類型的文件(具有相應的符號圖示名稱)將在 列中列出,而具有 mime 類型的文件application/x-myokit(具有相應的符號圖示名稱)將在 列中列出(另請參閱各種系統文件,例如文件下或文件中- 它們都被列為,但如果您選擇其中之一併點擊+,您將獲得詳細、準確的信息)。application-x-genericUnknownTypetext/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 typeNautilus(或使用dconf/ gsettings:新增mime_typeorg.gnome.nautilus.list-view default-visible-columns)。

1:運行gio info -a standard::symbolic-icon file以查看相應的符號圖示名稱(在舊設定上替換gio infogvfs-info

答案2

我相信 Nautilus 從 location 獲取文件描述/usr/share/applications。你可以從我的另一個回答中找到更多有用的信息這裡。特別,Ask Ubuntu 中的答案詳細討論了檔案關聯是如何儲存的。

檔案管理器(預設為 Nautilus)使用檔案的 MIME 類型來決定使用哪個程式開啟該檔案。安裝應用程式時,它可以指定可以開啟的 MIME 類型以及用於開啟 .desktop 檔案(位於 .desktop)中的檔案的命令/usr/share/applications。這是用於選單、桌面捷徑等的檔案。

相關內容