user.js creator ってないんかな

あるいは Mozilla アプリのデフォルトの設定を変更する方法。この日の日記は実際には 7月10日に書いています。

Mozilla アプリで同じ設定をバラまきたい

Mozilla アプリの設定ダイアログとか about:config で「デフォルトから変更したものだけ」を抽出して user.js に書き出してくれるものってないかなぁ。

何に使うかというと、

同じ設定の Mozilla アプリを大量に deploy したい

っちゅーことなんですが。prefs.js 直書きしてってもいいんだけど、できれば設定変更してほしくないものを user.js の方に書いておきたいということで、その特定の設定だけ user.js に書き出してほしいわけ。もしくはアカウントごとの設定の部分なんかもうまい具合にスクリプトとかで対処できるといいな。つかスクリプト書けってか。うーん。Mozilla の profile データの扱いを wrap してくれるライブラリがほしいな。

というかそもそも、prefs.js や user.js を使う以外にいい方法あるのかな? Mozilla.org な人たちには何かノウハウあるんやろか。

Mozilla の環境設定への簡単なガイド

システム管理者はもうひとつの方法として user.js ファイルを app_dir/defaults/profile/ に置くことができます;こうすると user.js のコピーを新しいプロファイル全てに置くことになります。 この方法には、スタートアップのたびに環境設定をシステム管理者によって設定された デフォルトにリセットできるという利点があります。それには注意が必要です。 通常ユーザは自分のプロファイル・ディレクトリにアクセスする権限をもっているので、 方法を知っていればデフォルト値を変更できるのです。 もう一つ不利な点としては、既存のプロファイルには効果がないことが挙げられます。

ほっほー。これならユーザーが変わって新しくプロファイルを作るときにもデフォルトの値が反映される。これはいいな。

あとはできるだけ楽に user.js を作成する方法と、アカウントごとの設定を「うまい具合1」にする方法が分かればいいんだな。後者は結構難しそうだけど。

例えばアカウント独自の設定項目について、どのアカウントでもこの設定にしたい、っていうのをサクッと実現するにはどうしたらいいんだろ?

mail.identity.default.*

こんな設定項目があるな。これか。これっぽいな。

ついでに、

mozdev.org - mozptch: index

なんてものも見つけたけど、基本的に Windows でしか動かないし、どうも思っていたものと違うような気がする。というか最初の入力以降はうまく動かなかったんだけど。

実際にやってみた

今回やりたかったのは Thunderbird. HTML メールを送るなとか、開封確認に答えるなとか、そういう設定を毎回やるのは面倒なので、デフォルトを書き換えようと思い立った。散々探したけど便利ツールはないっぽいので、

Thunderbird Help: プロファイルの管理

を参考2に、地味に

  1. 2つ新しいプロファイルを作って
  2. 片方を好みの設定に変更し
  3. prefs.js の diff を取ってコピペ、必要ならオリジナルの設定項目名 .*\.default\..* などを推測

という方法になりました。user.js で固定しなくてもよい項目もあったので、

defaults
|-- pref
|   `-- all.js   ← prefs.js になる
`-- profile
    `-- user.js

に書いたところ、予想通りに反映されるようになりました。spam の設定はヘッダを利用する項目がサーバの方にあるらしく、

  • mail.identify.default.*
  • mail.server.default.*

の辺りに書いておくといろいろ楽になるようです。奥が深い。ただ、当初の予想に反してスクリプトはまず書かなくてもいいので、そこはよかった。

  1. いいが 

  2. OSX は option + ダブルクリックではなかったけれど、thunderbird-bin -p でも thunderbird-bin -profilemanager でもイケた。 

More