xdg-open

提供: ArchWiki
2020年9月7日 (月) 15:13時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (del Category:デスクトップ環境)
ナビゲーションに移動 検索に移動

関連記事

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 ビューアを設定

xpdf をデフォルトの 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[リンク切れ: アーカイブ: aur-mirror] オブジェクト名や 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 を置き換えるラッパースクリプトとして使えます。 fileperl-file-mimeinfo。代替やフォールバックも設定可能。 XDG 標準の mimeapps.listmimeinfo.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 の挙動を変更します。詳しくは環境変数を見て下さい。