vimp使いはuserChrome.cssを使うことなかれ。stylechanger.jsを使え!

Vimperator 2.0あたりからカラースキームや:style,:highlightコマンドがあるため、stylechanger.jsも既に古いものである。

少々タイトルが扇情的であるが...。
vimperator系の記事を見ていると、userChrome.cssを使ってスタイルを編集している人が多そうなので改めてstylechanger.jsを紹介しておこうと思う。

stylechanger.jsの機能

  1. colo[rschema]コマンドにより、cssファイルの適用
  2. hi[ghlight]コマンドにより、一時的(簡易的)なスタイルの適用
  3. altcolo[rschema]コマンドにより、代替スタイルシートへの変更

の3つある。
といっても、まぁ重要なのはcolorschemaコマンドくらいだ。

なぜuserChrome.cssではいけないか

いけなくはないけど、以下の欠点がある。

  • 更新を適用するためにFirefoxの再起動が必要
  • profDir/chromeディレクトリが遠い
  • 起動中にスタイルの適用を止めることができない

二番目はオイラの怠慢かもしれないが、一番目は致命的。おっとちょっと失敗、書き直して再起動...なんて面倒過ぎる。

stylechanger.jsのばあい

以下の利点がある

  • コマンドによりリロード可能
  • ロードされいているものの取りやめが可能
  • $HOME/.vimperator/colorsと比較的アクセスしやすい

これによりちょこっと修正して即リロードで変化を確かめることが可能
また以下の欠点がある

  • Firefox標準でない
  • Vimperator標準でない*1

あと、以下2つルールがある

  • $HOME/.vimperator/colorscssファイルを置く必要がある*2
  • vimp起動時に自動でcssを読み込むにはlet g:styles = "file,comma,list"とカンマ区切りでファイル名を指定する必要がある

使用例

$HOME/.vimperator/colors/hoge.cssを例に使い方

  1. userChrome.cssと同様にCSSファイルを作る。
  2. :colorschema(引数無し)で$HOME/.vimperator/colors/にあるcssファイルのリストを確認(*印があるものは既にロードされているもの)
  3. :colorschema hogehoge.cssをロード
    既にロードされているばあいリロードとなる

適用を止めたいときは

  • :colorschema! hoge

!を付けると取りやめることが出来る

オイラのcssファイル

あまり弄ってないけど紹介しておくよ

$HOME/.vimperator/colors/vimperator.css

@charset "utf-8";
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
/*
 * compact statusbar
 */
#status-bar statusbarpanel {
  padding: 0 1px !important;
}
statusbarpanel > * {
  margin: 0 !important;
  padding:0 !important;
}

$HOME/.vimperator/colors/bookmarkstoolbar.css

@charset "utf-8";
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

#bookmarksBarContent toolbarbutton[type="menu"] > .toolbarbutton-icon {
    display:none;
}
#bookmarksBarContent toolbarbutton[type="menu"] > .toolbarbutton-text {
    padding: 0 4px;
}
#bookmarksBarContent toolbarbutton[image*="moz-anno:favicon:"] .toolbarbutton-text {
    display:none !important;
}
label#btUrlText { display: none; }

そんな感じでCSSをよく弄る人にはuserChrome.cssより利便性が高いと思うんで、stylechanger.jsをよろしく!

*1:colorschema,hightlightコマンドは別のかたちでvimpに取り込まれる可能性がある

*2:vimと似せている