xdg-utils - Arch Linux 中文维基

跳至內容

# xdg-utils

出自 Arch Linux 中文维基

翻譯狀態：

- 本文（或部分內容）譯自 xdg-utils，最近一次同步於 2024-11-16，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

xdg-utils 提供了官方工具，用於管理 XDG MIME 應用程式。

- xdg-desktop-menu(1) - 安裝桌面菜單項
- xdg-desktop-icon(1) - 將桌面項複製到用戶的桌面
- xdg-email(1) - 在用戶首選的郵件客戶端中編寫新電子郵件，可能會預填入主題和其他信息
- xdg-icon-resource(1) - 安裝圖標資源
- xdg-mime(1) - 查詢和安裝 MIME 類型和關聯
- xdg-open(1) - 在用戶首選應用程式中打開文件或 URI
- xdg-screensaver(1) - 啟用、禁用或暫停屏幕保護程序
- xdg-settings(1) - 獲取或設置默認的 Web 瀏覽器和 URL 處理程序

## 安裝

安裝 xdg-utils包 包。

## 使用

### 環境變量

注意：正常運行的桌面環境應該會自動設置這些變量。本節僅在理解 xdg-utils 的工作原理時需要，即用於故障排除。

xdg-utils 嘗試通過調用其提供的專用程序來與您的桌面環境集成，在適用的情況下。當前環境的評估如下[1]：

- 如果設置了標準化的 XDG_CURRENT_DESKTOP 環境變量，並且該值屬於已識別的桌面環境，則使用相應的值。
- 如果存在任何經典回退或特定環境變量，例如 KDE 的 `KDE_FULL_SESSION`，則使用相應的值。
- 如果設置了遺留的 DESKTOP_SESSION 環境變量，並且該值屬於已識別的桌面環境，則使用相應的值。

在此過程中，如果找到任何匹配項，則 DE 變量會被內部覆蓋為檢測到的桌面環境的標準化值。因此，`DE` 既是一個遺留的環境變量，也是 xdg-utils 的內部狀態變量。例如，如果 `XDG_CURRENT_DESKTOP` 是 `KDE`，xdg-utils 會將 `DE` 設置為 `kde`。如果沒有找到匹配項，則會使用任何已存在的 `DE` 值， 這樣 `XDG_CURRENT_DESKTOP=KDE` 就等於 `XDG_CURRENT_DESKTOP` 未設置並且 `DE=kde`。此實現細節值得注意，因為它導致如果桌面環境已被檢測到，預設的 `DE` 會被忽略。

xdg-utils 識別的環境變量值如下：

桌面環境 | `XDG_CURRENT_DESKTOP` | `DE` | `DESKTOP_SESSION`
--- | --- | --- | ---
– | `X-Generic`1 | `generic` | –
Cinnamon | `Cinnamon`, `X-Cinnamon` | `cinnamon` | –
Deepin | `Deepin`, `DEEPIN`, `deepin`1 | `deepin` | –
Enlightenment | `ENLIGHTENMENT`1 | `enlightenment` | –
GNOME | `GNOME`2 | `gnome` | `gnome`
GNOME Flashback | `GNOME-Flashback`, `GNOME-Flashback:GNOME`2 | `gnome` | `gnome`
KDE Plasma | `KDE` | `kde` | –
LXDE | `LXDE` | `lxde` | `LXDE`
LXQt | `LXQt` | `lxqt` | –
MATE | `MATE` | `mate` | `mate`
Xfce | `XFCE` | `xfce` | `xfce`, `xfce4`, `Xfce Session`

1. 這不是一個已在 freedesktop.org 上註冊的環境。
2. GNOME 變體，包括 GNOME Classic 模式，都被 xdg-utils 視為相同的。

請注意，這僅僅是 xdg-utils 提供的腳本能夠檢測的列表。腳本仍會在以下條件下執行通用的、與環境無關的操作：

- 請求了通用例程，使用 `XDG_CURRENT_DESKTOP=X-Generic` 或 `DE=generic`。
- 環境檢測失敗。所有相關的環境變量都無法識別或未設置，而經典回退也沒有揭示任何信息。
- 執行了特定環境的操作，但失敗了，例如由於缺少程序。

### xdg-mime

xdg-mime(1) 是一個用於直接查詢和修改默認 MIME 應用程式的腳本。它在其他腳本中使用，例如 xdg-open，並且還是一個有用的故障排除工具。

確定文件的 MIME 類型：

    $ xdg-mime query filetype photo.jpeg
    image/jpeg

確定 MIME 類型的默認應用程式：

    $ xdg-mime query default image/jpeg
    gimp.desktop

更改 MIME 類型的默認應用程式：

    $ xdg-mime default feh.desktop image/jpeg

將文件管理器設置為默認文件管理器（例如 -Thunar）：

    $ xdg-mime default thunar.desktop inode/directory

調試 MIME 類型的默認應用程式：

    $ env XDG_UTILS_DEBUG_LEVEL=10  xdg-mime query default text/html
    Checking /home/user/.config/mimeapps.list
    Checking /home/user/.local/share/applications/defaults.list and /home/user/.local/share/applications/mimeinfo.cache
    Checking /usr/local/share/applications/defaults.list and /usr/local/share/applications/mimeinfo.cache
    Checking /usr/share/applications/defaults.list and /usr/share/applications/mimeinfo.cache
    qutebrowser.desktop

當需要確定文件的 MIME 類型時，xdg-mime 會嘗試使用適合桌面環境的程序：

桌面環境 | 程序 | 包
--- | --- | ---
Cinnamon | `gio` | glib2包
GNOME
GNOME Flashback
LXDE
MATE
Xfce
Deepin | – | –
Enlightenment
LXQt
KDE Plasma | `kmimetypefinder` | kde-cli-tools包

在通用情況下，xdg-mime 將：

- 如果存在，委託給 mimetype。需要安裝 perl-file-mimeinfo包 包。
- 如果存在，委託給 file包。

### xdg-open

xdg-open(1) 是一個資源打開器，被許多應用程式使用，遵循 XDG MIME 應用程式標準，並儘可能與系統的桌面環境集成。

如果檢測到桌面環境，將調用其提供的處理程序 [2]:

桌面環境 | 程序 | 包
--- | --- | ---
Cinnamon | `gio` | glib2包
GNOME
GNOME Flashback
MATE
Deepin | `dde-open` | deepin-api包
Enlightenment | `enlightenment_open` | enlightenment包
KDE Plasma | `kde-open`1 | kde-cli-tools包
LXDE | `pcmanfm` | pcmanfm包
LXQt | – | –
Xfce | `exo-open`2 | exo包

1. 如果 `KDE_SESSION_VERSION` 未設置，則會使用 `kfmclient` 來自 konqueror包。不過，KDE Plasma 應該始終設置此變量。
2. 還會嘗試使用來自 glib2包 的 `gio`。

在通用情況下，xdg-open 將：

- 查詢 #xdg-mime 以獲取與資源關聯的默認桌面條目，解析桌面條目，並執行其命令。
- 如果存在，委託給 run-mailcap。需要安裝 run-mailcapAUR 包。
- 如果存在，委託給 mimeopen。需要安裝 perl-file-mimeinfo包 包。

提示：要查看 xdg-open 將使用哪個後端，請設置 `XDG_UTILS_DEBUG_LEVEL=3`。

由於 xdg-mime 依賴於 perl-file-mimeinfo包 包來實現 XDG MIME 應用程式標準，如果您沒有使用桌面環境，應該安裝 perl-file-mimeinfo包，或考慮使用其他資源打開器。

### xdg-settings

請參見 xdg-settings(1)。

設置所有 Web MIME 類型使用單個應用程式的快捷方式：

    $ xdg-settings set default-web-browser firefox.desktop

設置 URL 方案的默認應用程式的快捷方式：

    $ xdg-settings set default-url-scheme-handler irc xchat.desktop

## 提示與技巧

### URL 方案處理程序

要設置 URL 方案的默認應用程式，您可能還需要更改 `x-scheme-handler/*` MIME 類型的默認應用程式：

    $ xdg-mime default firefox.desktop x-scheme-handler/https x-scheme-handler/http

分類：​

- Freedesktop.org

xdg-utils
新增話題