Ubuntuまたは他のLinuxシステムはファイルの関連付けをどのように保存しますか?
/etc/asscociations
ファイルなどがありますか?
ファイルを右クリックして「開く」を使用して変更できることは知っていますが、内部にどのように保存されているのか知りたいだけです。
ファイルマネージャー(デフォルトではNautilus)は、ファイルの MIMEタイプ を使用して、どのプログラムで開くかを決定します。アプリケーションをインストールすると、開くことができるMIMEタイプと、/usr/share/applications
にある.desktopファイル内のファイルを開くために使用するコマンドを指定できます。これは、メニュー、デスクトップショートカットなどに使用されるファイルです。
たとえば、GIMPには次の.desktopファイルがあります。
[Desktop Entry]
Version=1.0
Type=Application
Name=GNU Image Manipulation Program
GenericName=Image Editor
Comment=Create images and edit photographs
Exec=gimp-2.7 %U
TryExec=gimp-2.7
Icon=gimp
Terminal=false
Categories=Graphics;2DGraphics;RasterGraphics;GTK;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=GIMP
X-GNOME-Bugzilla-Component=General
X-GNOME-Bugzilla-Version=2.7.2
X-GNOME-Bugzilla-OtherBinaries=gimp-2.7
StartupNotify=true
MimeType=application/postscript;application/pdf;image/bmp;image/g3fax;image/gif;image/x-fits;image/pcx;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-psd;image/x-sgi;image/x-tga;image/x-xbitmap;image/x-xwindowdump;image/x-xcf;image/x-compressed-xcf;image/tiff;image/jpeg;image/x-psp;image/png;image/x-icon;image/x-xpixmap;image/svg+xml;application/pdf;image/x-wmf;image/jp2;image/jpeg2000;image/jpx;image/x-xcursor;
MimeType
フィールドを参照してください-これは、サポートされているMIMEタイプをリストします。Exec
フィールドは、システムにコマンドgimp-2.7 %U
を使用するよう指示し、 '%U'を開くファイルに置き換えます。 (GIMP 2.7はPPAからインストールしたバージョンなので、Ubuntuリポジトリの現在のバージョンよりも高いことに注意してください)。
アプリケーションパッケージをインストールすると、ファイルを開くたびに各.desktopファイルを検索すると時間がかかりすぎるため、システムはこのMIMEタイプデータをよりアクセスしやすいデータベースに抽出します。
これは、システムにどのアプリケーションをそのMIMEタイプに使用できるかを伝え、「Open With」リストのアプリケーションを提供します。デフォルトは別の場所で定義されています。ファイル/usr/share/applications/defaults.list
は、システムのデフォルトに関する情報を提供します。特に指定しない限り、これらはファイルを「開く」ときに使用されるアプリケーションです。
Dv3500eaの優れた答えを補足するために、関連付けを変更したときに何が起こるかについての情報を追加したいと思います。
Defaults.list(「locate defaults.list」と入力すると見つけることができます)は各MIMEタイプに関連付けられたアプリケーションのリストを提供しますが、カスタマイズはすべてホームディレクトリの〜/ .local /に保存されますshare/applications/mimeapps.list。したがって、関連付けを追加または削除するか、デフォルトの関連付けを変更すると、このファイルが更新されます。
http://library.gnome.org/admin/system-admin-guide/stable/ のGNOMEデスクトップシステム管理ガイドではmimeapps.listについて説明しているようには見えませんが、次の説明を見つけました。 http://live.gnome.org/SysAdminGuideUpdate :
mimeapps.listは、$ XDG_DATA_DIRS/applicationsにあります。その目的は、アプリケーションにMIMEの関連付けを追加または削除することです。ユーザーが「アプリケーションから開く」ダイアログで変更を行うと、nautilusは〜/ .local/share/applications/mimeapps.listを書き込みます。
私のシステム(Debian Jessie)には、~/.config/mimeapps.list
もあり、geditで特定のファイルタイプを開くために誤って作成した関連付けがありました。これを修正する標準的な方法(デフォルトのアプリケーション設定、Thunarのopen withプロパティ)はこれを反映していませんが、geditがデフォルトのアプリケーションでした。
~/.config/mimeapps.list
から行を削除できたので、正しいアプリケーションがファイルを開きます。
このような関連付けを設定できました。
xdg-mime default xnview.desktop image/jpeg
関連付けを削除して、他のことを行うこともできます:man xdg-mime
Sudo update-desktop-database
を実行する必要はありませんでした。
デフォルトの関連付けに関するこのリンクを見つけましたが、役に立つかもしれません。 https://wiki.archlinux.org/index.php/Default_Applications
グローバル関連付けの場合:
/usr/share/applications/mimeapps.list
ユーザーごとの関連付け:
~/.local/share/applications/mimeapps.list
構文は次のとおりです。
[Added Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN
...
[Removed Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN
[追加された関連付け]セクションは、優先度を下げる優先(デフォルト)アプリケーションを指定するために使用されます。つまり、desktopfile1が最も優先され、desktopfileNが最も優先されません。
[Removed Associations]セクションは、以前に継承されたアソシエーションを明示的に削除するために使用されます。
次の行を使用して、truecrypt.desktop
にファイル~/.local/share/applications
を作成します。
[Desktop Entry]
Encoding=UTF-8
Type=Application
Icon=
Exec=/usr/bin/truecrypt %U
Name=truecrypt
Comment=manage truecrypt volumes
ファイル~/.local/share/applications/mimeapps.list
を編集して、次の行を追加します。
application/octet-stream=truecrypt.desktop
次のコマンドを実行して、TruecryptのMIMEタイプを見つけました。
file --mime-type -b <any truecrypt filename>
mimeapps.list
検索パス
このファイルについて言及している人もいますが、その場所を正確に説明している人はいません。
Freedesktop.org標準は https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.html で述べています:
このファイルの検索順序は次のとおりです。
$XDG_CONFIG_HOME/$desktop-mimeapps.list user overrides, desktop-specific (for advanced users)
$XDG_CONFIG_HOME/mimeapps.list user overrides (recommended location for user configuration GUIs)
$XDG_CONFIG_DIRS/$desktop-mimeapps.list sysadmin and ISV overrides, desktop-specific
$XDG_CONFIG_DIRS/mimeapps.list sysadmin and ISV overrides
$XDG_DATA_HOME/applications/$desktop-mimeapps.list for completeness, deprecated, desktop-specific
$XDG_DATA_HOME/applications/mimeapps.list for compatibility, deprecated
$XDG_DATA_DIRS/applications/$desktop-mimeapps.list distribution-provided defaults, desktop-specific
$XDG_DATA_DIRS/applications/mimeapps.list distribution-provided defaults
そして、それらの環境変数のデフォルト値は https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.6.html で与えられます:
$XDG_DATA_HOME
:$HOME/.local/share
$XDG_CONFIG_HOME
:$HOME/.config
$XDG_DATA_DIRS
:なし、XDG_DATA_HOME
に追加$XDG_CONFIG_DIRS
:なし、XDG_CONFIG_HOME
に追加Ubuntuの古いバージョンは~/.config
をチェックしない場合があるため、必ず~/.local/share
も試してください。
次のようなコマンド:
xdg-settings set default-web-browser chromium-browser.desktop
xdg-settings get default-web-browser
これらのファイルは自動的に編集されます。
すべてのユーザーの場合:
/usr/share/applications/defaults.list
各ユーザーには、これらのデフォルトをオーバーライドするための構成ファイルがあります。
〜/ .config/mimeapps.list
defautのオーバーライドに使用される可能性のある場所については、 https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.1.html も参照してください。
関連付けを変更するファイルのMIMEタイプを知っている必要があります。
また、すべての関連付けは、次を使用してコマンドラインで処理および変更できます。
xdg-mime
Freedesktop.org (以前はX Desktop Groupと呼ばれていたため、「XDG」の略語)は、現在このようなX標準を推進しているグループです( Wikipediaで詳細をご覧ください )。
warvariuc's answer 既に言及 xdg-mime のような使用法:
xdg-mime default xnview.desktop image/jpeg
多くの画像編集者とビューアーで遊んだ後、特にまれな画像タイプ間で、ほとんど一貫性のない異なる画像タイプの異なるビューアーになりました。
上記のコマンドを使用して、イメージビューアーによって制御される各MIMEタイプに割り当て、それらの1つを複製して新しいimage-viewer.desktop
を作成しました(これはオプションで、単にお気に入りを再利用できます)。次に、MIMEタイプが新しい優先アプリケーションと互換性がないことを手動で確認しました。最後に、そのアプリケーションを他のすべてのアプリケーションのMIMEタイプのデフォルトに設定しました。
sed '/^MimeType=/!d; s///; s/;/\n/g' \
/usr/share/applications/{ristretto,geeqie,gthumb}.desktop |sort -u \
|xargs xdg-mime default image-viewer.desktop
これにより、各ビューアの.desktop
ファイル( Ristretto 、 Geeqie 、および GThumb )が調べられ、MIMEが抽出されます定義(MimeType=
で始まり、セミコロンで区切られたリストを含む)、(以前に一致した)前書きラベルを削除し、リストを行ごとに1つのエントリに分割します。 sort -u
は冗長な行を削除し、xdg-mime
に渡されて新しいデフォルトを設定します。
(ライブで実行する前にこれをテストする場合は、xargs
をxargs echo
に変更すると、実行する代わりに結果のコマンドが出力されます。)
この手法は、ターゲットアプリ用に再生したいものすべてに有効です。新しい.desktop
ファイルを作成する必要さえありません(既存のものを使用できます)。画像プレビューア間の忠誠心を必然的に変更するときに、その1つのファイルを変更するだけで済むように、その余分なステップを実行しました。
Ubuntu 18.04では、優先順位が次のとおりであることがわかりました。
~/.local/share/applications/defaults.list
/usr/share/applications/defaults.list
~/.config/mimeapps.list
(「他のアプリケーションで開く」はこれを更新します)~/.local/share/applications/mimeapps.list
mimeinfo.cache
および.desktop
にある/usr/share/applications
ファイルから生成され、 を使用して再生成できる、互換性のあるアプリケーションの/usr/local/share/applications
レジストリで最初に見つかった一致update-desktop-database
。/etc/gnome/defaults.list