2007-07-09

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 でもイケた。 

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm