トップ «前の日記 最新 次の日記»

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.desktopExec= 行を書き換えればいいかと いうと、そうでもなくて、書き換えると、知ってる内容と違う! と考えるのか、 default browser にする? とまた尋ねてきて、Yes と答えると新しくファイルができる。

まぁ、default browser? に Yes と答えなきゃいいんだけど… どうせ XDG で設定 してあるわけだし…

うん、動いた。常に尋ねるチェック、外しとこ。


編集 パスワード変更