画面を狭くしたら自動でツリー型タブを隠す

2015-01-28 追記

以下のスクリプトは今は使ってない。 フルスクリーンに対応できない点に気づいたため。 まあ、一番下に書いた手動で開閉するコマンドをマッピングしておけば困ることがほとんどない。


ツリー型タブを愛用しているのだけど、よくwin+矢印で画面を半画面にするときに開きっぱなしだと不便なので、画面が狭くなったら自動で隠れるようにした。

以下、vimperatorを使っている前提(もちろんfirefoxを使うということはvimperatorを使うということなので大丈夫だと思うが)

とりあえず、以下のスクリプトvimperatorrcの一番下にでも追記すれば動く。

js <<EOM
var timer=false;
window.addEventListener('resize',function () {
  if(timer !== false) {
    clearTimeout(timer);
  }
  timer = setTimeout(function() {
    if(window.outerWidth < 700) {
      if(TreeStyleTabService.isAutoHide == 0)
        TreeStyleTabService.toggleAutoHide();
    }
  },30);
},false);
EOM

画面のリサイズイベントを取得し、windowサイズが700px以下なら閉じるようにしている。 またリサイズイベントは連続して起きるのでsetTimeoutを使って処理を遅延起動させている。 もっと広い範囲から隠すようにしたかったら700を適当な数値に変更すればいい。

またvimperatorrcに以下のキーマップを設定すれば手動でツリー型タブを開閉できる。

nnoremap e :js<Space>TreeStyleTabBrowserAutoHide.toggleMode();<CR>