// Written by the mesh (module betterbird, novox/hq issue 345): the operator's setup of Betterbird, taken from // the laptop's profile and approved by the operator on 2026-10-12. Betterbird reads this file at its start as // a default: a value the profile saved in its prefs.js (a choice made in Betterbird's settings window) wins // over it, a node's layer of the setting prefs (user.js) wins over both, and the policy's locks // (distribution/policies.json) win over everything. betterbird_config shows the layers and the drift; // betterbird_config_apply brings a profile back to these values. Change it in the catalogue, never here. // // A line "keeps Betterbird's default" names a preference the module manages without writing a value: the // operator's setup is Betterbird's own default there, and a value the profile saved is drift. // --- Theme and display --- // keeps Betterbird's default: extensions.activeThemeID // The default theme (default-theme@mozilla.org) follows the desktop's dark mode; compactness comes from // mail.uidensity, not a theme. Betterbird keeps the active theme in its add-on database, so another theme is // changed back in the add-on manager, never by clearing prefs.js. // keeps Betterbird's default: browser.display.use_system_colors // Betterbird's own colours, which the default theme is drawn for. // keeps Betterbird's default: layout.css.always_underline_links // Links are underlined only where the message's own style says so. // Compact density: more of the message list fits on a laptop screen (Betterbird's default is 1, normal). pref("mail.uidensity", 0); // 14-point interface text, the operator's choice; a larger desk screen sets its own size in a node layer. pref("mail.uifontsize", 14); // Message bodies are shown as their sender wrote them, not darkened. pref("mail.dark-reader.enabled", false); // --- Layout --- // Vertical view: folders, the message list and the message side by side (Betterbird's default is 0, classic). pref("mail.pane_config.dynamic", 2); // Each row of the message list on several lines, so sender, subject and date all show in the narrow column. pref("mail.pane_config.multiline_all", true); // The message list as cards (Betterbird's default is 1, the table). pref("mail.threadpane.listview", 0); // Threads grouped in every folder by default (Betterbird's default is 0, unthreaded). pref("mailnews.default_view_flags", 1); // --- Mail handling and compose --- // No confirmation before Shift+Delete removes a message for good. pref("mail.warn_on_shift_delete", false); // keeps Betterbird's default: mail.spam.manualMark // Marking a message as junk by hand does nothing more than mark it. // keeps Betterbird's default: mail.compose.show_attachment_pane // The composer shows its attachment pane only when a message has attachments. // --- Notifications --- // No pop-up for new mail: the operator reads mail when they choose to. pref("mail.biff.show_alert", false); // No sound for new mail. pref("mail.biff.play_sound", false); // No tray icon for new mail. pref("mail.biff.show_tray_icon", false); // If a node's layer turns alerts back on, they go through the desktop's notification daemon. pref("mail.biff.use_system_alert", true); // --- Calendar --- // The calendar's working day starts at 09:00 (Betterbird's default is 08:00). pref("calendar.view.daystarthour", 9); // and ends at 20:00 (Betterbird's default is 17:00). pref("calendar.view.dayendhour", 20); // A calendar item is deleted without asking. pref("calendar.item.promptDelete", false); // The calendar follows the node's time zone, because the laptop travels. pref("calendar.timezone.useSystemTimezone", true); // Reminders show in their window (Betterbird's default, made explicit: the reminder is why this module exists). pref("calendar.alarms.show", true); // Reminders missed while the laptop slept show at the next start (Betterbird's default is false). pref("calendar.alarms.showmissed", true); // --- Chat --- // No chat button: the operator uses no chat account in Betterbird (Betterbird's default is true). pref("mail.chat.enabled", false); // --- Privacy --- // No remote content in a message unless its sender is allowed (Betterbird's default, made explicit). pref("mailnews.message_display.disable_remote_image", true); // Ask sites not to track. A default only: the policy cannot lock a privacy. preference. pref("privacy.donottrackheader.enabled", true);