-- Firefox 3.6 --

FirefoxのアドオンVimperatorをインストールすると
タブバーだけになる。
ということは、タブ非表示は推奨していないのか!?

少しでも広く画面を使いたい。
しかし、タブを消してしまうと、[n/n]を見たり、bufferを操作したり
なんせ、直感できないし、使いやすいとはとても言えない。
縦タブを使ったり、標準のタブに戻したりと、
タブバーを消せずに今まで使ってきた。

今日はついに、タブバーを消した。



buftabs.jsというステータスラインにタブを表現してくれる
素敵なプラグインがあった。
これならタブバー非表示でいけそうだ。



少し快適にする為に、buftabs.jsに手を加えてみた。


まず、今まで表示されていたステータスラインの一部に、
がっつり上書きされてしまうので、
URLや読込中のメッセージをコマンドラインへ表示させるようにします。
buftabs.jsファイルの
// Get title の後のif・else内に追加します。つまり、

if (browser.webProgress.isLoadingDocument)
{
   tabvalue = "Loading...";
} else {
   tabvalue = browser.contentTitle || "Untitled";
}

と書かれているのを

if (browser.webProgress.isLoadingDocument)
{
   tabvalue = "Loading...";
   liberator.echo(statusline._statusBar.childNodes[2].label,2);
} else {
   tabvalue = browser.contentTitle || "Untitled";
   liberator.echo(buffer.URL,2);
}

に更新。
もし、タブにプログレスバーの値を表示させたいなら、
そこへ書いてもいいかもしれない。

ステータスリンクもステータスラインからコマンドラインに変えておこう。
ここだけ.vimperatorrcファイルを触ります。

set showstatuslinks=2

を追加します。



すこし書式を変えてみる。
結果こんな感じ。
$tkseehさんのブログ-statusline

未ロードやblankページはUntitledと表示されるが、
:buffersでは(無題)なので、そう変えてみた。
"無題"は、16進数コード表記で"\u7121\u984C"なので
"Untitled"を"(\u7121\u984C)"に変更。
なんとなく
[1-hogehoge] [2-hogehoge]
より
\1:hogehoge/ \2:hogehoge/
と、スラッシュでタブっぽく見えるので変更、
ついでに長いタイトル必要ないので常にカット。
アクティブなタブに*でも付けてみた。
%の方がいいかなー
// Brackets and index の付近

tabvalue = "["+(label.tabpos+1)+"-"+tabvalue+"]";

と書かれているのを

if (tabs.index() == label.tabpos)
   tabvalue = "\\*"+(label.tabpos+1)+":"+tabvalue.substr(0, 14).replace(/\s/g,"")+" //";
else
   tabvalue = " \\ "+(label.tabpos+1)+":"+tabvalue.substr(0, 14).replace(/\s/g,"")+" /";

に更新。



Vimperatorを使っていると、マウスを使う機会は限られてくるのだが、
buftabs.jsはマウス操作も可能。

タブラベルをクリックすると選択されるし、閉じる事もできる。
せっかくなので、タブの追加もできるように書いてみた。

ついでに、Flashなんかでキーをフックされて効かない場合、
例えばアメピグをしていて、エラーで「ブラウザの更新ボタン押してください」と言われる事がある。
更新機能も付けようか。

左クリック
選択=>クリック
追加=>ダブルクリック
削除=>右クリック
更新=>ホイールボタンクリック
と一旦してみる。

var label = document.createElement("label");
btabs.appendChild(label);
label.onclick = function (ev)
{
   if (ev.button == 0)
      tabs.select(this.tabpos);
   else if (ev.button == 1)
      tabs.remove(tabs.getTab(this.tabpos), 1, false, 0);
}

と書かれているのを

var label = document.createElement("label");
var tabarea = document.getElementById("liberator-statusline-buftabs");
btabs.appendChild(label);
label.onclick = function (ev)
{
   if (ev.button == 0)
      tabs.select(this.tabpos);
   else if (ev.button == 1)
      tabs.reload(tabs.getTab(this.tabpos));
   else if (ev.button == 2)
      tabs.remove(tabs.getTab(this.tabpos), 1, false, 0);
}
tabarea.ondblclick = function (ev)
{
   if (ev.button == 0)
      config.tabbrowser.mTabContainer.selectedItem = config.tabbrowser.addTab()
}

に更新。

そして、ついにタブバーを非表示に設定。

やはり、グラフィカルで高さのあるタブバーを非表示にしたら、

さらなる広い画面になるし、スッキリとしていい感じになった。



ひとまず、これで様子を見ようか...。