Thunderbird startet mit zwei Fenster-Instanzen
2018-03-24

2018-04-22 12:30:18 Linux,Kubuntu,KDE,E-Mail,Thunderbird,DE

English Version: /post/2018/03/24/thunderbird-starts-with-two-window-instances/

Problembeschreibung: Thunderbird startet immer mit zwei Fenster-Instanzen, egal auf welche Weise Thunderbird gestartet wird: via Schnellstarter, aus dem K-Menu heraus, oder via Konsole. Schließt man eines der beiden Fenster, schließen sich immer beide.

Lösung: In der Thunderbird-Datei ~/.thunderbird/*.default/session.json sind zwei windows Objekte angegeben. Eines davon löschen.

Thunderbird's session.json

Den Inhalt der Datei kann man sich folgendermaßen formatiert auf der Konsole anzeigen lassen:

cat ~/.thunderbird/`awk -F "=" '/Path/ {print $2}' ~/.thunderbird/profiles.ini`"/session.json" | python -m json.tool

Bsp. Ausgabe

{
    "rev": 0,
    "windows": [
        {
            "tabs": {
                "rev": 0,
                "selectedIndex": 0,
                "tabs": [
                    {
                        "ext": {
                            "quickFilter": {
                                "filterValues": {
                                    "text": {
                                        "states": {
                                            "body": false,
                                            "recipients": false,
                                            "sender": true,
                                            "subject": false
                                        },
                                        "text": null
                                    }
                                },
                                "visible": false
                            }
                        },
                        "mode": "folder",
                        "state": {
                            "firstTab": true,
                            "folderPaneVisible": true,
                            "folderURI": "xxx://xxx@example.com/INBOX",
                            "messagePaneVisible": true
                        }
                    }
                ]
            },
            "type": "3pane"
        },
        {
            "tabs": {
                "rev": 0,
                "selectedIndex": 0,
                "tabs": [
                    {
                        "ext": {
                            "quickFilter": {
                                "filterValues": {
                                    "text": {
                                        "states": {
                                            "recipients": true,
                                            "sender": true,
                                            "subject": true
                                        },
                                        "text": null
                                    }
                                },
                                "visible": true
                            }
                        },
                        "mode": "folder",
                        "state": {
                            "firstTab": true,
                            "folderPaneVisible": true,
                            "folderURI": "zzz://zzz@example.com/INBOX",
                            "messagePaneVisible": true
                        }
                    }
                ]
            },
            "type": "3pane"
        }
    ]
}

Wie man in der obigen Beispiel-Ausgabe erkennen kann, weist das windows Array mehr als ein Objekt auf. Und genau da liegt das Problem: Pro Objekt wird jeweils eine Thunderbird-Fensterinstanz erzeugt.

Editieren

Folgendes kleines Bash-Snippet legt zunächst eine Kopie (session.json.YYYY-MM-DD) der aktuellen Datei (session.json) an, formatiert (beautify | prettify) den JSON-Code, so daß er lesbarer wird und öffnet die Datei schließlich im Editor Kate:

  1. Thunderbird beenden
  2. Über Konsole die Datei ~/.thunderbird/*.default/session.json zum Editieren mit Kate öffnen

    cd ~/.thunderbird/`awk -F "=" '/Path/ {print $2}' ~/.thunderbird/profiles.ini`;NOW=`date '+%Y-%m-%d_%H-%M-%S'`; cp session.json "session.json.$NOW"; cat session.json | python -m json.tool > /tmp/session.json; kate /tmp/session.json; cp /tmp/session.json session.json;
  3. Das unerwünschte Objekt im JSON Code entfernen
    (Den editierten Code ggf. mit einem JSON Parser wie etwa http://json.parser.online.fr/ überprüfen lassen; Copy'n'Paste).
  4. Datei in Kate speichern [STRG+S]
  5. Kate beenden [STRG+Q]

Nun kann Thunderbird wieder gestartet werden. Es startet mit nur einer Fenster-Instanz


Links