simple-web-system technology

Webに関する技術をシンプルに扱うブログ

Linuxでfirefoxの起動が遅いのを解消する(gnome以外で)

結論

gnome以外でfirefoxnautilus起動時に、xdg-desktop-portalがxdg-desktop-portal-gnomeと通信しようとしてタイムアウトまで待っている。

gnome以外では以下の設定のどれかを行うと、xdg-desktop-portalがxdg-desktop-portal-gtkと通信して素早く起動する

1. xdg-desktop-portal-gnomeをmaskする

以下のコマンドからxdg-desktop-portal-gnomeをmaskするとxdg-desktop-portalタイムアウトまで待たずに諦めてxdg-desktop-portal-gtkと通信するので、素早く起動する。 一番手っ取り早い。

systemctl --user mask xdg-desktop-portal-gnome

gnomeへの影響を考えたけど、gnomeはあまり使わないし、gnomeで起動した感じ大丈夫そうだった。

2. XFG_CURRENT_DESKTOP=GTKを設定する

terminalで個別に起動するときに使う

env XDG_CURRENT_DESKTOP=GTK firefox

ドキュメントによるとXFG_CURRENT_DESKTOPに設定された大文字の文字列を小文字に変換して、自作設定ファイルがない場合だと、/usr/share/xdg-desktop-portal/[DESKTOP]-portals.confの[DESKTOP]部分を置換してできるファイルを設定として使うらしい。 github.com

経緯

最初に以下の記事を見つけた

qiita.com

この記事によるとxdg-desktop-portal-gnomeを削除すればいいということだけど、それだとgnomeにも影響が出そうなので、どのようにしてxdg-desktop-portal-gtkと通信するか調べた。

ただ、manもないっぽいし、ArchWikiとか検索しても何も出てこなかったのでgithubからコードのドキュメントを見たらいい感じに出てきた。

ここに簡単に対応するバックエンドサービスが書いてある

github.com

ここに詳細なドキュメントがあった。

github.com

余談

以下のドキュメントを参考に~/.config/xdg-desktop-portal/portals.confに設定を置いたけど全然早くなんない

github.com

configファイルの探索とサービス間の通信によるものなのかなぁ・・・

教訓

ちゃんと元のコードやドキュメントを見ましょう。