77 lines
1.8 KiB
Nix
77 lines
1.8 KiB
Nix
{ user, userName }: { lib, pkgs, config, ... }:
|
|
with lib;
|
|
let
|
|
cfg = config.roles.email;
|
|
terminal = config.programs.terminal.package;
|
|
termcmd = "${terminal}/bin/${terminal.pname}";
|
|
in
|
|
{
|
|
options.roles = {
|
|
email = {
|
|
enable = mkEnableOption "email settings";
|
|
email = mkOption {
|
|
description = "email address";
|
|
};
|
|
terminal = mkOption {
|
|
type = types.bool;
|
|
default = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
|
|
programs.scripts = [
|
|
{
|
|
name = "email";
|
|
text = ''
|
|
${termcmd} -e aerc
|
|
'';
|
|
install = false;
|
|
hotkeys = [{key = "E";}];
|
|
}
|
|
];
|
|
|
|
home-manager.users.${user}.imports = [{
|
|
programs.git = {
|
|
userName = userName;
|
|
userEmail = cfg.email;
|
|
};
|
|
|
|
accounts.email.accounts.${cfg.email} = mkIf cfg.terminal {
|
|
notmuch.enable = true;
|
|
neomutt.enable = true;
|
|
aerc.enable = true;
|
|
mbsync.enable = true;
|
|
mbsync.create = "both";
|
|
userName = cfg.email;
|
|
realName = userName;
|
|
address = cfg.email;
|
|
primary = true;
|
|
passwordCommand = "${pkgs.rbw}/bin/rbw get privateemail";
|
|
smtp = {
|
|
host = "mail.privateemail.com";
|
|
port = 465;
|
|
tls.enable = true;
|
|
};
|
|
imap = {
|
|
host = "mail.privateemail.com";
|
|
port = 993;
|
|
tls.enable = true;
|
|
};
|
|
};
|
|
|
|
programs.notmuch.enable = cfg.terminal;
|
|
programs.neomutt = {
|
|
enable = cfg.terminal;
|
|
vimKeys = true;
|
|
sort = "reverse-date";
|
|
sidebar.enable = true;
|
|
};
|
|
programs.mbsync.enable = cfg.terminal;
|
|
services.mbsync.enable = cfg.terminal;
|
|
programs.aerc.enable = cfg.terminal;
|
|
}];
|
|
};
|
|
|
|
}
|