xdg-utils
xdg-utils は XDG MIME Applications を管理するための公式のユーティリティを提供しています。
- 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) - デフォルトのウェブブラウザや URL ハンドラを設定、取得する
インストール
使い方
環境変数
xdg-utils は、該当する場合、提供される特殊なプログラムを呼び出すことにより、デスクトップ環境 との統合を試みます。現在の環境の評価は次のとおりです [1]:
- 標準化された XDG_CURRENT_DESKTOP 環境変数が認識されたデスクトップ環境に設定されている場合、対応する値が使用されます。
- KDE の
KDE_FULL_SESSION
のような古典的なフォールバックや環境固有の変数が存在する場合、対応する値が使用されます。 - レガシーな DESKTOP_SESSION 環境変数が、認識されているデスクトップ環境に設定されている場合、対応する値が使われます。
このプロセスの間、一致するものがあれば、DE 変数は検出されたデスクトップ環境の正規化された値で内部的に上書きされます。したがって、DE
はレガシー環境変数であり、xdg-utils の内部状態変数でもあります。例として、XDG_CURRENT_DESKTOP
が KDE
の場合、xdg-utils は内部的に DE
を kde
に設定します。一致するものが見つからない場合、既存の XDG_CURRENT_DESKTOP=KDE
の値が使用され、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
|
- これは freedesktop.org に登録された環境ではありません。
- GNOME Classic モードを含む GNOME のバリエーションは、xdg-utils によってすべて同じものとみなされます。
これは、xdg-utils によって提供されるスクリプトが 検出 できるもののリストにすぎないことに注意してください。スクリプトは、次の条件下でも、環境に依存しない一般的なアクションを実行します:
- 汎用ルーチンが
XDG_CURRENT_DESKTOP=X-Generic
またはDE=generic
で要求された。 - 環境検出に失敗。関連する環境変数はすべて認識されないか未設定で、古典的なフォールバックでは何もわからなかった。
- 環境固有のアクションは実行されましたが、プログラムが見つからないなどの理由で失敗しました。
xdg-mime
xdg-mime(1) を参照してください。
ファイルの 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
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 は、 XDG MIME Applications を実装しており多くのプログラムで利用されている リソースオープナー です。使い方は xdg-open(1) を参照して下さい。
xdg-open は、それぞれのデスクトップ環境のネイティブのデフォルトアプリケーションツールを使うようになっており、デスクトップ環境からは独立したツールになっています。
デスクトップ環境が検出されなかった場合は、MIME タイプの検出は XDG 標準では実装されていない file を使うようになります。XDG MIME Applications をデスクトップ環境以外で xdg-open を使いたい場合は、 perl-file-mimeinfo やこれをサポートする リソースオープナー をインストールする必要があります。
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 |
- もし
KDE_SESSION_VERSION
が設定されていない場合、konqueror のkfmclient
が代わりに使われます。KDE Plasma はどのような状況でもこの変数を設定する必要があります。 - glib2 の
gio
も試されます。
一般的なケースでは、xdg-open は次のようになります。
- リソースに関連付けられたデフォルトのデスクトップエントリを xdg-mime に問い合わせ、デスクトップエントリを解析し、そのコマンドを実行する。
- もし存在すれば、run-mailcap に委譲します。run-mailcapAUR パッケージが インストール されている必要があります。
- もし存在すれば、mimeopen に委譲します。perl-file-mimeinfo パッケージが インストール されている必要があります。
xdg-mime は XDG MIME Applications 標準を実装するために perl-file-mimeinfo パッケージに依存しているため、デスクトップ環境を使用していない場合は、perl-file-mimeinfo、を インストール または別の リソースオープナー を検討してください。
xdg-settings
xdg-settings(1) を参照して下さい。
全てのウェブ MIME タイプを1つのアプリケーションで開くように設定するには:
$ 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