.vimperatorrcをいじってステータスバーにバッテリ残量と日付を表示するようにした(Vimperatorバージョン 1.1 on Firefox 3.0.1 on Linux)。バッテリの方はLinux限定。

参考


バッテリの残量はsmapiというものが入っているなら /sys/devices/platform/smapi/BAT0/remaining_percent をcatすればわかる(ディストリビューションによって違うかもしれないけど)。Vimperatorではliberator.io.readFileすればよいらしい。というわけで以下を.vimperatorrcに追加した。

:javascript << EOF
(function(){
  var battery_interval_sec = 180;
  var battery_status = document.createElement('statusbarpanel');
  battery_status.setAttribute('id','battery-status');
  document.getElementById('status-bar').insertBefore(battery_status, document.getElementById('security-button'));
  setTimeout(function(){
    battery_status.setAttribute('label', '[' + liberator.io.readFile('/sys/devices/platform/smapi/BAT0/remaining_percent') + '%]');
    setTimeout(arguments.callee, battery_interval_sec * 1000);
  }, 1000);
})();
EOF

battery_interval_secは表示を更新する間隔(秒)で、上だと180秒、つまり三分に一回表示が更新される。

なんだかうまくいったので調子にのって日付も表示してみた。いままでFoxClocksというやつを入れて日付を表示していんだけど、自前でやれるならそっちの方がいいかな、と。というわけで以下を.vimperatorrcに追加した。

:javascript << EOF
(function(){
  var date_interval_sec = 60;
  var my_date = document.createElement('statusbarpanel');
  my_date.setAttribute('id','my_date');
  document.getElementById('status-bar').insertBefore(my_date, document.getElementById('security-button'));
  setTimeout(function(){
    d = new Date();
    de = [d.getMonth()+1, d.getDate(), d.getHours(), d.getMinutes()].map(function(e){return e < 10 ? '0'+e : e});
    my_date.setAttribute('label', de[0]+'/'+de[1]+' '+de[2]+':'+de[3]);
    setTimeout(arguments.callee, date_interval_sec * 1000);
  }, 1000);
})();
EOF

date_interval_secは日付を更新する間隔(秒)で、上だと60秒、つまり一分に一回表示が更新される。date_interval_secを1にして

    d = new Date();
    de = [d.getMonth()+1, d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds()].map(function(e){return e < 10 ? '0'+e : e});
    my_date.setAttribute('label', de[0]+'/'+de[1]+' '+de[2]+':'+de[3]+':'+de[4]);

とかすると秒も表示されて毎秒更新される。しかしなんだか無駄な気がしたので分までの表示にしておいた。