web-dev-qa-db-ja.com

Firefoxはファイルを開くための「デフォルト」アプリケーションをどこから取得しますか?

デフォルトでは、私のFreeBSD 11.0-CURRENT上のFirefox(33.0)は、開くためのデフォルトのアプリケーションを備えていますPDFファイルはInkscapeに設定されています。Firefoxは私の以前の選択evinceを記憶しています、「Firefoxでこのファイルをどうしますか?」ダイアログで、最近まで、この構成がどこから来たのか混乱していましたが、ほとんど気にしていなかったため、ほとんど無視しました。

しかし、私は最近、Zoteroを文献データベースとして使用し始めました。 Zoteroは、Firefoxプラグインとして実行され、Firefoxの設定で行った選択を無視して、PDFファイルをevinceで開くか、何をするかを尋ねて、Inkscapeを使用して開くだけです。これにより、 Firefoxのこの特定の構成項目をフォローアップしようとしましたが、そのデフォルトが設定されている場所を見つけることができませんでした。

ホームディレクトリのFirefox関連ファイルで、文字列Inkscape(またはinkscape)を見つけることができませんでした。

12
Anaphory

「同様の質問」へのリンク( xdg-open default applications behavior –明らかに関連はありませんが、いくつかの実験により、動作が実際にxdg-openの動作と同等であることが示されました)不思議な方向へ転がる。 Firefoxはxdg-openに依存せず、ルールを継承しませんが、xdg-openと同様にMIME仕様ファイルを使用します。

ユーザーベースでは、MIMEを開く動作は仕様ファイル~/.local/share/applications/mimeapps.listによって構成されます。

私の場合、このファイルにはuserapp-Firefox-??????.desktopに接続された適切なプロトコルとHTML(および類似の)ファイルがいくつか含まれていますが、次のような行を簡単に追加できます

application/pdf=evince.desktop

ユーザーごとにその問題を解決します。ファイルがまだ存在しない場合は、必ずセクションヘッダーを追加してください。

[Default Applications]
application/pdf=evince.desktop

さらに深く、MIMEタイプは/usr/local/share/applications/mimeinfo.cache(FreeBSDシステムを使用していない場合は/usr/share/…の可能性があります)で定義され、application/pdf=inkscape.desktop;evince.desktop;がリストされます。そのフォルダのevince.desktopinkscape.desktopの両方にMimeType=[…]application/pdf;[…]が含まれています。

mimeinfo.cacheは、.desktopファイルにリストされているMIMEタイプから自動的に生成されるため、明確に定義された順序がないため、PDFからMIMEタイプを削除する必要があります。 Inkscapeでupdate-mime-databaseを使用してキャッシュを再生成するか、mimeapps.listを生成します(/usr/local/share/applications/でグローバルに、または~/.local/share/applications/mimeapps.listでユーザー向けに)。

14
Anaphory

Firefox 38.8.0 ESRで、GNOME 2を使用したDebian Lennyの下で、[〜#〜] xdg [〜#〜]を介して関連付けられたアプリケーションを発見しました( OPによる回答 で説明)は、ライブラリのダウンロードからダウンロードしたファイルを開くときにのみ使用されます。

そして、それでも、実装はGNOME固有のパス(私の場合はxdg-open/usr/share/gnome/applications/defaults.listへのシンボリックリンク)を無視するため、/etc/gnome-vfs-2.0/defaults.listと矛盾する結果をもたらします。 application/pdf=evince.desktop~/.local/share/applications/defaults.listを指定する必要がありました。 (defaults.listは、XDGの最新バージョンではmimeapps.listに統合されていることに注意してください。)

XDGの代わりに、メタメール機能(mailcap)を使用して、次のユースケースの関連アプリケーションを解決します。

  • ダウンロードパネルからダウンロードしたファイルを開く(ツールバーのダウンロードボタンを押すと表示されます)
  • ファイルダウンロードダイアログのドロップダウンのデフォルトアプリケーション
  • 設定→アプリケーション(about:preferences#applications)のドロップダウンにあるデフォルトのアプリケーション

about:preferences#applicationsの設定は、ダウンロードが強制されない限り、そのコンテンツタイプのURLに移動するときに使用されます。

MailcapはXDGよりも古いメカニズムであり、MIMEの発信元である電子メールにルーツがあります。 run-mailcapユーティリティはxdg-openに類似しています。その構成は3つのファイルで構成されます(優先順位が低くなります)。

  • ~/.mailcap —ユーザーのエントリ
  • /etc/mailcap.order —システム全体のエントリの順序付け仕様
  • /etc/mailcap —システム全体のエントリ(ユーザーエントリと同じ形式)

これらは一緒に、特定のMIMEタイプに使用されるアプリケーションを指定する1行のエントリのリストを生成します。エントリはトップダウンで照合されるため、最初に来るものが優先されます。

システム全体のエントリを優先的に変更するには、/etc/mailcap.orderを編集してupdate-mimeを実行する必要があります。

一部のエントリを上書きするか、システム全体で独自のエントリを指定するには、/etc/mailcapの上部セクション(手動で作成したエントリを意味する)を編集してupdate-mimeを実行する必要があります。上のセクションのコメントを参照してください。

ユーザーエントリと上書きの場合は、~/.mailcapを使用します。変更はすぐに有効になります。 ~/.mailcap.orderは存在しません。エントリの優先順位を変更する場合は、物理的に並べ替えるか(~/.mailcapの場合)、優先バージョンで上書きします(/etc/mailcapの場合)。

man update-mimeman mailcap および man mailcap.order を参照してください。

一部のアプリケーションは、優先アプリケーションの検出の代わりに、汎用ユーティリティx-www-browserまたはpagerなど)を使用することに注意してください。ディストリビューションで汎用ユーティリティの優先実装を選択するには、 update-alternatives または同様のメカニズムを使用する必要がある場合があります。または、特定のユーザーに対してシステム全体で優先される代替をオーバーライドするには、EDITOR(またはVISUAL)、PAGERBROWSERなどの環境変数を設定します。それらは sensible-browser およびその他の、より具体的なツールでサポートされています(例 git commitEDITORおよびVISUALを使用します)。

7
Palec