Release v2.4.0 — Erzwungene Einstellungen: about:config-Prefs bei jedem Start setzen

Neuer forcedPrefs-WebExtension-Experiment (Services.prefs) setzt beim Start
globale Prefs (Startseite aus, Kartenansicht, nicht gruppiert, absteigend,
3-Spalten-Layout, nicht auto-gelesen) sowie pro Identität die Signatur-/
Antwort-Einstellungen. Pro Setting im Options-Dialog (⚙-Tab) abschaltbar.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015PZHd9vRsBiH8cKYdQo1Yv
This commit is contained in:
Kendrick Bollens
2026-07-22 14:24:43 +02:00
parent 83d0d52a05
commit d244273e44
8 changed files with 260 additions and 1 deletions

52
lib/forced-prefs-list.js Normal file
View File

@@ -0,0 +1,52 @@
"use strict";
// Single Source of Truth für die about:config-Prefs, die bei jedem TB-Start
// erzwungen werden. Wird als klassisches Script in BEIDEN Kontexten geladen
// (Background + Options-Seite), definiert also nur globale Variablen — keine
// import/export-Mechanik.
//
// Jeder Eintrag:
// id - stabiler Opt-out-Key (NIE umbenennen/wiederverwenden; landet in storage)
// label - Text im Options-Dialog
// type - "bool" | "int" | "string"
// value - der bei jedem Start erzwungene Wert
// FORCED_PREFS zusätzlich: name - voller about:config-Pref-Name
// FORCED_IDENTITY_PREFS: suffix - voller Name = mail.identity.<id>.<suffix>
//
// WICHTIG: Werte an einem korrekt eingerichteten Referenz-Thunderbird
// (Doku-Seite „Thunderbird einrichten", Page 99) per about:config gegenprüfen —
// dieser Code läuft privilegiert auf allen Clients, ein Tippfehler trifft alle.
var FORCED_PREFS = [
{ id: "start_page_off", label: "Startseite beim Öffnen ausblenden",
name: "mailnews.start_page.enabled", type: "bool", value: false },
{ id: "listview_cards", label: "Kartenansicht (statt Tabelle)",
name: "mail.threadpane.listview", type: "int", value: 0 },
{ id: "no_grouping", label: "Nachrichten nicht gruppieren",
name: "mailnews.default_view_flags", type: "int", value: 0 },
{ id: "sort_descending", label: "Neue Nachrichten oben (absteigend)",
name: "mailnews.default_sort_order", type: "int", value: 2 },
{ id: "layout_3col", label: "3-Spalten-Ansicht (vertikales Layout)",
name: "mail.pane_config.dynamic", type: "int", value: 2 },
{ id: "no_auto_read", label: "Nachrichten nicht automatisch als gelesen markieren",
name: "mailnews.mark_message_read.auto", type: "bool", value: false },
];
// Pro Identität angewandt: voller Name = mail.identity.<id>.<suffix>
var FORCED_IDENTITY_PREFS = [
{ id: "reply_on_top", label: "Antwort über dem Zitat",
suffix: "reply_on_top", type: "int", value: 1 },
// sig_bottom=false -> Signatur direkt unter der Antwort, VOR dem Zitat.
// (true wäre ganz unten nach dem Zitat.)
{ id: "sig_bottom", label: "Signatur unter Antwort / vor dem Zitat",
suffix: "sig_bottom", type: "bool", value: false },
{ id: "sig_on_reply", label: "Signatur bei Antworten beifügen",
suffix: "sig_on_reply", type: "bool", value: true },
{ id: "sig_on_fwd", label: "Signatur beim Weiterleiten beifügen",
suffix: "sig_on_fwd", type: "bool", value: true },
];
if (typeof globalThis !== "undefined") {
globalThis.FORCED_PREFS = FORCED_PREFS;
globalThis.FORCED_IDENTITY_PREFS = FORCED_IDENTITY_PREFS;
}