有馬総一郎のブログ

(彼氏の事情)

2023年06月15日 08:12:44 JST - 4 minute read - Comments - Linux

既定のブラウザを`Flatpak`でインストールしたFirefoxに切り替える

以前、 open.Yellow.osレビューをしたとき、Firefoxが ESR版なのが残念だなぁ、と感想述べたが、flatpakでインストールすれば良いじゃないか、ということでやってみた。

プリインストールしているESR版で設定とかを、既にしてしまっていたので、出来ることなら(多少の不具合は目を瞑って)、そのまま移行させたい。ということで、Firefoxのプロファイルが保存されている.mozillaディレクトリをflatpak環境下にシンボリックリンクとして貼る。

$  mkdir ~/.var/app/org.mozilla.firefox
$  ln -s ~/.mozilla ~/.var/app/org.mozilla.firefox/.mozilla

Firefox | Flathub1flatpak --user install flathub org.mozilla.firefoxでインストール。

すると、/.mozilla/firefox/profile.iniは以下のようになった。インストールされたfirefoxが複数であっても対応できるようになっているんだね。当たり前か、 Firefox Developer Editionとかも、あるしな。

~/.mozilla/firefox/profile.ini

[Profile1]
Name=default
IsRelative=1
Path=0jw87gfr.default
Default=1

[InstallCF146F38BCAB2D21]
- Default=cmi2p0ty.default-release
+ ;Default=cmi2p0ty.default-release
+ Default=ouq3u441.default-esr
Locked=1

[Profile0]
Name=default-esr
IsRelative=1
Path=ouq3u441.default-esr

[Install3B6073811A6ABF12]
Default=ouq3u441.default-esr
Locked=1
50
[General]
StartWithLastProfile=1
Version=2

Install3B6073811A6ABF12がESR版で、InstallCF146F38BCAB2D21がFlatpak版。なので、そこのDefaultを変更。そして、起動。バージョンが当然、ESR版と安定最新版で102.11.0esr114.0.1とバージョン違うが、問題なく?Flatpak版のfirefoxでも再設定することなく使えている。

Firefox ESR
102.11.0esr
Firefox Flatpak
114.0.1

本当はバージョン合わせてインストールして、切り替えたのちに、flatpak updateした方が本当は良いだろうとダウングレードのやりかたを調べてみたところ…

Is there a way to install a specific version? · Issue #3097 · flatpak/flatpak · GitHub

$ flatpak remote-info --log flathub  org.mozilla.firefox
        ID: org.mozilla.firefox
       Ref: app/org.mozilla.firefox/x86_64/stable
      Arch: x86_64
    Branch: stable
Collection: org.flathub.Stable
  Download: 90.1 MB
 Installed: 251.0 MB
   Runtime: org.freedesktop.Platform/x86_64/22.08
       Sdk: org.freedesktop.Sdk/x86_64/22.08
・・・省略・・・
    Commit: b72d75a3276aaaf1185900565ae42c18662d068c92003630529c774d2e5c4b9e
   Subject: Export org.mozilla.firefox
      Date: 2022-11-15 13:42:17 +0000
$ flatpak update --commit=b72d75a3276aaaf1185900565ae42c18662d068c92003630529c774d2e5c4b9e org.mozilla.firefox

みたいにやれば2022-11-15のものをインストールできるみたいだけど、アプリバージョンで言うところの…というのは分からないので、コミット日時でバージョンのあたりを付けるしかない(大体コミットのタイミングはバージョンの更新時だろうが)。

また、flatpakの特性上、最新版をインストールすることなので履歴を余り残してないらしい。firefoxにしても2022-11-15が最古らしく、日時で特定するに Firefox 107を正式リリースらしく、102の頃のは無いようだった。

ともあれ

sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser ~/.local/share/flatpak/exports/bin/org.mozilla.firefox 80でデフォルトブラウザとして設定した。

これでヨシ!と思ったら、Thunderbirdや他のアプリケーションからURLをクリックしてブラウザを立ち上げると、Firefox is already running, but is not responding. To use Firefox, you must first close the existing Firefox process, restart your device, or use a different profile.というエラーメッセージが表示される。

UbuntuのFirefoxで、”Firefox is already running but is not responding” が出たときの対処法などで調べるとロックファイル2があるから。よくよくエラーメッセージが表示させているアプリケーションの名前を見るとESRの文字が。つまりFlakpak版Firefox起動しているのに、同じプロファイルを参照するESR版を起動させようとエラーになっている。

どうやら、sudo update-alternativesで最優先、もしくは手動選択してもGUIでの既定ブラウザになっていないようで、GNOMEメニューから設定 -> 既定のアプリケーションで変更してやらないと駄目なようだ。

既定のアプリケーション

コマンドでは xdg-utils - ArchWikiを使ってやる3

$ xdg-settings --list
Known properties:
  default-url-scheme-handler    Default handler for URL scheme
  default-web-browser           Default web browser
$ xdg-settings set default-web-browser firefox.desktop
$ xdg-settings get default-web-browser
org.mozilla.firefox.desktop

これで、他のアプリケーションからURLをクリックしてもちゃんとFlatpak版Firefoxが起動されるようになった。


  1. 認証済みとある。アプリケーションID org.mozilla.firefoxの所有権は、flathubのスタッフによって手動で認証されました。dropboxなどは付いてないけど、どういう意味だろうか?flathubスタッフが認証したかどうかであって、公式が認定したかは関係ないのかな? ↩︎

  2. ロックファイルは~/.mozilla/firefox/wk6oio1u.default-release/.parentlockとプロファイルの中にある。wk6oio1u.default-releaseは私のケースなので、環境毎に事なる。 ↩︎

  3. ESR版だとxdg-settings get default-web-browserの結果はfirefox-esr.desktopとなる。 ↩︎