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


12

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

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

ホームディレクトリのFirefox関連のファイルで文字列Inkscape(またはinkscape)が見つかりませんでした。



FirefoxのデフォルトはFont-Viewerに設定されています。
ユーザー14年

回答:


14

「同様の質問」(xdg-openのデフォルトのアプリケーションの動作 –明らかに関連していませんが、いくつかの実験により、動作が実際にに相当することが示されました)へのリンクによりxdg-open、うさぎの穴が深くなりました。Firefoxは、に依存せず、ルールを継承しませんxdg-openが、MIME仕様ファイルを使用xdg-openします。

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

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

application/pdf=evince.desktop

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

[Default Applications]
application/pdf=evince.desktop

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

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


私の古代のDebian Linuxでは、update-mime-database何か違うことが必要でしたupdate-desktop-database ~/.local/share/applications
パレック

また、xdg-open file.pdfFirefoxはxpdfを開き、Evinceを開きます(Nautilusと同様)。使用するfind ~/.local/share/applications/ /usr/share/applications/ -type f -exec grep -i pdf '{}' +と、ユーザー設定のどこにもPDFは記載されておらず、/usr/share/applications/mimeinfo.cacheそれぞれの*.desktopファイルにのみ記載されていることがわかりました。の行はmimeinfo.cacheですapplication/pdf=xpdf.desktop;evince.desktop;xournal.desktop;。FFが最初のアイテムを取ると思います。しかし、どのようにxdg-open私はエビンスが欲しいと知っていますか?
パレック

1
使用してstrace、私はその発見xdg-openのコールをgnome-openしてgnome-open読み込む/usr/share/gnome/applications/defaults.listへのシンボリックリンクである、/etc/gnome-vfs-2.0/defaults.listかを指定し、application/pdf=evince.desktop。明らかに、バニラFFにはGNOMEの統合が欠けているため、この設定は無視されます。
パレック

7

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

そして、それでも、実装xdg-openはGNOME固有のパスを無視するため、結果と矛盾します(私の場合/usr/share/gnome/applications/defaults.listは、へのシンボリックリンクです/etc/gnome-vfs-2.0/defaults.list)。で指定する必要がありapplication/pdf=evince.desktopました~/.local/share/applications/defaults.list。(XDGのより新しいバージョンでdefaults.listマージさ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 mailcapman mailcap.order

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


1
この回答は、Firefox Quantum(64.0)ではまだ有効ではありません。ただし、mailcapは実際のfirefoxよりも優れているため、run-mailcap --debug --norunに完全に依存することはできません。次のようなエントリがありますapplication/pdf; sh -c "MEANINGFUL_VAR=preset /usr/bin/evince '%s'"。Firefoxが起動しますsh downloaded_file.pdf。私のコンソールでは、他の人たちの間で見る/tmp/mozilla_user/downloaded_file.pdf: line 3: 5: command not foundことができます。誰かがこれを修正しない限り、この動作は永遠に残ります。Mozilla Bugzillaを参照してください。
u_Ltd。

1
したがって、DebianとGnomeの組み合わせを展開する管理者は、ユーザーに一貫したエクスペリエンスを提供するために、4つ以上のユーティリティを使用してmimeのデフォルトを設定する必要があります:update-mime(mailcapを更新する)、xdg-settings(xdg-openを更新する)、gio(gnome-open update-alternativesを更新するため)および(いわゆる汎用ユーティリティを更新するため)。そしてもちろん、彼/彼女は、システム全体と各ユーザーの設定の両方を個別に管理することを忘れてはいけません(おそらく、ユーザーのデフォルトを変更する機能をブロックするのが最善です)...-ああ、FFのhandlers.jsonファイルも:mzl.la/1xKrLAq
zenlord
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.