Compare commits

..

2 commits

Author SHA1 Message Date
Jet
5582f5ef25
update: nfu 2026-04-04 19:39:49 -07:00
Jet
3e2229799c
feat: move to betterbird off of thunderbird 2026-04-04 19:39:29 -07:00
3 changed files with 34 additions and 103 deletions

View file

@ -110,6 +110,8 @@
}; };
}; };
services.flatpak.enable = true;
services.displayManager.gdm.enable = true; services.displayManager.gdm.enable = true;
services.desktopManager.gnome.enable = true; services.desktopManager.gnome.enable = true;
services.gnome.sushi.enable = true; services.gnome.sushi.enable = true;
@ -251,6 +253,7 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
bubblewrap bubblewrap
flatpak
wget wget
nh nh
]; ];

12
flake.lock generated
View file

@ -180,11 +180,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775325653, "lastModified": 1775356232,
"narHash": "sha256-dlopJjB8mZ3wE4HEUgQOE79zy/rutmG5m96ehAwmTWU=", "narHash": "sha256-oHbYzFPE2PoqfGKEQrLeSuJi944SvOCzNvcqQ5WHFjw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "63115094168cdfc8a4c09261f3f2fc9838f3affa", "rev": "4755536f14c499dbfeabc316ba0650193d116bc1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -228,11 +228,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775278263, "lastModified": 1775349555,
"narHash": "sha256-BgkUmlOuFaaZQCnlhXkQ3/Fng65aq00tJQkpoeTn7Mw=", "narHash": "sha256-4QuGX/NCAqojvTxatzZ0NiWuAV4EAOXU3UdlWsrYVAE=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "bb051d7a0f04356d42528bbb65dc014adf2dab66", "rev": "92cc7e68329b4e394fd1282d412029d550444628",
"type": "github" "type": "github"
}, },
"original": { "original": {

122
home.nix
View file

@ -43,11 +43,11 @@ let
terminal = false; terminal = false;
categories = [ "Network" ]; categories = [ "Network" ];
}; };
thunderbirdStartup = pkgs.makeDesktopItem { betterbirdStartup = pkgs.makeDesktopItem {
name = "thunderbird-startup"; name = "betterbird-startup";
desktopName = "Thunderbird Startup"; desktopName = "Betterbird Startup";
comment = "Launch Thunderbird in fullscreen"; comment = "Launch Betterbird in fullscreen";
exec = "${pkgs.thunderbird}/bin/thunderbird --fullscreen"; exec = "${pkgs.flatpak}/bin/flatpak run eu.betterbird.Betterbird --fullscreen";
terminal = false; terminal = false;
categories = [ "Network" ]; categories = [ "Network" ];
}; };
@ -716,6 +716,24 @@ in
noDisplay = true; noDisplay = true;
}; };
xdg.desktopEntries.betterbird = {
name = "Betterbird";
genericName = "Mail Client";
exec = "${pkgs.flatpak}/bin/flatpak run eu.betterbird.Betterbird %u";
icon = "eu.betterbird.Betterbird";
type = "Application";
categories = [
"Network"
"Email"
];
mimeType = [
"x-scheme-handler/mailto"
"x-scheme-handler/webcal"
"text/calendar"
];
comment = "Fine-tuned Thunderbird mail client";
};
# Autostart applications using proper desktop files # Autostart applications using proper desktop files
xdg.autostart = { xdg.autostart = {
enable = true; enable = true;
@ -723,7 +741,7 @@ in
zenStartup zenStartup
kittyZellijStartup kittyZellijStartup
signalStartup signalStartup
thunderbirdStartup betterbirdStartup
vesktopStartup vesktopStartup
zulipStartup zulipStartup
]; ];
@ -760,6 +778,7 @@ in
"x-scheme-handler/https" = "zen-beta.desktop"; "x-scheme-handler/https" = "zen-beta.desktop";
"x-scheme-handler/about" = "zen-beta.desktop"; "x-scheme-handler/about" = "zen-beta.desktop";
"x-scheme-handler/unknown" = "zen-beta.desktop"; "x-scheme-handler/unknown" = "zen-beta.desktop";
"x-scheme-handler/mailto" = "betterbird.desktop";
"inode/directory" = "org.gnome.Nautilus.desktop"; "inode/directory" = "org.gnome.Nautilus.desktop";
"application/zip" = "org.gnome.FileRoller.desktop"; "application/zip" = "org.gnome.FileRoller.desktop";
"application/x-tar" = "org.gnome.FileRoller.desktop"; "application/x-tar" = "org.gnome.FileRoller.desktop";
@ -774,97 +793,6 @@ in
}; };
}; };
programs.thunderbird = {
enable = true;
profiles.default = {
isDefault = true;
settings = {
# Use maildir instead of mbox — faster for large mailboxes
"mail.serverDefaultStoreContractID" = "@mozilla.org/msgstore/maildirstore;1";
# Increase IMAP connection limits
"mail.server.default.max_cached_connections" = 10;
"mail.imap.max_cached_connections" = 10;
# IMAP IDLE — server pushes new mail instantly (no polling delay)
"mail.server.default.use_idle" = true;
# Poll every 1 minute as fallback when IDLE drops
"mail.server.default.check_new_mail" = true;
"mail.server.default.check_time" = 1;
# Faster IMAP sync
"mail.imap.min_time_between_cleanups" = 300;
"mail.imap.fetch_by_chunks" = true;
"mail.imap.chunk_size" = 65536;
"mail.imap.chunk_add" = 16384;
# Reduce timeouts (fail fast instead of hanging)
"mail.server.default.timeout" = 60;
"mailnews.tcptimeout" = 60;
# Network performance
"network.http.max-connections" = 48;
"network.http.max-persistent-connections-per-server" = 10;
"network.dns.disablePrefetch" = false;
# Cache messages offline for instant reading
"mail.server.default.offline_download" = true;
"mail.server.default.download_on_biff" = true;
# Auto-compact folders when >20MB wasted (keeps mbox files lean)
"mail.purge_threshhold_mb" = 20;
"mail.prompt_purge_threshhold" = false;
# Block remote content by default (tracking pixels, slow image loads)
"mailnews.message_display.disable_remote_image" = true;
# Disable adaptive junk filter (server-side spam is better)
"mail.spam.manualMark" = true;
"mailnews.ui.junk.firstuse" = false;
"mailnews.ui.junk.manualMarkAsJunkMarksRead" = true;
# Prefetch next message while reading current one
"mail.server.default.autosync_offline_stores" = true;
# Open links in default browser (Zen) instead of Thunderbird's internal browser
"network.protocol-handler.warn-external.http" = false;
"network.protocol-handler.warn-external.https" = false;
"network.protocol-handler.expose-all" = true;
# Simplify message rendering
"mailnews.display.prefer_plaintext" = false;
"mailnews.display.disallow_mime_handlers" = 0;
"mailnews.display.html_as" = 0;
# Disable return receipt prompts
"mail.incorporate.return_receipt" = 0;
"mail.receipt.request_return_receipt_on" = false;
# Disable chat and calendar background connections
"mail.chat.enabled" = false;
"calendar.integration.notify" = false;
# Disable unnecessary features
"mail.phishing.detection.enabled" = false;
"mail.rights.version" = 1;
"mail.shell.checkDefaultClient" = false;
"mail.spotlight.enable" = false;
# Faster UI rendering
"gfx.webrender.all" = true;
# Network keepalive
"network.http.keep-alive.timeout" = 600;
"network.http.response.timeout" = 120;
# Fix UI not updating after delete/archive — move to next message automatically
"mail.delete_matches_sort_order" = true;
"mail.advance_on_delete" = true;
};
};
};
home.file.".claude/settings.json".text = builtins.toJSON { home.file.".claude/settings.json".text = builtins.toJSON {
allowedTools = [ allowedTools = [
"Read" "Read"