UbuntuでFirefoxが未知のファイルを開く既定アプリを修正する
これはマジでクソみたいな問題で、半年も悩まされてた。
基本的にFirefoxはファイルをダウンロードするとき、拡張子を見てそれに対応した開き方を提示してくれる。たとえばこう。

ところが、拡張子がはっきりしているのにFirefoxが「不明」とマークすることがある。俺のマシンでは、なぜかPDFを開く既定アプリとしてgeditをすすめてきた。

実際のところ、この現象はサイト側の問題で、拡張子とは関係ない。あるサイトで落としたPDFは普通に認識されるのに、別のサイトだとzipファイルですら「不明」扱い、おまけに既定がGeditとかいう……
これが何を意味するかというと、保存を選んでFirefoxのダウンロードメニューから開こうとすると……

こうなる。

PDFだけじゃなく、ISO、ZIP、RARでも発生した。数GBのRARをGeditで開こうとされると地味にきつい。毎回ダウンロードフォルダを開いて、ファイルを見つけてダブルクリックするしかなかった。
この件について、Firefoxのファイル関連付けを見たり、nautilusの関連付けを見たり、あれこれ調べたけど、おかしなところは見当たらない。なのに問題は消えない。Redditで聞いたり、askubuntuとかに投稿もしてみたけど、これといった解決策は出てこず、PDFだのISOだのの関連付けが悪いんだろ、みたいな意見ばかりだった。
ただ面白いことに、新しくユーザーを作ってログインしてみると、この問題は起きなかった。となると設定ファイルの誤りだろう。
そして今日、ふとその設定ファイルの場所を見つけた。
~/.local/share/applications/mimeapps.list
中にこんな一行があった。
application/octet-stream=gedit.desktop;
消したら解決。

application/octet-streamというファイルタイプの説明はここにある:https://kb.iu.edu/d/agtj
おそらくFirefoxは、ファイルタイプがはっきり示されていないダウンロードにこれを当てはめて、メールの添付ファイルみたいに扱っているんだと思う。そこに関連付けられているのがgeditだったから、こんな意味不明な結果になった、と。
コメントは中国語の本家サイトで受け付けています。このミラーは閲覧専用です。