デフォルトアプリケーション

提供: ArchWiki
2018年2月6日 (火) 23:43時点におけるKusakata.bot (トーク | 投稿記録)による版 (文字列「http://standards.freedesktop.org/」を「https://standards.freedesktop.org/」に置換)
ナビゲーションに移動 検索に移動

関連記事

特定のファイルタイプで使用するようにデフォルトアプリケーションを設定することが可能です (例: HTML ファイルを表示するプログラムとして Firefox ウェブブラウザを設定)。ちゃんと設定することで、使用したいアプリケーションでファイルを素早く簡単に開いたり編集することができます。Linux でデフォルトアプリケーションを設定する方法は様々です。このページでは最も一般的な方法を説明します: ファイルマネージャ, MIME タイプ, 環境変数。

MIME タイプとデスクトップエントリ

最近ではアプリケーションはデスクトップエントリを使って起動されます。この方法では、アプリケーションが開くことができるファイルの種類 (正確に言えば MIME タイプ) を定義できます。例えば gimp.desktop には MimeType=image/bmp;image/gif;... と記述されています。

freedesktop.orgAssociation between MIME types and applications の標準に従って特定の MIME タイプのデフォルトの (使いたい) アプリケーションを指定することを推奨しています。設定するには以下のパスにある mimeapps.list という名前のファイルを探して書き込みを行う必要があります:

パス 使用方法
$HOME/.config/$desktop-mimeapps.list デスクトップごとに、ユーザーが定義します
$HOME/.config/mimeapps.list ユーザーが定義します
/etc/xdg/$desktop-mimeapps.list デスクトップごとに、システム管理者やソフトウェアが定義します
/etc/xdg/mimeapps.list システム管理者やソフトウェアが定義します
$HOME/.local/share/applications/$desktop-mimeapps.list デスクトップごとに、互換性のために存在しますが現在は非推奨です
$HOME/.local/share/applications/mimeapps.list 互換性のために存在しますが現在は非推奨です
/usr/local/share/applications/$desktop-mimeapps.list
/usr/share/applications/$desktop-mimeapps.list
ディストリビューションによるデフォルト、デスクトップごと
/usr/local/share/applications/mimeapps.list
/usr/share/applications/mimeapps.list
ディストリビューションによるデフォルト

上の表にある、$VARS は環境変数で $desktop は使用しているデスクトップの名前です (小文字)。例: kde, gnome, xfce など。

特定の MIME タイプのデフォルトアプリケーションを指定するには mimeapps.list ファイルの [Default Applications] グループに記述します。以下の例では、mimetype1 ではアプリケーション default1.desktop または (default1 がインストールされていない場合) default2.desktop が使われます:

[Default Applications]
mimetype1=default1.desktop;default2.desktop

アプリケーションはセミコロンで区切って デスクトップファイル ID を使って指定します。

エントリが存在しない場合、次のパスの mimeapps.list がチェックされます。全てのパスをチェックしても、エントリが存在しなかった場合、MIME タイプと関連付けられている .desktop ファイルからプログラムが選択されます。その際 mimeapps.list ファイルに指定されている他のグループの追加・削除された関連付けが考慮されます:

[Added Associations]
mimetype1=foo1.desktop;foo2.desktop;foo3.desktop
mimetype2=foo4.desktop
[Removed Associations]
mimetype1=foo5.desktop

[Added Associations] グループには MIME タイプとアプリケーションの追加の関連付けが定義されています。.desktop ファイルに最初から MIME タイプが記載されているかのように扱われます。[Removed Associations] グループは MIME タイプとアプリケーションの関連付けを削除します。.desktop ファイルに最初から MIME タイプが記載されていなかったかのように扱われます。[Default Applications] のエントリはアプリケーションと MIME タイプの関連付けの追加を同様にするものと考えてください。

ノート:
  • Arch Linux は関連付けに関してシステム全体の設定は提供していませんが、他のディストリビューションやデスクトップ環境は mimeapps.list で関連付けを用意していたり、あるいは旧式の defaults.list ファイルを使っていたりします。
  • デフォルトアプリケーションの設定に関する仕様は最近変更されたばかりであり、全てのプログラムが仕様に準拠しているわけではありません。事実、freedesktop.org の xdg-utils パッケージに含まれているプログラムでさえ彼らが決めた仕様に完全には従っていないものがあります。
  • どのデスクトップ環境を使用しているか、あるいはデスクトップ環境を使用していないかでデフォルトアプリケーションが保存される方法も変わってきます。
  • update-desktop-database プログラムが実行されたとき (通常、root でパッケージを(アン)インストールしたときに実行されます)、/usr/local/share/applications/usr/share/applications ディレクトリに存在する mimeinfo.cache という名前のファイルが更新されます。ファイルには .desktop ファイルと MIME タイプの関連付けが全て記録されています。ユーザーが手動でファイルを編集してはいけません。

ファイルマネージャ

ほとんどのファイルマネージャは,様々なファイルタイプに対して特定のアプリケーションをデフォルトのアプリケーションとして設定することができます。いつでも新たなデフォルトアプリケーションを設定することができます。例えば、Xfce の標準ファイルマネージャである thunar を使ってデフォルトアプリケーションを設定するには:

  • 設定したいファイルタイプを持つファイルを 右クリック する
  • Open with another application を選ぶ
  • 所望のアプリケーションを選ぶ
  • Use as default for this kind of file チェックボックスにチェックが入っているか確認する
  • Open ボタンをクリックする

PCManFMspacefmAUR のような、他のほとんどのファイルマネージャでも一般的な手順は非常に似ています。

Gnome Control Center

Gnome コントロールセンターがインストールされている場合、gnome-control-center を実行して System > Details > Default Applications を開いてください。

gnome-defaults-list

gnome-defaults-listAURAUR からインストールできます。ファイルタイプと GNOME デスクトップのプログラムのリストが含まれています。リストは /etc/gnome/defaults.list にインストールされます。

インストールされたファイルをテキストエディタで開いてください。特定のアプリケーションを適当なプログラムの名前で置き換えることができます。例えば、メディアプレイヤーの totemvlc など他のアプリケーションで置き換えることが可能です。変更したファイルは ~/.local/share/applications/defaults.list に保存してください。

xdg-open

xdg-open はデフォルトアプリケーションを起動するためのデスクトップ非依存のツールです。多くのアプリケーションは内部的に xdg-open コマンドを呼び出しています。xdg-open は xdg-mime を使って ~/.local/share/applications/mimeapps.list (他のファイルも使います。GNOME, KDE, LXDE などのメインストリームになっている DE を使っている場合、xdg-open は xdg-mime より先にデスクトップ環境のツールを試行します) から、開こうとしているファイルの MIME タイプと、その MIME タイプに関連付けられているデフォルトアプリケーションを確認します。

詳しくは xdg-open を見てください。

Mimeo

Mimeo はコマンドラインのファイル関連付けマネージャであり、ウェブブラウザやメールクライアントなどのアプリケーションからファイルを開くためのランチャーとして使うことができます。freedesktop.org の仕様 を順守していますが、一方で非推奨となっている (なのに未だに使われている) ~/.local/share/applications/mimeapps.list もオプションでサポートしています。正規表現によるファイルの関連付けもサポートしており、任意の文字列をアプリケーションに関連付けることが可能です (例: YouTube の URL を VLC で開いたり、蛋白質データベースのファイルを PyMol で開くなど)。Mimeo は AUR からインストールしたり (mimeoAUR)、Xyne のリポジトリ からインストールできます。

ファイルの関連付けのカスタマイズ

以下は手動で MIME タイプとファイルの関連付けをカスタマイズする方法です。デスクトップに MIME タイプやファイルの関連付けのエディタをインストールしていない場合に有用です。この例では、架空のマルチメディアアプリケーション 'foobar' を *.foo ファイルに関連付けます。設定は現在のユーザーでのみ反映されます。

まず ~/.local/share/mime/packages/application-x-foobar.xml ファイルを作成:

$ mkdir -p ~/.local/share/mime/packages
$ cd ~/.local/share/mime/packages
$ touch application-x-foobar.xml

そして ~/.local/share/mime/packages/application-x-foobar.xml を編集して以下の文章を追加:

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
    <mime-type type="application/x-foobar">
        <comment>foo file</comment>
        <icon name="application-x-foobar"/>
        <glob-deleteall/>
        <glob pattern="*.foo"/>
    </mime-type>
</mime-info>

アイコンは自由に使うことができます。他のアプリケーションのアイコンでもかまいません。

次に、~/.local/share/applications/foobar.desktop ファイルを作成・編集して以下を記述:

[Desktop Entry]
Name=Foobar
Exec=/usr/bin/foobar
MimeType=application/x-foobar
Icon=foobar
Terminal=false
Type=Application
Categories=AudioVideo;Player;Video;
Comment=

Categories はアプリケーションのタイプにあわせて適当に設定してください (上記の例では、マルチメディアアプリケーション)。

そしてアプリケーションと MIME データベースを更新:

$ update-desktop-database ~/.local/share/applications
$ update-mime-database    ~/.local/share/mime

これで、ファイルマネージャなど、MIME タイプを使用するプログラムは *.foo ファイルを foobar で開くようになります (変更を適用するにはファイルマネージャを再起動する必要があるかもしれません)。

複数のデスクトップ環境の設定を管理

.desktop ファイルの OnlyShowIn フィールドを利用することができます。このページ を見て下さい。

環境変数を使う

グラフィカルでないプログラムのほとんどは EDITORBROWSER などの環境変数を使います。環境変数はターミナルの自動起動ファイルで設定できます (例: ~/.bashrc):

~/.bashrc
export EDITOR="nano"
export BROWSER="firefox"

トラブルシューティング

(ファイルマネージャにある) コンテキストメニューの「他のアプリケーションで開く」でアプリケーションが表示されない

ときどき、右クリックの他のアプリケーションで開くダイアログに特定のアプリケーションが表示されないことがあります。この問題を修正するには、/usr/share/applications にある .desktop ファイルを探して、root で編集し、Exec= 行の末尾に %U を追加してください。例えば Kile の場合、/usr/share/applications/kde4/kile.desktop を編集して Exec=kile という行を Exec=kile %U と変更する必要があります。この問題に気づいたときは、上流のプロジェクトにバグの報告をするようにしてください。

You may also have to edit the MimeType list in the .desktop file if you install extensions that allow an application to handle additional MIME types.