infrastructure

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 7120b332c9e74490d9842d8c920353caf4588da0
parent 6ff14382a8e331b211c5d06d733d638e63932e12
Author: Silas Brack <silasbrack@gmail.com>
Date:   Fri, 10 Jul 2026 22:34:23 +0200

gaia: add gmail to notmuch

Diffstat:
Mhosts/gaia/configuration.nix | 7++-----
Mhosts/gaia/home.nix | 37+++++++++++++++++++++++++++++++++----
Mhosts/gaia/init.el | 12+++++++++++-
Msecrets.yaml | 5+++--
4 files changed, 49 insertions(+), 12 deletions(-)

diff --git a/hosts/gaia/configuration.nix b/hosts/gaia/configuration.nix @@ -22,11 +22,8 @@ sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; sops.secrets.gaia_forgejo_access_token = { }; - sops.secrets.silas_at_silasbrack_dot_com_password = { }; - sops.templates."mail-password" = { - content = config.sops.placeholder.silas_at_silasbrack_dot_com_password; - owner = "silas"; - }; + sops.secrets.silas_at_silasbrack_dot_com_password = { owner = "silas"; }; + sops.secrets.silasbrack_at_gmail_dot_com_app_password = { owner = "silas"; }; sops.templates."authinfo" = { content = "machine git.fnarglebeast.com/api/v1 login silas^forge password ${config.sops.placeholder.gaia_forgejo_access_token}\n"; path = "/home/silas/.authinfo.gpg"; diff --git a/hosts/gaia/home.nix b/hosts/gaia/home.nix @@ -45,8 +45,8 @@ IMAPAccount silasbrack Host mail.silasbrack.com User silas@silasbrack.com - PassCmd "cat /run/secrets/rendered/mail-password" - SSLType IMAPS + PassCmd "cat /run/secrets/silas_at_silasbrack_dot_com_password" + TLSType IMAPS IMAPStore silasbrack-remote Account silasbrack @@ -63,12 +63,37 @@ Create Both Expunge Both SyncState * + + + IMAPAccount gmail + Host imap.gmail.com + Port 993 + User silasbrack@gmail.com + PassCmd "cat /run/secrets/silasbrack_at_gmail_dot_com_app_password" + TLSType IMAPS + + IMAPStore gmail-remote + Account gmail + + MaildirStore gmail-local + Path ~/Mail/gmail/ + SubFolders Verbatim + + Channel gmail + Far :gmail-remote: + Near :gmail-local: + Patterns * ![Gmail]* "[Gmail]/Sent Mail" "[Gmail]/Starred" "[Gmail]/All Mail" "[Gmail]/Trash" + Expunge None + CopyArrivalDate yes + Sync All + Create Both + SyncState * ''; }; programs.msmtp = { enable = true; - extraConfig = '' + configContent = '' defaults tls on @@ -79,7 +104,7 @@ auth on user silas@silasbrack.com from silas@silasbrack.com - passwordeval "cat /run/secrets/rendered/mail-password" + passwordeval "cat /run/secrets/silas_at_silasbrack_dot_com_password" account default : silasbrack ''; @@ -102,6 +127,10 @@ notmuch tag +sent -new -- tag:new AND folder:silasbrack/Sent notmuch tag +trash -new -- tag:new AND folder:silasbrack/Trash notmuch tag +spam -new -- tag:new AND folder:silasbrack/Junk + notmuch tag +inbox -new -- tag:new AND folder:gmail/INBOX + notmuch tag +sent -new -- "tag:new AND folder:gmail/[Gmail]/Sent Mail" + notmuch tag +trash -new -- "tag:new AND folder:gmail/[Gmail]/Trash" + notmuch tag +starred -new -- "tag:new AND folder:gmail/[Gmail]/Starred" notmuch tag -new -- tag:new ''; }; diff --git a/hosts/gaia/init.el b/hosts/gaia/init.el @@ -38,7 +38,14 @@ ;; notmuch (require 'notmuch) (setq mail-user-agent 'notmuch-user-agent) -(setq notmuch-fcc-dirs "silasbrack/Sent") +(setq notmuch-fcc-dirs '(("silas@silasbrack.com" . "silasbrack/Sent") + ("silasbrack@gmail.com" . "gmail/[Gmail]/Sent Mail"))) +(setq notmuch-saved-searches + '((:name "inbox" :query "tag:inbox" :key "i") + (:name "silasbrack" :query "folder:silasbrack/INBOX" :key "s") + (:name "gmail" :query "folder:gmail/INBOX" :key "g") + (:name "sent" :query "tag:sent" :key "t") + (:name "unread" :query "tag:unread" :key "u"))) (setq notmuch-search-oldest-first nil) (setq message-send-mail-function 'message-send-mail-with-sendmail) (setq sendmail-program "msmtp") @@ -47,3 +54,6 @@ (setq user-mail-address "silas@silasbrack.com") (setq user-full-name "Silas Brack") (global-set-key (kbd "C-c m") 'notmuch) + +;; keepass +(require 'keepass-mode) diff --git a/secrets.yaml b/secrets.yaml @@ -11,6 +11,7 @@ mail_silas_password_hash: ENC[AES256_GCM,data:E3NCQ5/eRfpbaOVpK0Ovk/vE+h1q5/z7rZ daily_tracker_secret_key_base: ENC[AES256_GCM,data:kLjV/cxP/s8DJ+hAwGdKmzU+hQohEU1/tjBIrONtHQT/baYn874rHf1KYgn05OXP7J9074favlH4h1aQco+6og==,iv:7nSTefY8B19hGCW0XK/perQoRhgHxLD3dAcMrDbPlgw=,tag:HCAoGDcKE92ms4SpwEl3AA==,type:str] daily_tracker_mail_password: ENC[AES256_GCM,data:XCaEsrOmLoCQFurRc5X8l2YrtwGlp61j97XQTtPNGndzjqwXsjHfdHb/QO+V978fw9ZOWNrYKuSPR/t1,iv:jjhjPkyWmMFgPYQqNFagEttTW1b0u8nwSWiwKR+xT2U=,tag:WzCqt2S26vqO2I6sH3qqYQ==,type:str] silas_at_silasbrack_dot_com_password: ENC[AES256_GCM,data:HG9YCH+EmQHf5PxHFgZZPZdyQ/3BGMEPJ8ImlTZFBXKhjLP6nXtb9n/h3ez/2hak0cu2QZ2zcaC+3DZH,iv:sh1p4UAFJ0y14Xjm3mzVZLeZqKvtUyE04RLZMTfUYz0=,tag:hNTkAZM+qYqeYDTWgcBfLA==,type:str] +silasbrack_at_gmail_dot_com_app_password: ENC[AES256_GCM,data:mpzp90PC+tpJlxazSXrFpsh5qg==,iv:llSnXwOYhIHhVH/73leTwLsjorR2KATVBPRIdOqF9ik=,tag:1bIDLeN9x4X7cXEUfLuoiw==,type:str] sops: age: - recipient: age1s29qgfupgx7mqn9dk2rndp6xh63f5qan8vqa77ve603wd5m9a9rqkpq7re @@ -49,7 +50,7 @@ sops: ZGptR25vdWhEKzFxbE5qS051ZFF4RkEK1hGCQVE1E92nFSwSeYRRhxn2p3wBfhpS TZMRsiXtUdlgnoa+IJcFKsbwaZspYnKCA93IEfOXy6TadcoNiFzypw== -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-07-10T19:19:30Z" - mac: ENC[AES256_GCM,data:SzXDN/p1+AXmQD4vuMZtOWVBS0aEReAtA61xUtAKGZEuae5CCixEbYaCYKyk/kb0g85DCZSh2UHrhMhKQvPvKwzGhpCFLUD7IXMVhxE1XmtbQqAER82LZUI9mNuEVB/k/kggsAS+5TC4JIDOSMYN9f+qaIBTrO+QFMDxZPygVXg=,iv:Z1CRLAZZHWclnNFemmgcS8W9e/fp+Z8vtH9QkCBHHKc=,tag:Rafm1YoOUJzHuzCTDRQdkQ==,type:str] + lastmodified: "2026-07-10T20:18:20Z" + mac: ENC[AES256_GCM,data:PQ/aQBg7ozmXm/ydvt99WTGWg4TnN4VP0fkwOOEHe9ZZ98iaYR/UCs2u8l6y88TaZ/KqkishAF+m5j2gDdcgGFUkfTKl9N2W+rZMspWOYpvLr3ulnBi2TSKAMZLXZeihEE8iFMkFRdK2BbsVdTZHQ0y4QPqAr+bz40lgcTDiJoI=,iv:sMA3zQrk50ylPOgUpqIzo4GuvXqZdbrDy9m0av3mrSM=,tag:OrCxfRjpW3ejT80+uW75og==,type:str] unencrypted_suffix: _unencrypted version: 3.12.1