1. Home
  2. News
  3. Download
    1. Thunderbird Release Version
    2. Thunderbird 153 ESR (2026)
    3. Thunderbird 140 ESR (2025)
    4. Thunderbird Beta Version
    5. Language Pack (User Interface)
    6. Dictionaries (Spell Check)
  4. Help & Lexicon
    1. Instructions for Thunderbird
    2. Questions & Answers (FAQ) about Thunderbird
    3. Help for this Website
    4. Last Changes
  5. Forums
    1. Unresolved Threads
    2. Latest Posts
    3. Threads of the last 24 hours
  • Login
  • Register
  • 
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Forum
  • Lexicon
  • Articles
  • Pages
  • More Options
  1. Thunderbird Mail DE
  2. Forum
  3. Hilfe zu Add-ons und manuellen Anpassungen
  4. Manuelle Anpassungen per CSS oder Script

Skript für tbkeys gesucht: Verkettung von 4 Befehlen "Antworten, Speichern, Schließen, Nächste Ungelesene"

    • 140 ESR
  • thun.der.bird
  • September 13, 2025 at 3:06 PM
  • Thread is Unresolved
  • thun.der.bird
    Senior Member
    Reactions Received
    9
    Posts
    470
    Member since
    28. Aug. 2003
    • September 13, 2025 at 3:06 PM
    • #1
    Thunderbird product
    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:

    1. Hauptfenster: Antworten
    2. Verfassenfenster: Speichern
    3. Verfassenfenster: Schließen
    4. Hauptfenster: Nächste Ungelesene

    Für diese Einzelschritte funktioniert in tbkeys folgender Code:

    1. Hauptfenster: cmd:cmd_reply
    2. Verfassenfenster: cmd:cmd_saveAsDraft
    3. Verfassenfenster: cmd:cmd_close
    4. Hauptfenster: cm:cmd_nextUnreadMsg

    Wie verkette man diese 4 Befehle zu einem einzigen?

    Ein sog. "Eval-Befehl" funktioniert nicht:

    Code
    "(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.

    Code
    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"); 
    Display More

    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.

    Mein Projekt für Menschen mit kognitiven Einschränkungen: Thunderbird Easy-Peasy
    Thunderbirdnutzer der ersten Stunde - seit 2003 : ) | Plattform: macOS | Thunderbird-Version: die jeweils aktuelle ESR

    Edited 3 times, last by thun.der.bird (September 17, 2025 at 7:17 AM).

  • bege
    Member
    Reactions Received
    9
    Posts
    161
    Member since
    29. Dec. 2008
    Helpful answers
    3
    • September 14, 2025 at 8:58 PM
    • #2

    Ich nutze jetzt tbkeys.

    GitHub - wshanks/tbkeys: Custom keybindings for Thunderbird
    Custom keybindings for Thunderbird. Contribute to wshanks/tbkeys development by creating an account on GitHub.
    github.com
  • thun.der.bird
    Senior Member
    Reactions Received
    9
    Posts
    470
    Member since
    28. Aug. 2003
    • September 14, 2025 at 11:07 PM
    • #3

    Ich auch, das habe ich ja im Ausgangsposting erwähnt: "Ergänzung für die Erweiterung tbkeys".

    Aber wie löst man damit die Aufgabe?

    Mein Projekt für Menschen mit kognitiven Einschränkungen: Thunderbird Easy-Peasy
    Thunderbirdnutzer der ersten Stunde - seit 2003 : ) | Plattform: macOS | Thunderbird-Version: die jeweils aktuelle ESR

  • thun.der.bird
    Senior Member
    Reactions Received
    9
    Posts
    470
    Member since
    28. Aug. 2003
    • September 16, 2025 at 3:31 PM
    • #4

    Unabhängig von der Hauptaufgabe: weiß jemand, ob man in tbkeys auch Pfeiltasten für Kürzel verwenden kann?

    In tbkeys wird für keybindigs "mousetrap" eingesetzt.

    Bei stackoverflow fand ich:

    Detecting arrow key presses in JavaScript
    How do I detect when one of the arrow keys are pressed? I used this to find out: function checkKey(e) { var event = window.event ? window.event : e;…
    stackoverflow.com


    Ich steige nicht durch.

    Mein Projekt für Menschen mit kognitiven Einschränkungen: Thunderbird Easy-Peasy
    Thunderbirdnutzer der ersten Stunde - seit 2003 : ) | Plattform: macOS | Thunderbird-Version: die jeweils aktuelle ESR

    Edited once, last by thun.der.bird (September 17, 2025 at 7:19 AM).

  • bege
    Member
    Reactions Received
    9
    Posts
    161
    Member since
    29. Dec. 2008
    Helpful answers
    3
    • September 16, 2025 at 9:11 PM
    • #5

    Dass du tbkeys bereits verwendest, habe ich überlesen. Sorry. Den Workflow habe ich nicht kapiert und ich bin kein Programmierer sondern nur Bastler. Ich weiß nur, dass der Code in tbkeys als Funktion geschrieben sein muss. Das sähe dann so aus. Aber ob das so funktioniert und ob der Code noch dem aktuellen Thunderbird entspricht, kann ich dir als Bastler nicht sagen.

    Nur falls du es nicht weißt: Im json-Format in tbkeys dürfen innerhalb einer Funktion keine Zeilenschaltungen vorkommen. Ich habe deinen Codeschnipsel hier nur reinkopiert. Du müsstest also in tbkeys alle Zeilenschaltungen innerhalb der Funktion löschen. Und das Komma ganz am Ende nach den Anführungsstrichen nur, wenn es nicht der letzte Eintrag ist.

    Kennst du dieses Forum? https://forums.mozillazine.org/viewtopic.php?t=72994

    Dort hat der Benutzer morat über viele Jahre Tipps für keyconfig und dann tbkeys gegeben. Die Codeschnipsel, die ich in tbkeys nutze, sind alle mit seiner Hilfe entstanden. Allerdings ist dort der letzte Beitrag vom Oktober 2024. Ich weiß nicht, ob morat dort noch aktiv ist.

    Code
    "s": "(function () {
    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"); 
    })();",
    Display More
  • thun.der.bird
    Senior Member
    Reactions Received
    9
    Posts
    470
    Member since
    28. Aug. 2003
    • September 16, 2025 at 11:42 PM
    • #6

    bege

    Herzlichen Dank für die Infos. Das Forum für keyconfig kannte ich. Ich wußte nur nicht, dass es dort auch um tbkeys geht. Prima zu wissen. Vielleicht liest morat noch mit. Ist aber wohl unwahrscheinlich, wenn er so lange schon nix gepostet hat.

    Zum Code: ich habe alle Zeilenumbrüche entfernt und den Code in tbkeys eingefügt.

    Weil es der letzte Eintrag war, habe ich dahinter das Komma entfernt.

    Fehlermeldung: JSON invalid.

    Mit einem Online-Validator für JSON kam ich nicht weiter.

    Hast Du oder ein anderer Mitleser eine Idee?

    Code
    "s": "(function () {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"); })();",

    Mein Projekt für Menschen mit kognitiven Einschränkungen: Thunderbird Easy-Peasy
    Thunderbirdnutzer der ersten Stunde - seit 2003 : ) | Plattform: macOS | Thunderbird-Version: die jeweils aktuelle ESR

    Edited 4 times, last by thun.der.bird (September 17, 2025 at 1:10 AM).

  • thun.der.bird September 17, 2025 at 7:04 AM

    Changed the title of the thread from “Skript gesucht: Ein Tastenkürzel für die 3 Schritte "Antworten, Speichern, Schließen"” to “Skript für tbkeys gesucht: Verkettung von 4 Befehlen "Antworten, Speichern, Schließen, Nächste Ungelesene"”.
  • thun.der.bird
    Senior Member
    Reactions Received
    9
    Posts
    470
    Member since
    28. Aug. 2003
    • September 17, 2025 at 3:16 PM
    • #7
    Quote from bege

    Die Codeschnipsel, die ich in tbkeys nutze, sind alle mit seiner Hilfe entstanden.

    Hast Du Lust deine Codeschnipsel in dem Thread
    [Diskussion] Tastenkürzel: Was verwendet ihr, was fehlt euch?
    zu teilen und - falls es nicht selbsterklärend ist, was dazu zu schreiben?
    Interessant fände ich auch, zu erfahren, was dir fehlt?

    Mein Projekt für Menschen mit kognitiven Einschränkungen: Thunderbird Easy-Peasy
    Thunderbirdnutzer der ersten Stunde - seit 2003 : ) | Plattform: macOS | Thunderbird-Version: die jeweils aktuelle ESR

  • ggbsde
    Senior Member
    Reactions Received
    827
    Posts
    3,280
    Member since
    3. Nov. 2023
    Helpful answers
    64
    • September 17, 2025 at 4:32 PM
    • #8
    Quote from thun.der.bird

    eine Idee?

    Das JSON enthält diverse ", die müssen maskiert werden. Vermutlich mit \, bin da aber nicht sicher. Einfach mal bei Wikipedia nachschauen.

  • bege
    Member
    Reactions Received
    9
    Posts
    161
    Member since
    29. Dec. 2008
    Helpful answers
    3
    • September 17, 2025 at 8:13 PM
    • #9
    Quote from ggbsde
    Quote from thun.der.bird

    eine Idee?

    Das JSON enthält diverse ", die müssen maskiert werden. Vermutlich mit \, bin da aber nicht sicher. Einfach mal bei Wikipedia nachschauen.

    Jetzt erinnere ich mich wieder, dass morat die Benutzer "erzogen" hat, dass json innerhalb von doppelten keine doppelten, sondern nur einfach Anführungsstriche erlaubt. Das wäre also eine Alternative zum escapen.

  • thun.der.bird
    Senior Member
    Reactions Received
    9
    Posts
    470
    Member since
    28. Aug. 2003
    • September 17, 2025 at 11:32 PM
    • #10

    Ich habe dem Entwickler von tbkeys gemailt, ob ein Verketten von Befehlen möglich ist bzw. was er von der Idee hält.
    Werde berichten, falls ich Antwort erhalte.

    Mein Projekt für Menschen mit kognitiven Einschränkungen: Thunderbird Easy-Peasy
    Thunderbirdnutzer der ersten Stunde - seit 2003 : ) | Plattform: macOS | Thunderbird-Version: die jeweils aktuelle ESR

  • thun.der.bird
    Senior Member
    Reactions Received
    9
    Posts
    470
    Member since
    28. Aug. 2003
    • September 24, 2025 at 8:10 PM
    • #11

    Ich habe leider keine Antwort vom Entwickler erhalten. Ich habe auch nirgendwo eine Lösung gefunden.

    Pech. Eigentlich dachte ich, dass "Verketten" eine triviale Aufgabe sei. Aber vielleicht ist es das innerhalb von tbkeys doch nicht.

    Mein Projekt für Menschen mit kognitiven Einschränkungen: Thunderbird Easy-Peasy
    Thunderbirdnutzer der ersten Stunde - seit 2003 : ) | Plattform: macOS | Thunderbird-Version: die jeweils aktuelle ESR

Current app version

  • Thunderbird 153.0.3 veröffentlicht

    Thunder August 12, 2026 at 12:57 PM

Current 153 ESR version

  • Thunderbird 153.0.3 ESR veröffentlicht

    Thunder August 12, 2026 at 2:18 PM

Current 140 ESR version

  • Thunderbird 140.13.0 ESR veröffentlicht

    Thunder July 22, 2026 at 7:16 PM

No Advertisements

There are no advertisements here. Maybe you give the website owner (Alexander Ihrig - aka "Thunder") instead something to be able to finance these sites in the long run. Many Thanks!

Thank you for the support!

Coffee to be spent?

Donate now via Paypal*

*Forwarding to PayPal.Me

Thunderbird Mail DE
  1. Imprint & Contact
  2. Privacy Policy
    1. Cookie Policy
  3. Terms of Use
  4. Donation Call for Thunderbird
Help for this website
  • All website support articles
  • How to use website search
  • How to create a forums user account
  • How to create and edit a forums thread
  • How to reset your forums password
Copyright © 2003-2026 Thunderbird Mail DE

You are NOT on an official page of the Mozilla Foundation. Mozilla®, mozilla.org®, Firefox®, Thunderbird™, Bugzilla™, Sunbird®, Seamonkey®, XUL™ and the Thunderbird logo are (among others) registered trademarks of the Mozilla Foundation.

Powered by WoltLab Suite™