commit 43eefd873815fee75df2e0a2f75451f0b3e8d488
parent c5a7924b7c44031acb9c5b52e013ee6c241ee672
Author: vin <vin@vineetk.net>
Date: Sun, 23 Feb 2025 19:14:45 -0500
start using notmuch+isync instead of aerc for email
Almost gone full circle of switching away from isync to fdm to rsync
to using imap directly via aerc.
Diffstat:
| M | home.nix | | | 241 | +++++++++++++++++++++++++++++++++++++++++-------------------------------------- |
1 file changed, 124 insertions(+), 117 deletions(-)
diff --git a/home.nix b/home.nix
@@ -2,6 +2,30 @@
let
colors = import ./colors.nix;
+
+ isync-oauth2 = with pkgs; buildEnv {
+ # takens from:
+ # https://github.com/wentasah/nix-conf/raw/master/modules/mail.nix
+ # https://github.com/NixOS/nixpkgs/issues/108480#issuecomment-1115108802
+ name = "isync";
+ paths = [ pkgs.isync ];
+ pathsToLink = ["/bin"];
+ nativeBuildInputs = [ makeWrapper ];
+ postBuild = ''
+ wrapProgram "$out/bin/mbsync" \
+ --prefix SASL_PATH : "${cyrus_sasl}/lib/sasl2:${cyrus-sasl-xoauth2}/lib/sasl2"
+ '';
+ };
+
+ uvtools = with pkgs; appimageTools.wrapType2 rec {
+ pname = "UVtools";
+ version = "5.0.6";
+ src = fetchurl {
+ url = "https://github.com/sn4k3/${pname}/releases/download/v${version}/${pname}_linux-x64_v${version}.AppImage";
+ hash = "sha256-T1E2+7YocWbspRrpWoexfLmm7LZSb4Nkw8WSBD6zTHs";
+ };
+ extraPkgs = pkgs: [ pkgs.icu ];
+ };
in {
home = {
username = "vin";
@@ -29,6 +53,10 @@ in {
profanity
vesktop
+ # email
+ notmuch
+ oauth2ms
+
# hardware
acpi
acpilight
@@ -60,20 +88,7 @@ in {
# 3d printing
prusa-slicer
- (let
- pname = "UVtools";
- version = "5.0.6";
-
- src = fetchurl {
- url =
- "https://github.com/sn4k3/${pname}/releases/download/v${version}/${pname}_linux-x64_v${version}.AppImage";
- hash = "sha256-T1E2+7YocWbspRrpWoexfLmm7LZSb4Nkw8WSBD6zTHs";
- };
-
- in appimageTools.wrapType2 {
- inherit pname version src;
- extraPkgs = pkgs: [ pkgs.icu ];
- })
+ uvtools
];
preferXdgDirectories = true;
@@ -168,111 +183,96 @@ in {
theme.package = inputs.everblush-gtk.packages.x86_64-linux.default;
};
- programs = {
- home-manager.enable = true;
+ dconf.settings = {
+ "org/virt-manager/virt-manager/connections" = {
+ autoconnect = [ "qemu:///system" ];
+ uris = [ "qemu:///system" ];
+ };
+ };
- aerc = {
- enable = true;
- extraAccounts = {
- "vineetk" = {
- source = "imaps://vineet%40vineetk.net@mail.vineetk.net";
- outgoing = "smtps://vineet%40vineetk.net@mail.vineetk.net";
- outgoing-cred-cmd = "kasi pass email/vineetk";
- source-cred-cmd = "kasi pass email/vineetk";
- default = "INBOX";
- from = "\"Vineet Kumar\" <vineet@vineetk.net>";
- copy-to = "Sent";
- cache-headers = true;
- };
- "13f0" = {
- source = "imaps://kar%4013f0.net@mail.vineetk.net";
- outgoing = "smtps://kar%4013f0.net@mail.vineetk.net";
- outgoing-cred-cmd = "kasi pass email/13f0";
- source-cred-cmd = "kasi pass email/13f0";
- default = "INBOX";
- from = "kar <kar@13f0.net>";
- copy-to = "Sent";
- cache-headers = true;
- };
- };
- extraConfig = {
- general = {
- unsafe-accounts-conf = true;
- };
- ui = {
- fuzzy-complete = true;
- styleset-name = "monochrome";
- threading-enabled = true;
- };
- filters = {
- "message/delivery-status" = "colorize";
- "message/rfc822" = "colorize";
+ accounts.email = {
+ maildirBasePath = "mail";
+
+ accounts = {
+ university = {
+ address = "***REDACTED_EMAIL***";
+ realName = "Vineet Kumar";
+ userName = "***REDACTED_EMAIL***";
+ passwordCommand = "oauth2ms";
+
+ imap.host = "outlook.office365.com";
+ smtp = {
+ host = "smtp-mail.outlook.com";
+ port = 587;
+ tls.useStartTls = true;
+ };
- "text/calendar" = "calendar";
- "text/html" = "html-unsafe | colorize";
- "text/plain" = "colorize";
- };
- openers = {
- "application/pdf" = "mupdf";
- "text/html" = "qutebrowser";
- "text/plain" = "emacs";
- };
- templates = {
- "new-message" = "new_message";
- "quoted-reply" = "quoted_reply";
- "forwards" = "forward_as_body";
- };
- };
- stylesets = {
- monochrome = ''
- # aerc monochrome styleset
- #
-
- *.default = true
- *.normal = true
-
- *.selected.reverse = toggle
- *_pill.reverse = true
-
- title.reverse = true
- title.bold = true
- header.bold = true
- tab.selected.bold = true
- dirlist*.selected.bold = true
-
- statusline_default.reverse = true
- *error.bold = true
- *error.fg = 1
- *warning.fg = 3
-
- msglist_unread.bold = true
- msglist_deleted.dim = true
- msglist_result.underline = true
-
- part_mimetype.dim = true
- part_mimetype.selected.dim = false
- part_filename.selected.bold = true
-
- selector_focused.reverse = true
- selector_chooser.bold = true
-
- [viewer]
- *.default = true
- *.normal = true
- url.underline = true
- header.bold = true
- signature.dim = true
- diff_meta.bold = true
- diff_chunk*.dim = true
- diff_add.fg = 2
- diff_del.fg = 1
- quote_*.fg = 6
- quote_*.dim = true
- quote_1.dim = false
- ''
- ;
- };
- };
+ mbsync = {
+ enable = true;
+ create = "both";
+ expunge = "both";
+ remove = "both";
+ patterns = [
+ "*" "!Calendar*" "!Contacts*" "!Conversation*"
+ "!Notes*" "!Journal*" "!Tasks*"
+ ];
+ };
+
+ msmtp = {
+ enable = true;
+ extraConfig.auth = "xoauth2";
+ };
+
+ notmuch.enable = true;
+ };
+
+ vineetk = {
+ address = "me@vineetk.net";
+ realName = "Vineet Kumar";
+ userName = "vineet@vineetk.net";
+ passwordCommand = "kasi pass email/vineetk";
+ primary = true;
+
+ imap.host = "mail.vineetk.net";
+ smtp.host = "mail.vineetk.net";
+
+ mbsync = {
+ enable = true;
+ create = "both";
+ expunge = "both";
+ remove = "both";
+ patterns = [ "*" ];
+ };
+
+ msmtp.enable = true;
+ notmuch.enable = true;
+ };
+
+ thirteen = {
+ address = "kar@13f0.net";
+ realName = "Kar";
+ userName = "kar@13f0.net";
+ passwordCommand = "kasi pass email/13f0";
+
+ imap.host = "mail.vineetk.net";
+ smtp.host = "mail.vineetk.net";
+
+ mbsync = {
+ enable = true;
+ create = "both";
+ expunge = "both";
+ remove = "both";
+ patterns = [ "*" ];
+ };
+
+ msmtp.enable = true;
+ notmuch.enable = true;
+ };
+ };
+ };
+
+ programs = {
+ home-manager.enable = true;
alacritty = {
enable = true;
@@ -367,6 +367,13 @@ in {
];
};
+ mbsync = {
+ enable = true;
+ package = isync-oauth2;
+ };
+
+ msmtp.enable = true;
+
mpv = {
enable = true;