xdg-open
関連記事
xdg-open はユーザーのデフォルトアプリケーションを設定するデスクトップ非依存のツールです。多くのアプリケーションは内部的に xdg-open
コマンドを実行しています。
デスクトップ環境 (例: GNOME, KDE, Xfce) の中では、xdg-open は引数をデスクトップ環境のファイルオープンアプリケーション (それぞれ gvfs-open, kde-open, exo-open) に渡しているだけで、関連付けはデスクトップ環境に委ねられています。デスクトップ環境が検出されなかったときに (例えば Openbox などのスタンドアロンなウィンドウマネージャを使用している時)、xdg-open は固有の設定ファイルを使用します。
目次
インストール
xdg-open は公式リポジトリに入っている xdg-utils パッケージに含まれています。デスクトップセッションの中だけで使用し、root では実行しないで下さい。
デスクトップ環境を使わずに xdg-open を実行する場合は、より高速な代替アプリケーションとして AUR から perl-file-mimeinfo, xdg-utils-mimeoAUR, mimeoAUR などもインストールすることを推奨します。
設定
xdg-open はデフォルトアプリケーションで説明されている設定ファイルを使います。xdg-mime を使うことでこのファイルを編集できます。
サンプル
mime タイプを取得
photo.jpg
の mime タイプを取得するには:
$ xdg-mime query filetype photo.jpg
photo.jpg image/jpeg
デフォルトのアプリケーションを取得
image/jpeg
mime タイプのデフォルトで起動する .desktop ファイルを取得するには:
$ xdg-mime query default image/jpeg
gpicview.desktop;
デフォルトのファイルブラウザを設定
Thunar をデフォルトのファイルブラウザにするには (フォルダを開くときのデフォルトアプリケーションを設定するには):
$ xdg-mime default Thunar.desktop inode/directory
デフォルトの PDF ビューアを設定
xpdfAUR をデフォルトの PDF ビューアとして使うには:
$ xdg-mime default xpdf.desktop application/pdf
デフォルトのブラウザを設定
http(s)://
リンクのデフォルトアプリケーションを設定するには:
$ xdg-mime default browser.desktop x-scheme-handler/http $ xdg-mime default browser.desktop x-scheme-handler/https
.html
ファイルのデフォルトアプリケーションを設定するには:
$ xdg-mime default browser.desktop text/html
もしくは、次を実行:
$ xdg-settings set default-web-browser browser.desktop
設定が適用されたかどうかテストするには、以下のように xdg-open で URL を開いてみて下さい:
$ xdg-open https://archlinux.org
代替アプリケーションと便利なツール
xdg-open の代替
名前/パッケージ | 説明 | 依存 | 設定ファイル |
---|---|---|---|
busking-gitAUR | シンプルな、正規表現ベースの xdg-open 代替。 | perl-file-mimeinfo | カスタム |
exproAUR | オブジェクト名や MIME タイプに正規表現をマッチさせて関連付けられたアプリケーションでオブジェクトを開く。 | file (ただし代替を選択可能) | カスタム |
linopenAUR | スマートで xdg-open よりかはマシな代替。 | file | カスタム |
mimeoAUR | 正規表現を使って MIME タイプやファイル名でファイルを開く。そのまま使うことも xdg-utils-mimeoAUR を通すことも可能。 | file | 通常は mimeapps.list または defaults.list 。カスタムは任意
|
mimi-gitAUR | ちゃんと使える xdg-open の代替。 | file | カスタム |
ayrAUR | アプリケーションランチャーのメニューや実行可能ファイル、デスクトップファイルを管理。また、名前や MIME タイプで関連付けられたランチャー、デスクトップファイル、アプリケーションを使ってファイルや URI を開きます。xdg-open を置き換えるラッパースクリプトとして使えます。 | file や perl-file-mimeinfo。代替やフォールバックも設定可能。 | XDG 標準の mimeapps.list と mimeinfo.cache (もしくは古い defaults.list ) で MIME タイプの関連付けを判断します。任意で正規表現を使ってファイルや URI 名をアプリケーションにマッチさせることもできます。
|
sx-open | bash によるとてもシンプルな xdg-open 代替。 | file と bash 正規表現 | カスタム |
run-mailcap
mutt メールプログラムで使われている .mailcap ファイルフォーマットは読み書きが簡単です。AUR の run-mailcapAUR パッケージは簡単に /usr/bin/xdg-open
にシンボリックリンクを作成できる実行可能ファイルを提供していますが、パーサーはディレクトリやリンクを扱うことはできません。AUR から mimeo もインストールして以下の内容で /usr/bin/xdg-open
を作成するのが一番簡単です:
#!/bin/sh run-mailcap $1 || mimeo $1
アプリケーションと URL や フォルダ、通常の mime タイプでの .mailcap ファイルの関連付けは ~/.local/share/applications/
の defaults.list
を使用します。
mimetype
perl-file-mimeinfo パッケージの mimetype はファイルの mime タイプに関連する情報を表示することができます。
例えば:
$ mimetype file.ext
上のコマンドはファイルの mime タイプを返します。
$ mimetype -d file.extension
上のコマンドは mime タイプの説明を返します。
xdg-open がデスクトップ環境を検出できなかった場合、通常は file -i
の使用にフォールバックして、ファイルの中身だけを使って mime タイプを判断します。結果としてファイルタイプによっては正しく検出されないことがあります。mimetype を使えるようにしておけば、xdg-open は代わりに mimetype を使うので、共有 mime 情報データベースの情報が使用され、より良い検出結果を得ることができます。
環境変数
BROWSER
, DE
, DESKTOP_SESSION
などの環境変数はデフォルトの xdg-open の挙動を変更します。詳しくは環境変数を見て下さい。