« Thunderbird 78 | トップページ | 7回目 »

2020年7月27日 (月)

userChrome.js

基本は曇りで、ちょこっと雨が降った。

 

Thunderbird 78に移行出来るかどうかは、次のアドオンに掛かっている。

userChromeJS :: Thunderbird向けアドオン

これ単体では何も出来ない。
これを入れて、FirefoxのuserChrome.jsを使えば、Javascriptで自分好みの機能をThunderbirdに追加出来る。

WebExtensionが出るまでは、色んなアドオンがあって、そういうのを使えば、使い勝手は良くなっていた。

でも、WebExtension移行、そういうアドオンを作ること自体が不可能になったり、継続して作られなくなったりした。

そうなると、使い勝手が悪くなる。

幸いなことに、上記のアドオンを入れて、FirefoxのuserChrome.jsを導入し、自分にとって必要な機能のスクリプトを書けば、以前と同じように、場合によってはそれ以上使い勝手が良くなるのである。

どうやら、「userChromeJS」アドオンは、78にも対応してくれているよう。

が、以前と同じようにしても、スクリプトが動かない。

FirefoxのuserChrome.jsの最新のものを導入してもダメ。

以前は、そのままで動いていたのに動かない。

なんで?

ちなみに、「chrome」フォルダ内のuserChrome.cssやuserContent.cssは動いている。

そもそも、どうやって動かすか、userChromeJS側にも書かれていない。

途方に暮れてしまった...

もしかして、userChrome.js自体に何かあるのか?と思って、関係ありそうなところを見ていて、閃くものがあった。

それをやってみると・・・

ビンゴー!!

動くようになったのである!!!

これで、78に移行出来る!

 

以下、Thunderbird 78でのuserChrome.jsの動かし方を書いておく。

(1) userChromeJSアドオンのインストール

userChromeJS :: Thunderbird向けアドオンから。

(2) userChrome.jsの導入

この「userChrome.js」を、UTF-8 BOMなしで、「chrome」フォルダに保存。
(初めての場合は、そのフォルダがないので、各自のプロファイル・フォルダ直下に「chrome」フォルダを作成。)

これは、Firefox用のものだけれど、必要。

現時点では、Thunderbird 78、このuserChrome.jsは、Firefox 73のものなので、バージョンが変われば変わってくる可能性あり。

(3) userChrome.jsの編集

保存したFirefox用のuserChrome.js内の次の3か所を編集。内2か所は必須で、1ヶ所は任意で。

編集前のものをテキストエディタで検索し、コメントアウトする。
そして、編集後のものを追加。

【編集前】
var BROWSERCHROME = "chrome://browser/content/browser.xhtml";

【編集後】
var BROWSERCHROME = "'chrome://messenger/content/messenger.xhtml";
【編集前】
var mainWindowURL = "chrome://messenger/content/messenger.xul";

【編集後】
var mainWindowURL = "chrome://messenger/content/messenger.xhtml";

次は任意。
もし、「新規メール作成画面」でもuserChrome.jsを動かしたいなら必要。そうでないなら、不要。

【編集前】
if( rex.include.length == 0) rex.include.push(mainWindowURL);

【編集後】
if( rex.include.length == 0) rex.include.push(mainWindowURL,"chrome://messenger/content/messengercompose/messengercompose.xhtml");

これで、動かす準備は完了。

(4) 既存のuserChrome.js用のスクリプトの編集

既に、userChrome.js用のスクリプトを使っているなら、2か所修正。

・???.xul → ???.xhtml

・createElement → createXULElement

基本的にはこれだけでいい。

あとは、仕様変更に対応する必要性のあるものがあれば、それを修正。

スクリプトがない人は、どこかから探して導入するしかない。

とは言っても、そんなにThunderbird用のスクリプトはないだろうから、僕が使っていて、簡単なものを一つ置いておこう。

起動時に、「受信箱」を常に選択するスクリプト。

(function(event) {
if (location != 'chrome://messenger/content/messenger.xhtml') return;
var tspan = 3000;
setTimeout(function(){
focusOnMail(0, event);
let folder = GetDefaultAccountRootFolder().getFolderWithFlags(Ci.nsMsgFolderFlags.Inbox);
gFolderTreeView.selectFolder(folder, true);
}, tspan);
})();

これを、「userChrome_SelectInbox.uc.js」というファイル名にして、UTF-8 BOMなしで「chrome」フォルダに保存。
ファイル名は何だっていいけれど、「.uc.js」は必須。

「let folder」の右側を、別のものにすれば、任意のフォルダを選択させることが出来る。

「tspan」の値は、このスクリプトが読み込まれた時に、何秒後に実行するか(setTimeout)の「何秒」の値。
この場合は、「3000(3秒)」に設定している。
68の時は、「3000(3秒)」で問題なかったけれど、78になって、起動が遅くなったので、「5000(5秒)」に変更。
すぐに起動する人は、「3000」くらいでいいかもしれない。
僕のように、Thunderbirdの起動が遅い人は、秒数を増やすといい。

以前、これだけのアドオンがあったけれど、WebExtensionの時に未対応になったし、他のアドオンでこの機能が含まれているものもあるけれど、このためだけに導入するのも、と思ったので、こういうのを作った。

せっかくなので、もう一つ置いておこう。(笑)

(function() {
window.ReStartB = {
init: function() {
if (location != 'chrome://messenger/content/messenger.xhtml') return;
["button-appmenu", "calendar-appmenu-button", "task-appmenu-button"].forEach(function(i){document.getElementById(i).addEventListener("dblclick",function(e){
e.preventDefault();
('BrowserUtils' in window) ? BrowserUtils.restartApplication() : Application.restart();
}, false)});
}
};
window.ReStartB.init();
})();

これは、画面右側にある「三」本線のメニューをダブルクリックすると、Thunderbirdが再起動する。

「button-appmenu」を別のものに変更して、そこをダブルクリックすれば、再起動させることも出来る。

とまぁ、こういう感じで、11個のスクリプトを動かしている。

 

これで、僕は、今まで動かしていたスクリプト全てを動かすことが出来た。
新しい仕様に対応させるものが若干あったけれど。

ということで、使い勝手は、68と変わらない状態になった。

 

userChrome.js用のスクリプトが動くようになったので、以前のWebExtensionの時より、早く移行出来そうだ。

一つ未対応のアドオンがあるのだけれど、現在対応中とのことで、9月くらいになるとのこと。

そこまで待とうとは思わないので、もうちょっと様子を見て、78に移行したいと思っている。

 

スマホ全盛のこのご時世、パソコンで、しかも、Thunderbirdのようなメールソフトを使ってメール見ている人って少なくなったんだろうねぇ。
そもそも、メールを使っていない人が多いかもしれない。

パソコンでメールを見るにしても、ブラウザで見ている人も多いだろう。

PCのメールソフトの需要はかなり減ってしまっているかもしれないけれど、やっぱりPCは「万能」に近いツールだから、その上で動くメールソフトはなくなってほしくないね。
(スマホにしろタブレットにしろ、他の単機能デバイスにしろ、機能が充実するにつれ、PC化しているからね。)

使わせてもらっている身としては無茶言えないけれど、継続していってほしいと思う。

|

« Thunderbird 78 | トップページ | 7回目 »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« Thunderbird 78 | トップページ | 7回目 »