web-dev-qa-db-ja.com

ファイルの関連付けはどこに保存されますか?

Ubuntuまたは他のLinuxシステムはファイルの関連付けをどのように保存しますか?

/etc/asscociationsファイルなどがありますか?

ファイルを右クリックして「開く」を使用して変更できることは知っていますが、内部にどのように保存されているのか知りたいだけです。

66
Stann

ファイルマネージャー(デフォルトでは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は、システムのデフォルトに関する情報を提供します。特に指定しない限り、これらはファイルを「開く」ときに使用されるアプリケーションです。

66
dv3500ea

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を書き込みます。

23
user8979

私のシステム(Debian Jessie)には、~/.config/mimeapps.listもあり、geditで特定のファイルタイプを開くために誤って作成した関連付けがありました。これを修正する標準的な方法(デフォルトのアプリケーション設定、Thunarのopen withプロパティ)はこれを反映していませんが、geditがデフォルトのアプリケーションでした。

~/.config/mimeapps.listから行を削除できたので、正しいアプリケーションがファイルを開きます。

18
Bryan Leaman

このような関連付けを設定できました。

xdg-mime default xnview.desktop image/jpeg

関連付けを削除して、他のことを行うこともできます:man xdg-mime

Sudo update-desktop-databaseを実行する必要はありませんでした。

8
warvariuc

デフォルトの関連付けに関するこのリンクを見つけましたが、役に立つかもしれません。 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]セクションは、以前に継承されたアソシエーションを明示的に削除するために使用されます。

7
MusuNaji

次の行を使用して、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>
7
Blindfreddy

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

2
Xoristzatziki

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ファイル( RistrettoGeeqie 、および GThumb )が調べられ、MIMEが抽出されます定義(MimeType=で始まり、セミコロンで区切られたリストを含む)、(以前に一致した)前書きラベルを削除し、リストを行ごとに1つのエントリに分割します。 sort -uは冗長な行を削除し、xdg-mimeに渡されて新しいデフォルトを設定します。

(ライブで実行する前にこれをテストする場合は、xargsxargs echoに変更すると、実行する代わりに結果のコマンドが出力されます。)

この手法は、ターゲットアプリ用に再生したいものすべてに有効です。新しい.desktopファイルを作成する必要さえありません(既存のものを使用できます)。画像プレビューア間の忠誠心を必然的に変更するときに、その1つのファイルを変更するだけで済むように、その余分なステップを実行しました。

1
Adam Katz

Ubuntu 18.04では、優先順位が次のとおりであることがわかりました。

  1. ~/.local/share/applications/defaults.list
  2. /usr/share/applications/defaults.list
  3. ~/.config/mimeapps.list(「他のアプリケーションで開く」はこれを更新します)
  4. ~/.local/share/applications/mimeapps.list
  5. mimeinfo.cacheおよび.desktopにある/usr/share/applicationsファイルから生成され、 を使用して再生成できる、互換性のあるアプリケーションの/usr/local/share/applicationsレジストリで最初に見つかった一致update-desktop-database
  6. (使用しない)/etc/gnome/defaults.list
1
Jimmy He