refactor: move from den based to flake-parts based
This commit is contained in:
+90
-75
@@ -1,84 +1,99 @@
|
||||
{ den, lib, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
lux.email = den.lib.perUser (
|
||||
{ user, ... }:
|
||||
flake.modules.homeManager.email =
|
||||
{ config, ... }:
|
||||
let
|
||||
mkEmailAccount =
|
||||
_: email:
|
||||
realName = "Jelle Spreeuwenberg";
|
||||
mkOffice365Account =
|
||||
{
|
||||
address,
|
||||
primary,
|
||||
}:
|
||||
{
|
||||
enable = true;
|
||||
address = email.address;
|
||||
primary = email.primary;
|
||||
realName = user.realName;
|
||||
userName = email.address;
|
||||
thunderbird =
|
||||
{
|
||||
enable = true;
|
||||
}
|
||||
// lib.optionalAttrs (email.kind == "office365") {
|
||||
settings = id: {
|
||||
"mail.smtpserver.smtp_${id}.authMethod" = 10;
|
||||
"mail.server.server_${id}.authMethod" = 10;
|
||||
};
|
||||
};
|
||||
}
|
||||
// (
|
||||
if email.kind == "mxrouting" then
|
||||
{
|
||||
imap = {
|
||||
authentication = "plain";
|
||||
host = "taylor.mxrouting.net";
|
||||
port = 993;
|
||||
tls.enable = true;
|
||||
};
|
||||
smtp = {
|
||||
authentication = "plain";
|
||||
host = "taylor.mxrouting.net";
|
||||
port = 465;
|
||||
tls.enable = true;
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
flavor = "outlook.office365.com";
|
||||
}
|
||||
);
|
||||
in
|
||||
{
|
||||
homeManager = { ... }: {
|
||||
programs.thunderbird = {
|
||||
inherit address primary realName;
|
||||
userName = address;
|
||||
thunderbird = {
|
||||
enable = true;
|
||||
profiles.${user.name} = {
|
||||
isDefault = true;
|
||||
withExternalGnupg = true;
|
||||
settings = {
|
||||
# LAYOUT: Force 3-Pane Vertical View (Folders | List | Message)
|
||||
"mail.ui.display.message_pane_vertical" = true;
|
||||
|
||||
# APPEARANCE: Enable "Cards View" (modern multi-line list)
|
||||
# Note: 'cards' is the value for the new view
|
||||
"mail.ui.display.thread_pane_view_type" = "cards";
|
||||
|
||||
# DENSITY: "Compact" is usually cleaner for tech-savvy users
|
||||
"mail.uidensity" = 1; # 0=Default, 1=Compact, 2=Touch
|
||||
|
||||
# PRIVACY & CLEANUP
|
||||
"privacy.donottrackheader.enabled" = true;
|
||||
"mail.server.server2.hidden" = true; # Hide "Local Folders"
|
||||
|
||||
# Start page disable for faster boot
|
||||
"mailnews.start_page.enabled" = false;
|
||||
|
||||
# Disable the "Get a new email address" feature in account manager
|
||||
"mail.provider.enabled" = false;
|
||||
|
||||
"layout.css.devPixelsPerPx" = 0.85;
|
||||
};
|
||||
settings = id: {
|
||||
"mail.smtpserver.smtp_${id}.authMethod" = 10;
|
||||
"mail.server.server_${id}.authMethod" = 10;
|
||||
};
|
||||
};
|
||||
|
||||
accounts.email.accounts = lib.mapAttrs mkEmailAccount user.emails;
|
||||
flavor = "outlook.office365.com";
|
||||
};
|
||||
}
|
||||
);
|
||||
mkMxrouteAccount =
|
||||
{
|
||||
address,
|
||||
primary,
|
||||
}:
|
||||
{
|
||||
enable = true;
|
||||
inherit address primary realName;
|
||||
userName = address;
|
||||
thunderbird.enable = true;
|
||||
imap = {
|
||||
authentication = "plain";
|
||||
host = "taylor.mxrouting.net";
|
||||
port = 993;
|
||||
tls.enable = true;
|
||||
};
|
||||
smtp = {
|
||||
authentication = "plain";
|
||||
host = "taylor.mxrouting.net";
|
||||
port = 465;
|
||||
tls.enable = true;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
programs.thunderbird = {
|
||||
enable = true;
|
||||
profiles.${config.home.username} = {
|
||||
isDefault = true;
|
||||
withExternalGnupg = true;
|
||||
settings = {
|
||||
"mail.ui.display.message_pane_vertical" = true;
|
||||
"mail.ui.display.thread_pane_view_type" = "cards";
|
||||
"mail.uidensity" = 1;
|
||||
"privacy.donottrackheader.enabled" = true;
|
||||
"mail.server.server2.hidden" = true;
|
||||
"mailnews.start_page.enabled" = false;
|
||||
"mail.provider.enabled" = false;
|
||||
"layout.css.devPixelsPerPx" = 0.85;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
accounts.email.accounts =
|
||||
if config.home.username == "ergon" then
|
||||
{
|
||||
work = mkOffice365Account {
|
||||
address = "jelle.spreeuwenberg@yookr.org";
|
||||
primary = true;
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
main = mkMxrouteAccount {
|
||||
address = "mail@jelles.net";
|
||||
primary = true;
|
||||
};
|
||||
|
||||
old = mkMxrouteAccount {
|
||||
address = "mail@jellespreeuwenberg.nl";
|
||||
primary = false;
|
||||
};
|
||||
|
||||
uni = mkOffice365Account {
|
||||
address = "j.spreeuwenberg@student.tue.nl";
|
||||
primary = false;
|
||||
};
|
||||
|
||||
work = mkOffice365Account {
|
||||
address = "jelle.spreeuwenberg@yookr.org";
|
||||
primary = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user