跳至內容

xdg-utils

出自 Arch Linux 中文维基

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

安裝

安裝 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-Generic1 generic –
Cinnamon Cinnamon, X-Cinnamon cinnamon –
Deepin Deepin, DEEPIN, deepin1 deepin –
Enlightenment ENLIGHTENMENT1 enlightenment –
GNOME GNOME2 gnome gnome
GNOME Flashback GNOME-Flashback, GNOME-Flashback:GNOME2 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 將:

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-open1 kde-cli-tools包
LXDE pcmanfm pcmanfm包
LXQt – –
Xfce exo-open2 exo包
  1. 如果 KDE_SESSION_VERSION 未設置,則會使用 kfmclient 來自 konqueror包。不過,KDE Plasma 應該始終設置此變量。
  2. 還會嘗試使用來自 glib2包 的 gio。

在通用情況下,xdg-open 將:

提示:要查看 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