ちょっと前に Muttator、Dorando keyconfigの代替となる?Thunderbird 68以後もキーバインド可能なMailExtensions形式アドオンtbkeysを紹介した。
色々設定してみて、大分やりたいことがマウスなしで出来るようになったので設定を晒す。
Main key bindings
{
"//" : "次のメッセージ",
"j" : "cmd:cmd_nextMsg",
"//" : "前のメッセージ",
"k" : "cmd:cmd_previousMsg",
"//" : "メッセージを開く",
"o" : "cmd:cmd_openMessage",
"//" : "メッセージ転送",
"f" : "cmd:cmd_forward",
"//" : "メッセージ削除",
"#" : "cmd:cmd_delete",
"//" : "メッセージ返信",
"r" : "cmd:cmd_reply",
"//" : "全ての人に返信",
"a" : "cmd:cmd_replyall",
"//" : "未設定",
"x" : "unset",
"//" : "タブを閉じる",
"d" : "func:CloseTabOrWindow",
"//" : "メッセージ作成",
"c" : "func:MsgNewMessage",
"//" : "メッセージ閉じて更新",
"u" : "tbkeys:closeMessageAndRefresh",
"//" : "フラグを付ける/外す",
"+" : "cmd:cmd_markAsFlagged",
"//" : "リモートコンテンツをロード",
"ctrl+r" : "func:LoadMsgWithRemoteContent",
"//" : "左のタブに移動",
"h" : "window.document.getElementById('tabmail-tabs').advanceSelectedTab(-1, true)",
"//" : "右のタブに移動",
"l" : "window.document.getElementById('tabmail-tabs').advanceSelectedTab(1, true)",
"//" : "本文メッセージ下にスクロール",
"ctrl+j" : "window.document.getElementById('messagepane').contentDocument.documentElement.getElementsByTagName('body')[0].scrollBy(0, 100)",
"//" : "本文メッセージ上にスクロール",
"ctrl+k" : "window.document.getElementById('messagepane').contentDocument.documentElement.getElementsByTagName('body')[0].scrollBy(0, -100)",
"//" : "次の未読メッセージ",
"shift+j" : "cmd:cmd_nextUnreadMsg",
"//" : "前の未読メッセージ",
"shift+k" : "cmd:cmd_previousUnreadMsg",
"//" : "メッセージ一覧先頭",
"g" : "(function () { var tree = window.document.getElementById('threadTree'); tree.ensureRowIsVisible(0); tree.view.selection.select(0); })();",
"//" : "メッセージ一覧最後",
"shift+g" : "(function () { var tree = window.document.getElementById('threadTree'); var rowCount = tree.view.rowCount; tree.ensureRowIsVisible(rowCount - 1); tree.view.selection.select(rowCount - 1); })()",
"//" : "メッセージ一覧上にページスクロール",
"ctrl+u" : "(function () { var tree = window.document.getElementById('threadTree'); var currentIndex = tree.view.selection.currentIndex; var pageUpIndex = currentIndex - (tree.getPageLength() - 1); if (pageUpIndex < 0) { tree.ensureRowIsVisible(0); tree.view.selection.select(0); } else { tree.ensureRowIsVisible(pageUpIndex); tree.view.selection.select(pageUpIndex); } })();",
"//" : "メッセージ一覧下にページスクロール",
"ctrl+d": "(function () { var tree = window.document.getElementById('threadTree'); var rowCount = tree.view.rowCount; var currentIndex = tree.view.selection.currentIndex; var pageDownIndex = currentIndex + (tree.getPageLength() - 1); if (pageDownIndex > rowCount - 1) { tree.ensureRowIsVisible(rowCount - 1); tree.view.selection.select(rowCount - 1); } else { tree.ensureRowIsVisible(pageDownIndex); tree.view.selection.select(pageDownIndex); } })()",
"//" : "クイックフィルター",
"ctrl+f" : "cmd:cmd_toggleQuickFilterBar",
"//" : "パネル遷移 フォルダ->一覧->本文",
"ctrl+w" : "func:SwitchPaneFocus",
"//" : "設定ダイアログ",
"ctrl+o" : "func:openOptionsDialog",
"//" : "フォルダツリーにフォーカス",
"ctrl+t" : "window.document.getElementById('folderTree').focus();"
}
Compose key bindings はあれから変えてない。
殆ど自力で成し遂げたものはなく、 Issues · wshanks/tbkeys · GitHubを漁っていたら、思いの他、色々載っていたのでそれをそのまま持ってきただけだ。
メッセージ一覧の先頭、最後の移動についてはここから↓
Need help with identifying go to the top and bottom functions · Issue #66 · wshanks/tbkeys · GitHub
メッセージ作成のキーバインド時には
window.goDoCommand('cmd_scrollTop');
window.goDoCommand('cmd_scrollBottom');
window.goDoCommand('cmd_moveUp2');
window.goDoCommand('cmd_moveDown2');
window.goDoCommand('cmd_moveTop');
window.goDoCommand('cmd_moveBottom');
も使えるようだ。
フォルダーの色付け、フォルダー表示(移動ではない)についてはここから↓
[FR] func with params · Issue #62 · wshanks/tbkeys · GitHub
{
"ctrl+1": "window.EditorSetTextProperty('font', 'color', '#ff0000'); window.goUpdateCommandState('cmd_fontColor');",
"ctrl+2": "window.EditorSetTextProperty('font', 'color', '#00ff00'); window.goUpdateCommandState('cmd_fontColor');",
"ctrl+3": "window.EditorSetTextProperty('font', 'color', '#ff00ff'); window.goUpdateCommandState('cmd_fontColor');"
}
Thunderbirdでのフォルダの表示。余りThunderbirdのフォルダ表示は使ってこなかったが、これを機に使うようにすると便利になるかも。
window.gFolderTreeView.mode = 'all';
window.gFolderTreeView.mode = 'unread';
window.gFolderTreeView.mode = 'favorite';
window.gFolderTreeView.mode = 'smart';
window.gFolderTreeView.mode = 'unread_compact';
window.gFolderTreeView.mode = 'favorite_compact';
window.gFolderTreeView.mode = 'recent_compact';
試してないが、メッセージ移動も出来るようだ。
"o": "window.MsgMoveMessage(window.MailUtils.getExistingFolder('imap://user@host.name/folder/path'))",
クイックフィルターについてはここから↓
Quick Filter / Quick Search for Sender / Recipients / Subject · Issue #48 · wshanks/tbkeys · GitHub
フォルダ遷移は、どうしても上手く行かないので、パネルフォーカスのキーバインドを設定する。
フォルダペインにフォーカスするについてはここから↓
How do I find more “func:”? · Issue #69 · wshanks/tbkeys · GitHub
func:SwitchPaneFocus
func:openOptionsDialog
window.document.getElementById('folderTree').focus();
といったやり方で可能みたいだ。
フォルダペインにフォーカスしてしまえば、後は↑↓
上下の矢印キーで移動できる。本当は一気にスター、とか送信済みとかのフォルダに移動したいが、これで十分。
最後に、出来ればmutt
の
extract_url.plみたいに本文のリンクをマウスなしで叩ければ嬉しい。
それには本文検索をして、リンクと一致させてEnter
叩くしかないかな、と。
やりかたとしては、
- メッセージ一覧で該当のメールメッセージ選択
- 本文メッセージにフォーカスする
/
を押して本文検索する1- リンクとなっている文字、もしくはURLを入力する
- 自動でその単語にフォーカスするので、該当のリンク、URLなら
Enter
- もし次のリンク、URLなら
Ctrl+g
で次の検索
上記のようやれば、殆どマウスは不要となる。マウスが使えない呪いかけられたわけでも、マウス使ったら負けって訳でもないんだが。
以上、だたのコピペの固まりだが、このご時世にメーラーを使っている奇特な方々へ、少しでもThunderbirdの素晴らしさが伝われば幸いだ。
-
本文にフォーカスしてないとできない。メッセージ一覧にフォーカスしているときは青色の帯が見える。本文にフォーカスしながらメッセージの移動は可能。 ↩︎