2019-08-29 (Th) [長年日記]
_ Firefox を default browser にした時の挙動
いろんなアプリでリンクをクリックした時、例えば http://localhost をクリックすると、
xdg-open http://localhost
が実行される。が、数秒後に、firefox は動いてるけど反応しないよ〜、とメッセージが 表示される。
なんで反応しないのだろう? とずっと思っていた。
この疑問が解決した。
GNOME control center 上で default browser にした時はともかくとして、 firefox 自身が、default browser じゃないよ〜 default にする? と聞いてきて、 Yes と答えた場合の話。
Yes と答えると、
~/.local/share/applications/userapp-Firefox-XXXXXX.desktop
というファイルが作成される。
で、XDG の仕様通りに、default browser を userapp-Firefox-XXXXXX
にする。
こうして、default browser が Firefox になる。
が、ここで問題がある。
userapp-Firefox-XXXXXX.desktop
は Firefox が作るので、
Firefox 自身が知っている内容で作られる。
その中の一行が↓これ。
Exec=/usr/lib/firefox/firefox %u
Firefox が知ってる内容で作るので、私が書き換えてる内容なんて知るはずがない。 私は wayland で使うため、以下のように書き換えて使ってる。
Exec=/usr/bin/env GDK_BACKEND=wayland /usr/lib/firefox/firefox %u
で、実行中の firefox は wayland で動いてるけど、xdg-open からの firefox は X11 のつもりで X11 経由で既存プロセスにアクセスしようとし、 既存プロセスから返事がなくて諦める、と。
じゃぁ userapp-Firefox-XXXXXX.desktop
の Exec=
行を書き換えればいいかと
いうと、そうでもなくて、書き換えると、知ってる内容と違う! と考えるのか、
default browser にする? とまた尋ねてきて、Yes と答えると新しくファイルができる。
まぁ、default browser? に Yes と答えなきゃいいんだけど… どうせ XDG で設定 してあるわけだし…
うん、動いた。常に尋ねるチェック、外しとこ。