Firefox4 Vimperator3.0preでは通用しない。
もうリリースだろうけど、まだどうなるか分からない。
現段階でVimperator3.0preでbuftabs.jsをざっと使える様にしてみた。
リリース後修正。2011-04-13
新たに書き直すのも面倒なので
結果こんな感じ。
![Minefield4](https://stat.ameba.jp/user_images/20110305/02/tkseeh/12/e5/p/t02200126_0521029911090474253.png?caw=800)
まず、次の3つをpluginフォルダーに最新のを入れる。
buftabs.js は新たに適当なのを落としておく。=>
maine_coon.js (コマンドライン隠してくれたりする)=>
_libly.js (maine_coon.jsを使うのに必要)=>
①rc設定
さて、アドオンバーにbuftabsとステータスバーを乗っけます。
set buftabsまでにbuftabs.jsを読む必要があるので、
loadplugins と書いているけど、
プラグイン全体を読んでタイミング的に問題あるなら
source ~/vimperator/plugin/buftabs.js としてあげる。
set gui=notabs,addons
set showstatuslinks=1
js document.getElementById('addonbar-closebutton').collapsed=true;
js var staline=document.getElementById('liberator-statusline');
js var adbar=document.getElementById('addon-bar'); adbar.height=20;
js adbar.insertBefore(staline,adbar.firstChild);
loadplugins
set buftabs
次からbuftabs.jsファイルを触ります。
②createBar対応。
乗っけ先をaddon-barへ変更するのと、
もう通らないliberator-statusline-field-urlを除いておく。
// Create the horizontal box for adding the tabs toの下の
createBarファンクションを次の様に変更します。
createBar: function()
{
var addonbar = document.getElementById("addon-bar");
var buftabs = document.getElementById("liberator-statusline-buftabs");
// Only create if it doesn't exist yet
if (!buftabs)
{
buftabs = document.createElement("hbox");
buftabs.setAttribute("id", "liberator-statusline-buftabs");
buftabs.setAttribute("flex", "1");
buftabs.style.overflow = "hidden";
addonbar.insertBefore(buftabs, addonbar.firstChild);
}
},
③引数修正。
その少し下の方、loadイベントの第3引数をtrueに。
getBrowser().addEventListener("load", function (event) {
if (options.get("buftabs").get())
statusline.updateUrl();
}, true);
④URL表示をちょっと整理。
上の方のupdateUrlファンクションの中、
urlWidget.value = "";
statusline.updateField("location","");
liberator.echo(buffer.URL,2);
落としてきたbuftabs.jsによるかもしれないが、
if (showCurrentUrl == 0)
urlWidget.value = "";
と書かれていたらifの行も削除しておく。
これで大体は動く。
*** 余 談 ***
1)アドオンバーに余分なのがあったり、欲しいのが有れば
:dia customizetoolbar
とコマンドラインへ入力し、出したダイアログに
ドラッグで出し入れして、移動出来るのは整える。
2)理由は分からないが、こんな経験がある。
Vimperatorではステータスラインが別のObjectの非表示なのに影響受けた。
Pentadactylではset passkeysが突然エラーになった。など...。
かなり悩ましてもらったが、アドオン消して入れ直すだけで解決した。
Firefoxのaddonアップデートに微妙なのがあるのかな?
なぜか、うまく行かない場合はこの手をお試し。
************
あとはお好みで。
BarTab 2.0を利用していたり、
起動時タブを読み込ませず待たせている設定にしているなら、
待機しているtabは、bufferからは取れないので
"Untitled"と書かれたタブだらけになってしまう。
手っ取り早い方法ではあるが、標準のタブから取ってくる。
// Get title下の}else{の下。
tabvalue = browser.contentTitle || "Untitled";
tabvalue =gBrowser.tabs[label.tabpos].label;
安全なウェブページの時のハイライト、以前にはあった。
hi StatusLineExtendedや hi StatusLineSecureとか
hi StatusLineBroken。
そのハイライトが無いのでホスト名の前にちょこっと出す。
✿ はverifiedIdentityと一旦してみる。
✤ はverifiedDomain
⚔ はmixedContent
☠ は以外のunknownIdentity
④で更新したのをまた更新。つまり、
statusline.updateField("location","");
liberator.echo(buffer.URL,2);
var host= gBrowser.currentURI.asciiHost;
host = host?"("+host.replace(/www\./,"") +")":"";
var sign;
with(gIdentityHandler){
switch(_mode) {
case IDENTITY_MODE_IDENTIFIED: sign="\u273F"; break;
case IDENTITY_MODE_DOMAIN_VERIFIED: sign="\u2724"; break;
case IDENTITY_MODE_MIXED_CONTENT: sign="\u2694"; break;
default: sign= "\u2620";
}
var urlinfo = (_lastLocation.protocol!="https:")? host: sign+host;
}
statusline.updateField("location",urlinfo);
liberator.echo(buffer.URL,2);
あと、アドオンバーはテーマに影響する。
文字が見えやすいのを選ぶ必要はない。
/// Initialise highlight groupsの下にデフォルトのCSSが書かれている。
テーマを決めた後、見やすいように書けばいい。
ちなみに、こう書いている。
BufTab {font-family:monospace;font-size:11px;vertical-align:middle;color:#A3A3AF;}
BufTabSelected {font-family:monospace;font-size:11px;vertical-align:middle;color:LightYellow;}
最後に、Vimperator タブ非表示へ が何か参考になれば・・・。