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
すこし書式を変えてみる。
結果こんな感じ。
未ロードやblankページはUntitledと表示されるが、
:buffersでは(無題)なので、そう変えてみた。
"無題"は、16進数コード表記で"\u7121\u984C"なので
"Untitled"を"(\u7121\u984C)"に変更。
なんとなく// Brackets and index の付近
[1-hogehoge] [2-hogehoge]
より
\1:hogehoge/ \2:hogehoge/
と、スラッシュでタブっぽく見えるので変更、
ついでに長いタイトル必要ないので常にカット。
アクティブなタブに*でも付けてみた。
%の方がいいかなー
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()
}
そして、ついにタブバーを非表示に設定。
やはり、グラフィカルで高さのあるタブバーを非表示にしたら、
さらなる広い画面になるし、スッキリとしていい感じになった。
ひとまず、これで様子を見ようか...。