Firefoxのテーマ(ペルソナ)を別プロファイルへ移行・インポートする方法
今回は少し変わった話題です。複数のデバイスでFirefoxを使っていて、サインインも同期機能も有効にしていないとしましょう。さらに、プロファイルも複数持っています。それでもあなたにはこだわりがあって、ブラウザでいくつかのペルソナ(軽量テーマ)を使っているかもしれません。その中にはすでにダウンロードできなくなったものもあり、別のプロファイルへ移行したいと考えていることでしょう。
拡張機能などのプロファイル内容の一部をコピーしてみても、うまくいきませんでした。プロファイル全体をクローンすれば解決しますが、それは望んでいることではありません。必要なのは特定のテーマだけです。一見すると方法がないように思えます。さて、どうすればいいのでしょうか?

問題の詳細
数週間前、私はFirefox 57のリリース前に、Firefox ESRではなくFirefox 54(Australisモード)を使って時間を費やし、今後登場する非常に紛らわしく、多くの人が懸念していたWebExtensionsへの移行が、予想通りに厄介なことになるのかどうかを確かめようとしていました。今はそれは本題ではありません。あくまで前置きです。
テスト中に、いくつかの新しいテーマも試しました。Mozilla公式のCompact LightやCompact Dark(従来型の使い方への配慮が感じられるもの)などですが、ブックマークツールバーがタブバーの下に配置され、メイン表示領域に近すぎて視覚的にごちゃごちゃするなど、まだ大きな欠点がありました。さらに、「Space Fantasy」というテーマも試してみましたが、こちらはなかなか良い印象でした。




ところが、別のデバイスではSpace Fantasyテーマがうまく動作しなかったため、削除してしまいました。すると、Firefoxの利用可能なテーマ一覧から消え、しかもMozillaのアドオンサイトでも見つかりません!本来ならそこにあるはずなのに、存在しないのです。そこで、別のシステム上の別のプロファイルから移植するという問題が浮上してきました。

ペルソナをプロファイル間で移動する方法
このテクニックのポイントは、ペルソナが他の場所で入手できない場合に、どうやって手に入れるかということです。実はこれはシンプルな要求です。テーマをインストールしたのなら、Firefoxのプロファイル内で見つけられるはずだからです。その方法をご紹介しましょう。まず、フルテーマとライトテーマ(いわゆるペルソナ)の違いを整理しておきます。このトピックについては、ずっと以前にも取り上げたことがあります。
フルテーマは、プロファイルフォルダー内の「extensions」サブディレクトリに格納されています。プロファイルの場所はOSによって異なります。Windowsの場合は以下のパスにあります:
C:\Users\<ユーザー名>\AppData\Roaming\Mozilla\Firefox\Profiles\<プロファイル名>
Linuxの場合は以下です:
/home/<ユーザー名>/.mozilla/firefox/<プロファイル名>
※デフォルト設定を前提としたパスです。

一方、ペルソナはプロファイルフォルダー内のprefs.jsファイルの中に、設定の宣言として記録されています(上のスクリーンショット参照)。このファイルの該当セクションを見てみましょう:

...
user_pref("lightweightThemes.selectedThemeID", "recommended-2");
user_pref("lightweightThemes.usedThemes", "[{\"id\":\"recommended-2\",\"name\":\"Space Fantasy\",
\"headerURL\":\"resource:///chrome/browser/content/
browser/defaultthemes/2.header.jpg\",
\"footerURL\":\"resource:///chrome/browser/content/
browser/defaultthemes/2.footer.jpg\",
\"textcolor\":\"#ffffff\",\"accentcolor\":\"#d9d9d9\",
\"iconURL\":\"resource:///chrome/browser/content/
browser/defaultthemes/2.icon.jpg\",
\"previewURL\":\"resource:///chrome/browser/content/
browser/defaultthemes/2.preview.jpg\",
\"author\":\"fx5800p\",\"description\":\"Space Fantasy is (C) fx5800p. Available under CC-BY-SA. No warranty.\",
\"homepageURL\":\"https://addons.mozilla.org/
firefox/addon/space-fantasy/\",
\"version\":\"1.0\"},
{\"id\":\"recommended-4\",\"name\":\"Pastel Gradient\", ... }]");
...
一見すると複雑で醜く見えます(読みやすさのために意図的に改行を入れている点にご注意ください!)。しかし、何が書かれているのかを順に理解していきましょう。ここには複数のユーザー設定(user_pref)が含まれています。最初のlightweightThemes.selectedThemeIDは、どのテーマがアクティブかを定義しています。ここまではシンプルです。
2つ目のlightweightThemes.usedThemesは、現在システムに登録されているテーマのカンマ区切りリストです。「ツール > アドオン > テーマ(外観)」からも同じ内容を確認できます。リストはJSON風の形式で書かれていますが、難しく考える必要はありません。

ペルソナをあるプロファイルから別のプロファイルへ移行したい場合は、この宣言の一部をコピーして、移行先のプロファイルに貼り付けるだけでOKです。具体的には、Space Fantasyペルソナをコピーすることになります。各テーマは波括弧({})で囲まれたブロックとして定義され、テーマ同士はカンマで区切られています。少し整形したセクションは次のようになります:
{\"id\":\"recommended-2\",
\"name\":\"Space Fantasy\",
\"headerURL\":\"resource:///chrome/browser/content/browser/->
-> defaultthemes/2.header.jpg\",
\"footerURL\":\"resource:///chrome/browser/content/browser/->
-> defaultthemes/2.footer.jpg\",
\"textcolor\":\"#ffffff\",
\"accentcolor\":\"#d9d9d9\",
\"iconURL\":\"resource:///chrome/browser/content/browser/->
-> defaultthemes/2.icon.jpg\",
\"previewURL\":\"resource:///chrome/browser/content/browser/->
-> defaultthemes/2.preview.jpg\",
\"author\":\"fx5800p\",
\"description\":\"Space Fantasy is (C) fx5800p. Available ->
-> under CC-BY-SA. No warranty.\",
\"homepageURL\":\"https://addons.mozilla.org/firefox/addon/->
-> space-fantasy/\",
\"version\":\"1.0\"}
P.S. デスクトップユーザーの皆さんへ:「->」という記号は筆者が付け加えたもので、その記述が次の行に続いていることを示しています。参考までに言えば、これは単なるkey:valueペアの羅列で、要素はカンマで区切られ、特殊文字は明示的にエスケープされています(引用符「"」は「\"」と表記)。醜くてマニアックな形式ですね。
それでは手順です。まず移行元のFirefoxプロファイルを開き、prefs.jsファイルを開いて、lightweightThemes.usedThemesセクションへ移動します。そこから別のプロファイルへ移行したいテーマを見つけ、該当部分をテキストファイルとしてどこかに保存しておきましょう。必要なセクションは波括弧で始まり波括弧で終わり、上記のような各フィールドが含まれています。私の例のように改行されておらず、実際には1つの非常に長い行になっている点に注意してください。
続いて移行先のプロファイルでprefs.jsファイルを開き、lightweightThemes.usedThemesセクションへ移動します。そこで、保存しておいたテキストを行の先頭または末尾に挿入します。このとき、構文が崩れないよう細心の注意を払ってください。角括弧と波括弧の開閉位置、そしてカンマの有無と位置を必ず確認しましょう。
Firefoxを起動すると、移行先のプロファイルに不足していたペルソナが表示され、自由に適用できるはずです。軽量テーマが突然消えてしまったときや、オンラインで見つけられないときに役立つ、実用的なテクニックです。
まとめ
いかがだったでしょうか。正直、かなりマニアックな内容でした。しかし、prefs.jsはFirefoxにとって喜びと苦痛と発見の源となるファイルです。HTMLやCSSの知識が少しでもあれば、Linuxのデスクトップテーマのように、ブラウザの見た目や挙動を自分好みにカスタマイズすることも可能になります。突拍子もない話に聞こえるかもしれませんが、それが現代の世界というものです。JSONは現代の煉獄だと言ってもいいでしょう。
こうした哲学的な話はさておき、この記事が皆さんの役に立てば幸いです。ペルソナは時として忽然と姿を消すことがあり、再び使えないとなると頭を抱えたくなります。特に、Firefoxには異なるプロファイル間でテーマを移行・インポートする簡単な方法が用意されていないのですから。このガイドが、その回避策としてお役に立てば嬉しい限りです。最も簡単で美しい方法ではありませんが、目的は確実に達成できます。それでは、またお会いしましょう。
-
Firefox 91以降でProton UIを元に戻す方法!userChrome.cssによる見た目の復元ガイド
Firefox 91がリリースされました。このバージョンアップが何を意味するのかご存じでしょうか。実は、Firefox 91からはabout:config経由でProtonインターフェースを無効化できなくなったのです。なぜこれが大きな問題なのか?答えはシンプルで、ProtonのUIが非常に使いにくいからです。 少し振り返ってみましょう。Mozillaはこれまで何度もFirefoxのUI変更を行ってきましたが、今回正式採用されたのが「Proton」と呼ばれるデザインです。その見た目が決して優れているとは言えないことは、以前ご覧いただいた通りです。Firefox 89でProtonが標準になった当
-
Firefoxで古いプロファイルを再利用する方法|「古いバージョン」警告の回避策
ブラウジングにおいて価値のあるものといえば、何よりもユーザーのブラウザプロファイルです。時間をかけて、拡張機能、ブックマーク、UIのカスタマイズなど、膨大なデータが蓄積されていきます。そして時折、新しいPCを購入したり新しいOSをセットアップしたりする際に、既存のFirefoxプロファイルを引き継ぎたいと思うことがあるでしょう。何年もかけて築き上げたブラウジングの習慣や情報を失いたくないからです。プロファイルの移行にはFirefox Syncを使う方法もありますが、オンラインサービスが登場する前から存在し、確実に動作してきたのがシンプルな「コピー&ペースト」です。古いFirefoxプロファイル