nixos-config

NixOS configs for my systems
Log | Files | Refs

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:
Mhome.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;