Flatpak版Firefoxを使う

Posted by nogajun - 2022/04/27

Ubuntu方面でFirefoxがSnapパッケージで提供されることになって物議を醸していますが、そんな騒動の中、deb版からFlatpak版Firefoxに乗り換えました。

基本的には問題なく利用できますが、KDE環境ではフォントの表示などがデスクトップの設定を反映せず格好悪かったので修正したメモです。

GNOME拡張機能インストール問題などFlatpak版Firefoxにまつわる事は修正メモの下にまとめています。

一部サイトでビットマップフォントが使われる

サイトを見ていると一部のサイトでビットマップフォントが使われて違和感があります。MozillaのBugzillaに報告されているので直ると思いますが、これはfontconfigにビットマップフォント無効を強制すると直ります。

Flatpak版Firefoxのサンドボックス環境設定は、~/.var/app/org.mozilla.firefox/config/以下にあるので、このなかにfontconfigの設定を追加します。サンドボックス環境にfontconfigの設定のフォルダを追加して、fonts.confに設定を書き込みます。

$ mkdir ~/.var/app/org.mozilla.firefox/config/fontconfig/
$ nano ~/.var/app/org.mozilla.firefox/config/fontconfig/fonts.conf

fonts.confには以下の内容を書き込みます。

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
    <!-- Disable bitmap fonts. -->
    <selectfont><rejectfont><pattern>
        <patelt name="scalable"><bool>false</bool></patelt>
    </pattern></rejectfont></selectfont>
    <match target="pattern">
        <test name="lang"><string>ja</string></test>
        <test name="family"><string>serif</string></test>
        <edit name="family" mode="prepend">
            <string>Noto Serif CJK JP</string>
        </edit>
    </match>
    <match target="pattern">
        <test name="lang"><string>ja</string></test>
        <test name="family"><string>sans-serif</string></test>
        <edit name="family" mode="prepend">
            <string>Noto Sans CJK JP</string>
        </edit>
    </match>
    <match target="pattern">
        <test name="lang"><string>ja</string></test>
        <test name="family"><string>mono</string></test>
        <edit name="family" mode="prepend">
            <string>Noto Sans MONO CJK JP</string>
        </edit>
    </match>
</fontconfig>

GTKテーマ設定が反映されない

KDE環境で設定しているGTKテーマとフォントの設定が反映されていないので反映させます。 これはホームの設定~/.config/gtk-3.0/を前述のサンドボックス環境設定が保存されている~/.var/app/org.mozilla.firefox/config/にコピーすればOKです。

$ cp ~/.config/gtk-3.0/ ~/.var/app/org.mozilla.firefox/config/

手で設定するなら~/.var/app/org.mozilla.firefox/config/gtk-3.0/settings.iniに下のような感じで設定を書けばOKです。

[Settings]
gtk-application-prefer-dark-theme=false
gtk-font-name=Noto Sans CJK JP,  10
gtk-theme-name=Breeze

あとで気がつきましたが、It's FOSSの記事のようにoverrideでFlatpak環境全体で上書きするといいのかもしれません。

$ sudo flatpak override --filesystem=$HOME/.themes

Firefox自体のデフォルトフォント設定を変更

これは好みの問題ですが、Linux版FirefoxのデフォルトフォントはIPA Pゴシックです。これは格好悪いので変更します。

Firefox右側のメニューから「設定」を開きます。設定内の「一般」の少し下に「規定のフォント」があるので、「詳細設定」を開きます。これをIPAゴシックからNoto CJKフォントに変更します。

フォント設定


こまごまとしたFirefoxの話

ここから下は、Firefoxについてのこまごまとした話です。

deb版FirefoxとFlatpak版Firefoxの違い

Debian配布版(deb)とFirefox配布版(Flatpakなど)の違いは、DRM(Widevine)の扱いが少し違います。Netflixは大丈夫ですが、AbemaTV(Queendom2、超面白いです)では延々リロードされるので気がつくと思います。この辺の挙動が怪しいのでFlatpak版に乗り換えました。

Debian Stableの場合は、Firefox ESRがインストールされています。最新版を使いたい場合は、Mozillaが配布するFlatpak版やバイナリを使う必要があります。

Flatpak版Firefoxの設定ファイルなど

Flatpak版Firefoxの設定がある場所は以下です。設定を変更する場合の参考にしてください。

  • Firefoxのプロファイル: ~/.var/app/org.mozilla.firefox/.mozilla/firefox
  • Firefoxサンドボックス環境設定: ~/.var/app/org.mozilla.firefox/config

GNOME拡張機能インストールの問題

これを書く前にGNOMEで確認したところ、上に書いたフォントとGTKの問題は無いようです。ですが、Snap版同様にFirefoxからGNOME拡張機能のインストールができません。Flatpakもサンドボックス環境なので、これは仕方ないと思います。

それに対処するなら、FlatpakからExtension Managerをインストールして使うのがスマートだと思います。

gihyo.jpに「Snap版Firefoxを使用しないでやり過ごす」という記事がありますが、拡張機能のためにわざわざブラウザが変えるのでスマートではなく、正直、クッソ面倒くさいのでExtension Managerを使うほうがスッキリすると思います。