「デフォルトアプリケーション」の版間の差分
(同期) |
(→リソースオープナー: 同期) |
||
39行目: | 39行目: | ||
|- |
|- |
||
|[[xdg-open]] || [[xdg-utils]] || {{Yes}} || {{No}} || {{Yes}} |
|[[xdg-open]] || [[xdg-utils]] || {{Yes}} || {{No}} || {{Yes}} |
||
+ | |- |
||
+ | |{{man|1|gio}} || {{pkg|glib2}} || {{Yes}} || {{-}} || {{Yes}} |
||
|- |
|- |
||
|{{man|1p|mimeopen}} || {{Pkg|perl-file-mimeinfo}} || {{Yes}} || {{No}} || {{No}} |
|{{man|1p|mimeopen}} || {{Pkg|perl-file-mimeinfo}} || {{Yes}} || {{No}} || {{No}} |
||
44行目: | 46行目: | ||
|mimeo || {{AUR|mimeo}} || {{Yes}} || {{Yes}} || {{Yes}} |
|mimeo || {{AUR|mimeo}} || {{Yes}} || {{Yes}} || {{Yes}} |
||
|- |
|- |
||
− | | |
+ | |mimi || {{AUR|mimi}}, {{AUR|mimi-git}} || {{No}} || {{No}} || {{Y|部分的に}} |
− | |- |
||
− | |linopen || {{AUR|linopen}} || {{No}} || {{Yes}} || {{Yes}} |
||
− | |- |
||
− | |mimi || {{AUR|mimi-git}} || {{No}} || {{No}} || {{Y|partly}} |
||
|- |
|- |
||
|busking || {{AUR|busking-git}} || {{No}} || {{Yes}} || {{Yes}} |
|busking || {{AUR|busking-git}} || {{No}} || {{Yes}} || {{Yes}} |
||
− | |- |
||
− | |sx-open || {{AUR|sx-open}} || {{No}} || {{Yes}} || {{Yes}} |
||
|- |
|- |
||
|{{man|1|rifle}} || [[ranger]] || {{No}} || {{Yes}} || {{No}} |
|{{man|1|rifle}} || [[ranger]] || {{No}} || {{Yes}} || {{No}} |
||
|- |
|- |
||
− | |handlr || {{ |
+ | |handlr || {{pkg|handlr-regex}} || {{Yes}} || {{Yes}} || {{Yes}} |
+ | |- |
||
+ | |clifm || {{AUR|clifm}} || {{No}} || {{Yes}} || {{Y|部分的に}} |
||
+ | |- |
||
+ | |mimejs-git || {{AUR|mimejs-git}} || {{No}} || {{No}} || {{Yes}} |
||
|} |
|} |
||
88行目: | 88行目: | ||
最も重要なことは、[[xdg-utils]] プログラムが[[デスクトップ環境]]を検出しない場合、MIME タイプ検出のために {{ic|mimetype}} の代わりに {{ic|file}} を実際に呼び出すことです。{{ic|file}} は XDG 標準に準拠していないため、これは重要なことです。 |
最も重要なことは、[[xdg-utils]] プログラムが[[デスクトップ環境]]を検出しない場合、MIME タイプ検出のために {{ic|mimetype}} の代わりに {{ic|file}} を実際に呼び出すことです。{{ic|file}} は XDG 標準に準拠していないため、これは重要なことです。 |
||
− | {{Note|0.28-1 以前の {{pkg|perl-file-mimeinfo}} は XDG 標準に''完全に''従っていたわけではありません。例えば、[https://github.com/mbeijen/File-MimeInfo/issues/20 |
+ | {{Note|0.28-1 以前の {{pkg|perl-file-mimeinfo}} は XDG 標準に''完全に''従っていたわけではありません。例えば、[https://github.com/mbeijen/File-MimeInfo/issues/20 ディストリビューション全体のデフォルト] を読み込まなかったり、[https://github.com/mbeijen/File-MimeInfo/issues/8 非推奨の場所] に設定を保存していました。}} |
=== mimeo === |
=== mimeo === |
||
{{aur|mimeo}} は {{ic|xdg-open}} と {{ic|xdg-mime}} の機能を統合したツール {{ic|mimeo}} を提供します。 |
{{aur|mimeo}} は {{ic|xdg-open}} と {{ic|xdg-mime}} の機能を統合したツール {{ic|mimeo}} を提供します。 |
||
+ | |||
+ | 次の例では、SVG ファイルを Inkscape に関連付ける方法を示します: |
||
# determine a file's MIME type |
# determine a file's MIME type |
||
− | $ mimeo - |
+ | $ mimeo --mimetype Svg_example2.svg |
+ | Svg_example2.svg |
||
− | photo.jpeg |
||
− | + | image/svg+xml |
|
+ | |||
+ | # determine desktop file associated with executable "inkscape" |
||
+ | $ mimeo --app2desk inkscape |
||
+ | inkscape |
||
+ | org.inkscape.Inkscape.desktop |
||
+ | |||
+ | # find desktop file path |
||
+ | $ mimeo --finddesk org.inkscape.Inkscape.desktop |
||
+ | /usr/share/applications/org.inkscape.Inkscape.desktop |
||
# choose the default application for this MIME type |
# choose the default application for this MIME type |
||
− | $ mimeo -- |
+ | $ mimeo --prefer image/svg+xml org.inkscape.Inkscape.desktop |
+ | # check association |
||
+ | $ mimeo --mime2desk image/svg+xml |
||
+ | image/svg+xml |
||
+ | org.inkscape.Inkscape.desktop |
||
+ | |||
# open a file with its default application |
# open a file with its default application |
||
− | $ mimeo |
+ | $ mimeo Svg_example2.svg |
+ | |||
+ | {{ic|mimeapps.list}} ファイルへのパスを見つけることもできます: |
||
+ | $ mimeo --mimeapps-list |
||
+ | /home/user/.config/mimeapps.list |
||
− | + | ただし、''xdg-utils'' との大きな違いは、mimeo がより複雑な関連付けを可能にするカスタムの "関連付けファイル" もサポートしていることです。たとえば、正規表現の一致に基づいて特定のコマンドライン引数を渡します。 |
|
# open youtube links in VLC without opening a new instance |
# open youtube links in VLC without opening a new instance |
||
111行目: | 131行目: | ||
^https?://(www.)?youtube.com/watch\?.*v= |
^https?://(www.)?youtube.com/watch\?.*v= |
||
− | {{aur|xdg-utils-mimeo}} は、デスクトップ環境が検出されない場合に {{ic|xdg-open}} が mimeo に |
+ | {{aur|xdg-utils-mimeo}} は ''xdg-utils''bにパッチを適用し、デスクトップ環境が検出されない場合に {{ic|xdg-open}} が mimeo に戻るようにします。 |
− | |||
− | === whippet === |
||
− | |||
− | {{aur|whippet}} は {{ic|xdg-open}} に似たツール {{ic|whippet}} を提供します。 {{pkg|libnotify}} でエラーを表示し、{{pkg|dmenu}} で開くアプリケーションの選択肢を表示することで、X11 との統合を実現しています。 |
||
− | |||
− | # open a file with its default application |
||
− | $ whippet -M photo.jpeg |
||
− | |||
− | # choose from all possible applications for opening a file (without setting a default) |
||
− | $ whippet -m photo.jpeg |
||
− | |||
− | [[XDG MIME Applications]] の実装に加えて、''whippet'' は application/MIME タイプ/正規表現の関連性を加えた SQlite データベースを使って、どのアプリケーションを使用するかを決定することができます。 |
||
=== handlr === |
=== handlr === |
||
135行目: | 143行目: | ||
* ファイル名が曖昧な場合、ファイルの内容から mime タイプをインテリジェントに検出します。 |
* ファイル名が曖昧な場合、ファイルの内容から mime タイプをインテリジェントに検出します。 |
||
* mime、拡張子、デスクトップエントリーのオートコンプリートに対応 |
* mime、拡張子、デスクトップエントリーのオートコンプリートに対応 |
||
+ | * 正規表現に基づいて任意のコマンドをハンドラとして設定する。 |
||
# The following two are identical |
# The following two are identical |
||
151行目: | 160行目: | ||
handlr launch x-scheme-handler/https -- https://google.ca |
handlr launch x-scheme-handler/https -- https://google.ca |
||
− | + | {{ic|handlr}} を {{ic|xdg-open}} の代わりに使用するには、次のスクリプトでシャドウします。 |
|
+ | |||
+ | #!/usr/bin/bash |
||
+ | handlr open "$@" |
||
+ | |||
+ | === clifm === |
||
+ | |||
+ | {{ic|clifm}} の組み込みリソースオープナーである ''Lira'' は、{{ic|--open}} コマンドラインオプションを介してスタンドアロンのリソースオープナーとして使用できます。設定ファイル ({{ic|~/.config/clifm/profiles/PROFILE_NAME/mimelist.clifm}}) は、MIME タイプとファイル名 (またはファイル拡張子) の両方の正規表現をサポートしています。いくつかの例: |
||
+ | |||
+ | # Open a regular file |
||
+ | clifm --open /etc/hosts |
||
+ | |||
+ | # Open a directory |
||
+ | clifm --open /media/data |
||
+ | |||
+ | # Open an URL (via the application associated to the text/http MIME type in the configuration file) |
||
+ | clifm --open www.archlinux.org |
||
=== ミニマルなリプレイスメント === |
=== ミニマルなリプレイスメント === |
2024年7月29日 (月) 02:11時点における最新版
プログラムはさまざまな方法でデフォルトのアプリケーションの関連付けを実装します。コマンドラインプログラムは伝統的に環境変数を使いますが、グラフィカルアプリケーションでは、GIO API、Qt API または xdg-utils の一部である /usr/bin/xdg-open
を実行することで、XDG MIME Applications を使用する傾向があります。xdg-open や XDG MIME Applications は非常に複雑なので、様々な代替リソースオープナーが開発されました。次の表は、それぞれの方法のアプリケーション例です。
メソッド | XDG を使用 | アプリケーション例 | アソシエーションをチェック |
---|---|---|---|
GIO の GAppInfo | Yes | Firefox, GNOME Files, PCManFM, Thunar, Thunderbird, Telegram | gio mime mimetype
|
/usr/bin/xdg-open |
By default | Chromium (ダウンロードしたファイルを開く) | xdg-mime query default mimetype
|
custom | Usually not | mc, ranger | – |
環境変数 | No | man, sudoedit, systemctl | – |
D-Bus の FileManager1 | org.freedesktop.FileManager1 | Firefox (Open containing folder), Zotero (ファイルを表示), Telegram (フォルダに表示) | – |
多くのデスクトップ環境とグラフィカルファイルマネージャは、デフォルトのアプリケーションを設定するための GUI を提供します。
目次
背景情報
プログラムは、ファイルや URI をユーザーの好みのアプリケーションで開く必要がある場合があります。ユーザーの好みのアプリケーションでファイルを開くには、ファイルタイプを検出し(通常はファイル名の拡張子か MIME タイプにマッピングされたマジックナンバーを使用)、そのファイルタイプに関連するアプリケーションが存在する必要があります。
Heirloom UNIX のプログラムでは、MIME タイプの検出には mime.types を、アプリケーションの関連付けには mailcap を使用していました。
リソースオープナー
- XDG MIME Apps: XDG MIME Applications 仕様を実装しています。
- RegEx ルール: 正規表現を使用して MIME タイプとアプリケーションを関連付けることができます。
- URI サポート: 任意の URI スキームをアプリケーションと関連付けることができます。
名前 | パッケージ | XDG MIME Apps | RegEx ルール | URI サポート |
---|---|---|---|---|
xdg-open | xdg-utils | Yes | No | Yes |
gio(1) | glib2 | Yes | – | Yes |
mimeopen(1p) | perl-file-mimeinfo | Yes | No | No |
mimeo | mimeoAUR | Yes | Yes | Yes |
mimi | mimiAUR, mimi-gitAUR | No | No | 部分的に |
busking | busking-gitAUR | No | Yes | Yes |
rifle(1) | ranger | No | Yes | No |
handlr | handlr-regex | Yes | Yes | Yes |
clifm | clifmAUR | No | Yes | 部分的に |
mimejs-git | mimejs-gitAUR | No | No | Yes |
xdg-open
xdg-open (xdg-utils の一部) は、XDG MIME Applications を実装し、多くのプログラムで使用されています。
xdg-utils 版の xdg-open は複雑なため、間違ったデフォルトのアプリケーションが開かれる場合はデバッグが困難になる場合があります。このため、これを改善しようとする代替手段が多く存在します。これらの代替品のいくつかは、/usr/bin/xdg-open
実行ファイルを置き換えるので、ほとんどのアプリケーションのデフォルトのアプリケーションの動作を変更します。その他は、単にデフォルトアプリケーションを選択するための代替方法を提供するものです。
perl-file-mimeinfo
perl-file-mimeinfo は mimeopen(1p) と mimetype(1p) というツールを提供します。これらは、xdg-utils の同等品より少し良いインターフェイスを持っています。
# determine a file's MIME type $ mimetype photo.jpeg photo.jpeg: image/jpeg # choose the default application for this file $ mimeopen -d photo.jpeg Please choose an application 1) Feh (feh) 2) GNU Image Manipulation Program (gimp) 3) Pinta (pinta) use application # # open a file with its default application $ mimeopen -n photo.jpeg
最も重要なことは、xdg-utils プログラムがデスクトップ環境を検出しない場合、MIME タイプ検出のために mimetype
の代わりに file
を実際に呼び出すことです。file
は XDG 標準に準拠していないため、これは重要なことです。
mimeo
mimeoAUR は xdg-open
と xdg-mime
の機能を統合したツール mimeo
を提供します。
次の例では、SVG ファイルを Inkscape に関連付ける方法を示します:
# determine a file's MIME type $ mimeo --mimetype Svg_example2.svg Svg_example2.svg image/svg+xml # determine desktop file associated with executable "inkscape" $ mimeo --app2desk inkscape inkscape org.inkscape.Inkscape.desktop # find desktop file path $ mimeo --finddesk org.inkscape.Inkscape.desktop /usr/share/applications/org.inkscape.Inkscape.desktop # choose the default application for this MIME type $ mimeo --prefer image/svg+xml org.inkscape.Inkscape.desktop # check association $ mimeo --mime2desk image/svg+xml image/svg+xml org.inkscape.Inkscape.desktop # open a file with its default application $ mimeo Svg_example2.svg
mimeapps.list
ファイルへのパスを見つけることもできます:
$ mimeo --mimeapps-list /home/user/.config/mimeapps.list
ただし、xdg-utils との大きな違いは、mimeo がより複雑な関連付けを可能にするカスタムの "関連付けファイル" もサポートしていることです。たとえば、正規表現の一致に基づいて特定のコマンドライン引数を渡します。
# open youtube links in VLC without opening a new instance vlc --one-instance --playlist-enqueue %U ^https?://(www.)?youtube.com/watch\?.*v=
xdg-utils-mimeoAUR は xdg-utilsbにパッチを適用し、デスクトップ環境が検出されない場合に xdg-open
が mimeo に戻るようにします。
handlr
Rust で書かれた handlr は xdg-open
と xdg-mime
の機能を効率的なインタフェースで提供します。
xdg-utils
と比較すると、以下のような点が挙げられます。
- 拡張子による関連付けの設定、mime タイプを調べたり覚えたりする必要性を排除
- mime タイプと拡張子の検証
mimeapps.list
から無効なエントリを削除します。- ファイル名が曖昧な場合、ファイルの内容から mime タイプをインテリジェントに検出します。
- mime、拡張子、デスクトップエントリーのオートコンプリートに対応
- 正規表現に基づいて任意のコマンドをハンドラとして設定する。
# The following two are identical handlr set .png feh.desktop handlr set image/png feh.desktop # List default apps handlr list # Get the handler for a mime/extension $ handlr get .png --json {"handler":"pqiv.desktop","name":"pqiv","cmd":"/usr/bin/pqiv"} # Launch a handler with optional path/URL handlr launch x-scheme-handler/https handlr launch x-scheme-handler/https -- https://google.ca
handlr
を xdg-open
の代わりに使用するには、次のスクリプトでシャドウします。
#!/usr/bin/bash handlr open "$@"
clifm
clifm
の組み込みリソースオープナーである Lira は、--open
コマンドラインオプションを介してスタンドアロンのリソースオープナーとして使用できます。設定ファイル (~/.config/clifm/profiles/PROFILE_NAME/mimelist.clifm
) は、MIME タイプとファイル名 (またはファイル拡張子) の両方の正規表現をサポートしています。いくつかの例:
# Open a regular file clifm --open /etc/hosts # Open a directory clifm --open /media/data # Open an URL (via the application associated to the text/http MIME type in the configuration file) clifm --open www.archlinux.org
ミニマルなリプレイスメント
以下のパッケージは独自の /usr/bin/xdg-open
スクリプトを提供しているため、 xdg-utils と競合して提供されます。
もし、xdg-utils を使用しながら、これらのリソースオープナーを使用したい場合、/usr/bin
より前の PATH ディレクトリに手動でインストールしてください。
- mimi-gitAUR - 130 行の Bash スクリプトで、MIME タイプごとにコマンド引数を変更することができます。
- busking-gitAUR - 80 行の Perl スクリプトで、mimiに似ていますが、正規表現もサポートしています。