GNOME Shellのアクティビティ画面からFirefoxの検索ができるようになれば便利かと思ったけどそうでもなかった


タイトルのとおりで、某誌(バレバレですが)の原稿を書きながらふとGNOME Shellのアクティビティ画面からFirefoxの検索ができると便利だな、むしろWeb(旧名Epiphany)でできるのであればFirefoxでもできるんじゃないかな、と思ってまずはGNOME Shellの拡張機能を調べてみたけどヒットせず。

検索するとコミットログが見つかったので技術的には可能であることがわかり、めんどくさくなって全部は読まなかったけどとりあえずDBusは必要そうなことはわかりました。

更に検索するとFedoraでの適用例が見つかったので、おおと思ってfirefox-search-provider.iniがあるかと調べてみたらなく、とりあえずビルド環境を作ってDBusが有効になっているかどうかを調べつつパッケージ化が可能か調査することにしました。

よくよく考えてみると今までFirefoxってビルドしたことがなかったかも……と思ってビルドしてみるとなかなか終わらず、うちのRyzen 7 3700Xでも45分くらいかかりました。けっこうでかいですね。

debianフォルダー以下を見て設定を上書きすることもできそうだったので実際にやってみました。パッチは次のとおりです。

diff -Nru firefox-82.0.3+build1/debian/changelog firefox-82.0.3+build1/debian/changelog
--- firefox-82.0.3+build1/debian/changelog	2020-11-09 23:32:13.000000000 +0900
+++ firefox-82.0.3+build1/debian/changelog	2020-11-12 20:42:43.000000000 +0900
@@ -1,3 +1,11 @@
+firefox (82.0.3+build1-0ubuntu0.20.10.2~ppa1) groovy; urgency=medium
+
+  * Add GNOME Shell Search Provider support.
+    - debian/firefox.install
+    - debian/vendor-firefox.js
+
+ -- Ikuya Awashiro <[email protected]>  Thu, 12 Nov 2020 20:42:43 +0900
+
 firefox (82.0.3+build1-0ubuntu0.20.10.1) groovy; urgency=medium
 
   * New upstream release (82.0.3+build1)
diff -Nru firefox-82.0.3+build1/debian/firefox.install.in firefox-82.0.3+build1/debian/firefox.install.in
--- firefox-82.0.3+build1/debian/firefox.install.in	2020-09-22 01:39:44.000000000 +0900
+++ firefox-82.0.3+build1/debian/firefox.install.in	2020-11-12 20:41:33.000000000 +0900
@@ -37,3 +37,6 @@
 debian/syspref.js etc/@MOZ_PKG_NAME@
 
 debian/usr.bin.@MOZ_PKG_NAME@ etc/apparmor.d
+
+browser/components/shell/search-provider-files/firefox-search-provider.ini usr/share/gnome-shell/search-providers/
+
diff -Nru firefox-82.0.3+build1/debian/vendor-firefox.js firefox-82.0.3+build1/debian/vendor-firefox.js
--- firefox-82.0.3+build1/debian/vendor-firefox.js	2020-09-22 01:39:44.000000000 +0900
+++ firefox-82.0.3+build1/debian/vendor-firefox.js	2020-11-12 20:42:40.000000000 +0900
@@ -8,3 +8,6 @@
 // Don't display the one-off addon selection dialog when
 // upgrading from a version of Firefox older than 8.0
 pref("extensions.shownSelectionUI", true);
+
+// GNOME Shell Search Prover Support
+pref("browser.gnome-search-provider.enabled", true);

このパッチを適用してビルドして起動するとこんな感じです。

動作例

このようにとりあえず動作はしたのですが、

  • Firefoxが起動していないと検索できない
  • 複数のキーワードを指定できない
  • 日本語の検索ができない

以上の理由で全く便利になる気がしませんでした。

DBusを経由するのでFirefoxの起動が必須なのはある意味当然なのですが、Web(旧名Epiphany)では別に起動していなくても検索できます。ついでに複数のキーワードも指定できます。

というわけで検索したいだけなら素直にWeb(旧名Epiphany)をインストールするのがいいという結論になりましたが、いまどきWebブラウザーが起動していないなんてことはありえないので直接検索すればいいですよね。

英語で戦うほどの気力がなくなったのでボツに。ここに供養します。