- Thunderbird-Produkt
- Thunderbird für Windows
- Thunderbird-Version
- 140.2
Moin.
Ich verwende seit Ewigkeiten folgenden "Workflow" für eine konkrete Situation:
Ich lese eine neue Mail und entscheide mich, darauf zu antworten, möchte das aber zu einem anderen Zeitpunkt erledigen. Vergessen möchte ich es nicht.
Meine 4 Schritte:
- Hauptfenster: Antworten
- Verfassenfenster: Speichern
- Verfassenfenster: Schließen
- Hauptfenster: Nächste Ungelesene
Für diese Einzelschritte funktioniert in tbkeys folgender Code:
- Hauptfenster: cmd:cmd_reply
- Verfassenfenster: cmd:cmd_saveAsDraft
- Verfassenfenster: cmd:cmd_close
- Hauptfenster: cm:cmd_nextUnreadMsg
Wie verkette man diese 4 Befehle zu einem einzigen?
Ein sog. "Eval-Befehl" funktioniert nicht:
"(function () { window.goDoCommand('cmd_reply'); window.goDoCommand('cmd_saveAsDraft'); window.goDoCommand('cmd_close'); window.goDoCommand('cmd_nextUnreadMsg'); })();"
Früher, als es noch die Erweiterung KeyConfig gab, hatte ich dafür einen Skriptschnipsel für Keyconfig, der es mir erlaubt hat das mit einem einzigen Kürzel, zum Beispiel (S) zu erledigen.
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var Listener = {
onWindowTitleChange: function(){}, onCloseWindow: function(){},
onOpenWindow: function(aWindow){
wm.removeListener(this);
this.compose = aWindow.docShell
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIDOMWindow);
this.compose.addEventListener("compose-window-init", this, true);
},
handleEvent: function(event){
event.currentTarget.removeEventListener(event.type, this, true);
event.currentTarget.gMsgCompose.RegisterStateListener(Listener);
},
NotifyComposeFieldsReady: function() {},
NotifyComposeBodyReady: function() {
this.compose.gMsgCompose.UnregisterStateListener(this);
this.compose.window.setTimeout(function(){
this.goDoCommand("cmd_saveAsDraft");
this.goDoCommand("cmd_close");
goDoCommand("cmd_nextUnreadMsg");
},0);
}
}
wm.addListener(Listener);
goDoCommand("cmd_reply");
Alles anzeigen
Kennt jemand einen Weg, die Aufgabe zu realisieren?
Hintergrund:
Ich arbeite gerade an einem weiteren öffentlichen Thunderbird-Projekt, neben Easy-Peasy.
Die Zielgruppe sind normale Nutzer, die den Schwerpunkt auf eine geschmeidigen Bedienung per Tastatur und eine übersichtliche Oberfläche legen.
Danke.