テーマは作りすぎるな!
これは長い間テーマを作り続けての経験論なのですが、テーマを作りすぎるのはやめましょう!
Firefoxは現在でも日々進化を行っていますですから当然途中で仕様が変わります
私の経験でも今まで
- Firebird0.6
- Firebird0.7
- Firefox0.8
- Firefox0.9
- Firefox1.0
- Firefox1.5
- Firefox2.0
- Firefox3.0
- Firefox4.0
とバージョンが上がる度に毎度テーマに不具合が出るという経験をしています。正直な話、テーマを作成する以上はこれに付き合う事をある程度覚悟しないといけません
作って入って見れば分かりますが、膨大な行数のcssの解読やアイコンなどの画像の作成等、テーマの作成は結構労力のいる作業です。ですからその内気力が続かなくなります。
とはいえ、Firefox1.5以降あたりからは、開発者側も良心が出てきたのかバージョンが0.1上がるだけで互換性が無くなるなんて言う事態も無くなってきました
2.0以降では、変更箇所の一覧を文書として公開する様になりましたし(2.0の変更箇所、3.0の変更箇所 4の変更箇所)、が大体メジャーアップデート以外では仕様を変更しないのが慣習として定着してきたようです
新バージョンへの対応法
これは我流で見つけた自分なりの方法なのですが、firefoxのバージョンが上がって、自分のテーマに不具合が出たときの対処法です
- まず検索エンジンを頼りに「新バージョンに対応しているテーマ」を探し出します
- それを解凍して、自分のテーマのglobalフォルダのcssファイルを少しづつ上書きしていきます
- 上書きとインストールして表示を繰り返して、不具合の箇所を特定して、そこを修正してしまいましょう
性質の悪い方法ですが開発に携わっていない外側の人間からは、何処をどう変更されたのか分からないのが本音で、それをもれなく探索するというのは実質不可能だったりします。なのでXULの場合firefoxのバージョンがあがって、新しいXULタグが追加されたなんて場合には、開発の外側の人間からは何がなんだか分からないのですから、動く物を持って来て、それを書き換えて利用するのが一番安全だと悟りました(マテ
画像の変更
何処のどれが対応しているのかは、画像ですから、見れば分かると思います。分からない場合はファイル名をコピーして、テキストを全文検索してください。読み込んでいるスタイルシートが出てくると思われます。
あまり解説する必要がありませんね…(汗
テーマの扱われ方
これもバージョンが変わるごとに少しづつ保管場所が変わっていっています。Firefox2.0以降では
- Windows Vista
- C:\Users\[ログイン名]\AppData\Roaming\Mozilla\Extensions\[テーマと同じGUID]\
- Windows 2000/XP
- C:\Documents and Settings\[ログイン名]\Application Data\Mozilla\Profiles\[ランダムな文字列].default\extensions\[テーマと同じGUID]\
のフォルダに入っています。ちなみにFIrefox3.0も同じ設定です。同じフォルダにFirefoxのエクステンションも入っており、テーマとエクステンションは内部的には同じように扱われていることが分かります。
フォルダ名がランダムな文字列で驚くでしょうが、GUIDなので、install.rdfで設定しているGUIDと同じフォルダ名のところを探しましょう
過去のデータ保管箇所ですが。Firefox2.0以降では
- Windows 2000/XP
- C:\Documents and Settings\[ログイン名]\Application Data\Mozilla\Profiles\[ランダムな文字列].default\extensions\[テーマと同じGUID]\
Firefox0.8までは
- Windows 2000/XP
- C:\Documents and Settings\[ログイン名]\Application Data\Mozilla\Profiles\[ランダムな文字列].slt\chrome
また、Firefox0.9~Firefox2.0では
- Windows 2000/XP
- C:\Documents and Settings\[ユーザー名]\Application Data\Mozilla\Firefox\Profiles\default.ouh\chrome
となっています
拡張へのスタイルの当て方
拡張へのスタイルの当て方には大きく2つの方法があって
- 拡張の該当箇所のidを特定して、スタイルフォルダで上書きする
- テーマ内部に、拡張のスタイルフォルダを作成して、そこで設定する
の方法がありますが、基本的には、2の方が最初に考えるべきやり方だと思います
やり方は
- デザインを変えたい拡張(拡張子はxpi)をzipで解凍する
- その中の「skin」フォルダの中身(拡張の内部名と同じフォルダがある)を、テーマのあるフォルダに移動させる
- これのデザインを変更する
- content.rdfにそのフォルダの情報を追加する
とやっていけばデザインの変更がかかります
たくさんの拡張に対応すればするほど、ファイルサイズが拡大する欠点がありますね
テーマのパッケージ化の楽な方法
テーマ作成のとき結構面倒くさいと感じてしまうのが、複数フォルダをzip圧縮して、jarファイルにしてインストールまでの手順。
自分コレどうにか楽が出来ないかと試した結論の一つで、zip圧縮をコマンドなどから行う手段が案外少ない(tar結合とかなら結構多くの言語でライブラリがあるんだけど)
それで色々と探してみたところ、なでしこがコレに対応しておりまして、今はこれを使って圧縮をやっています(習得に1時間かからなかった…)
# 複数フォルダをzipに一括圧縮します。ファイル名をz_crome.nakoにしてね
クロムは「browser
global
help
mozapps
contents.rdf
icon.png
install.rdf
preview.png
」
クロムを「z.zip」へ圧縮。
終了する。
あとは、リネーム等はコマンドを書き連ねてbatファイルにしてしまえば、楽に…
# 面倒くさいテーマのパッケージ化をクリックだけで解決。これをテキストに貼り付けて拡張子を.batにしてね
z_chrome.nako
del z.jar
ren "z.zip" "z.jar"
# copy "z.jar" "skinのインストールされているパス" # skinインストールパスを設定できれば行最初の"#"を外してください
これで、テーマのパッケージ化からインストールまでをクリック1回でできます。最後にFirefoxを再起動しないと表示確認できないのが辛いところですが…
(install.rdfやcontents.rdfを書き換えた場合も、この方法で上書きしてしまえばよいです)
参考リンク
- Mozilla Firefox:テーマ開発者へのドキュメント
- Tatsuo's Works:Firefox/Thunderbird 用テーマのパッケージングについて
- Mozilla Japan:Firefox/Thunderbird 用テーマのパッケージングについて
- XULチュートリアル
- XUL チュートリアル(和訳)
- Writing Themes(英語)
- MozillaZine Forums - Theme Development
- XULリファレンス
- XULPlanet 日本語版
- XUL チュートリアル(和訳) XUL Planetミラー
- XUL リファレンス(英語)
- Repy's side:Firefoxのテーマ作成
- 5.2ch:おいお前ら、ネスケのテーマを作りませんか?
- 2ch:おいお前ら、ネスケのテーマを作りませんか?
- ブラウザ改造 : Netscape6.1/Mozillaのリロードボタンを好きな画像に変えてみる
- さいたま皮:Netscape/Mozilla用 簡易テーマ
- Creating a Skin for Mozilla
- "small_modern"をこっそり配布してみる試み-Trial to distribute small_modern for mozilla-
- Mozilla.org:Mozilla のカスタマイズ
- Ancient library:about Mozilla
- Mozilla.prg:Mozilla 1.4 のインストール方法
Narrow Classic"modern"のツールバーボタンを小さくしてみる試み-Trial to make small modern-FirefoxまとめサイトWEB ARCHIVES:Mozilla1.0 のテーマ作成