diff --git a/.gitmodules b/.gitmodules index 7c5e21f..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "submodules/much"] - path = submodules/much - url = git@github.com:kmein/much diff --git a/configs/mail/accounts.nix b/configs/mail/accounts.nix deleted file mode 100644 index fa88d01..0000000 --- a/configs/mail/accounts.nix +++ /dev/null @@ -1,145 +0,0 @@ -{ lib, ... }: -let - inherit (import ) kieran; - - enableDefaults = lib.recursiveUpdate { - mbsync = { - enable = true; - create = "both"; - expunge = "both"; - }; - msmtp.enable = true; - notmuch.enable = true; - }; - - settings = { - fastmail = { - smtp = { - host = "smtp.fastmail.com"; - port = 465; - tls.enable = true; - }; - imap = { - host = "imap.fastmail.com"; - port = 993; - tls.enable = true; - }; - }; - cock = { - smtp = { - host = "mail.cock.li"; - port = 587; - tls = { - enable = true; - useStartTls = true; - }; - }; - imap = { - host = "mail.cock.li"; - port = 993; - tls.enable = true; - }; - }; - posteo = { - smtp = { - host = "posteo.de"; - port = 587; - tls = { - enable = true; - useStartTls = true; - }; - }; - imap = { - host = "posteo.de"; - port = 993; - tls.enable = true; - }; - }; - hu-berlin = { - smtp = { - host = "mailhost.cms.hu-berlin.de"; - port = 25; - tls = { - enable = true; - useStartTls = true; - }; - }; - imap = { - host = "mailbox.cms.hu-berlin.de"; - port = 993; - tls.enable = true; - }; - }; - }; - - # turns out we have to escape $ because, if the password contains a $, it will get interpolated as a variable by the msmtp `passwordeval` which does: `bash -c "COMMAND; echo"` - pass_ = file: "echo ${lib.escape ["$"] (lib.escapeShellArg (lib.strings.fileContents file))}"; -in -{ - fysi = enableDefaults { - primary = false; - userName = "kieran@fysi.tech"; - address = "kieran@fysi.tech"; - realName = kieran.name; - passwordCommand = pass_ ; - inherit (settings.fastmail) imap smtp; - }; - cock = enableDefaults { - primary = false; - userName = "2210@cock.li"; - address = "2210@cock.li"; - realName = "2210"; - passwordCommand = pass_ ; - inherit (settings.cock) imap smtp; - }; - kieran-gmail = enableDefaults { - primary = false; - flavor = "gmail.com"; - address = "kieran.meinhardt@gmail.com"; - realName = kieran.name; - userName = "kieran.meinhardt"; - passwordCommand = pass_ ; - folders = { - drafts = "[Gmail]/Entw&APw-rfe"; - sent = "[Gmail]/Gesendet"; - trash = "[Gmail]/Papierkorb"; - }; - }; - amroplay = enableDefaults { - primary = false; - flavor = "gmail.com"; - address = "amroplay@gmail.com"; - realName = kieran.name; - userName = "amroplay"; - passwordCommand = pass_ ; - folders = { - drafts = "[Gmail]/Drafts"; - sent = "[Gmail]/Sent Mail"; - trash = "[Gmail]/Bin"; - }; - }; - posteo = enableDefaults { - primary = true; - address = "kieran.meinhardt@posteo.net"; - realName = kieran.name; - userName = "kieran.meinhardt@posteo.net"; - passwordCommand = pass_ ; - inherit (settings.posteo) imap smtp; - }; - hu-berlin = enableDefaults { - primary = false; - address = "meinhark@hu-berlin.de"; - realName = kieran.name; - userName = "meinhark"; - passwordCommand = pass_ ; - inherit (settings.hu-berlin) imap smtp; - }; - hu-berlin-work = enableDefaults { - primary = false; - address = "meinhaki@hu-berlin.de"; - realName = kieran.name; - userName = "meinhaki"; - passwordCommand = pass_ ; - inherit (settings.hu-berlin) imap smtp; - }; -} diff --git a/configs/mail/client.nix b/configs/mail/client.nix deleted file mode 100644 index 037a3e8..0000000 --- a/configs/mail/client.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ config, pkgs, lib, ... }: -let - inherit (import ) email-sshKey; - much = - let - nixpkgs-much = import (pkgs.fetchFromGitHub { - owner = "NixOS"; - repo = "nixpkgs"; - rev = "7c2a362b58a1c2ba72d24aa3869da3b1a91d39e1"; - sha256 = "0gl4xndyahasa9dv5mi3x9w8s457wl2xh9lcldizcn1irjvkrzs4"; - }) { - overlays = [ - (import ) - ]; - }; - much-pkg = pkgs.haskellPackages.callCabal2nix "much" {}; - in nixpkgs-much.haskell.lib.dontHaddock much-pkg; -in { - environment.variables.NOTMUCH_CONFIG = config.home-manager.users.me.home.sessionVariables.NOTMUCH_CONFIG; - - users.users.me.openssh.authorizedKeys.keys = [ email-sshKey ]; - - environment.systemPackages = [ - pkgs.notmuch-addrlookup - - pkgs.muchsync - - (pkgs.writers.writeDashBin "mua" '' - if [ $# -eq 0 ]; then - ${much}/bin/much-kmein - else - ${much}/bin/much-kmein -q "$*" - fi - '') - - (pkgs.writers.writeDashBin "mail-clean" '' - ${pkgs.notmuch}/bin/notmuch search --output files --format=text0 tag:deleted | ${pkgs.findutils}/bin/xargs -r0 rm - ${pkgs.notmuch}/bin/notmuch new - '') - ]; - - home-manager.users.me = { - programs.notmuch = { - enable = true; - search.excludeTags = [ "deleted" "spam" ]; - }; - - programs.msmtp.enable = true; - - accounts.email.accounts = import ./accounts.nix { inherit lib; }; - }; -} diff --git a/configs/mail/fetcher.nix b/configs/mail/fetcher.nix deleted file mode 100644 index 68b0e04..0000000 --- a/configs/mail/fetcher.nix +++ /dev/null @@ -1,80 +0,0 @@ -{ config, pkgs, lib, ... }: -let - inherit (import ) kieran sshPort; - - tagRules = [ - { - query = "to:miaengiadina-pwa@noreply.github.com AND subject:\"PR run failed\""; - tags = [ "-new" "+deleted" ]; - } - { - query = lib.concatStringsSep " OR " [ - "from:noreply-local-guides@google.com" - "from:google-maps-noreply@google.com" - "subject:fd-noti" - "from:nebenan.de" - "to:miaengiadina-pwa@noreply.github.com" - ]; - tags = [ "-new" ]; - } - { - query = "tag:new"; - tags = [ "-new" "+inbox" ]; - } - ]; - - generateTaggingScript = filters: - let - template = { tags, query, message ? "tagging ${query} -> ${lib.concatStringsSep " " tags}", ... }: '' - echo '${message}' - ${pkgs.notmuch}/bin/notmuch tag ${lib.concatStringsSep " " tags} -- "${query}" - ''; - in lib.concatStringsSep "\n" (map template filters); -in -{ - imports = [ ]; - - krebs.secret.files.email-ssh = { - path = "${config.users.users.email.home}/.ssh/id_ed25519"; - owner.name = config.users.users.email.name; - source-path = toString + "/email/ssh.key"; - }; - - users.users.email = { - isNormalUser = true; - description = "fetching mails since 2021"; - }; - - systemd.services.mail-sync = - let - hosts = [ "manakish.r" "kabsa.r" ]; - in { - enable = true; - wants = [ "network-online.target" config.krebs.secret.files.email-ssh.service ]; - startAt = "*:0/3"; - serviceConfig.User = config.users.users.email.name; - serviceConfig.Type = "oneshot"; - environment.NOTMUCH_CONFIG = config.home-manager.users.email.home.sessionVariables.NOTMUCH_CONFIG; - path = [ pkgs.notmuch pkgs.openssh ]; - script = '' - ${pkgs.isync}/bin/mbsync --all || true - - ${lib.concatMapStringsSep "\n" (host: '' - echo === syncing ${host} - ${pkgs.muchsync}/bin/muchsync -s 'ssh -CTaxq -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=4 -p ${toString sshPort}' kfm@${host} || : - '') hosts} - ''; - }; - - home-manager.users.email = { - programs.mbsync.enable = true; - - accounts.email.accounts = import ./accounts.nix { inherit lib; }; - - programs.notmuch = { - enable = true; - new.tags = [ "new" ]; - hooks.postNew = generateTaggingScript tagRules; - }; - }; -} diff --git a/submodules/much b/submodules/much deleted file mode 160000 index a6e78ab..0000000 --- a/submodules/much +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a6e78ab114ff98ef8603df1e359e549fec4bd791