[emacs] update 7 drones
[~bandali/configs] / rc.org
diff --git a/rc.org b/rc.org
index 9761e6a..bc755f2 100644 (file)
--- a/rc.org
+++ b/rc.org
@@ -14,47 +14,6 @@ Note: This file is best viewed inside Emacs with org mode.
 This section contains the configuration files (dotfiles) of various
 programs I use.
 
-** [[https://github.com/afewmail/afew][afew]]
-:PROPERTIES:
-:header-args+: :tangle ~/.config/afew/config
-:END:
-
-#+begin_quote
-an initial tagging script for notmuch mail
-#+end_quote
-
-#+begin_src conf
-# This is the default filter chain
-[SpamFilter]
-#[ClassifyingFilter]
-[KillThreadsFilter]
-#[ListMailsFilter]
-[ArchiveSentMailsFilter]
-sent_tag = sent
-[InboxFilter]
-
-#[Filter.1]
-#query = 'folder:amin/lists/.haskell-cafe'
-#tags = +lists;+lists/haskell-cafe
-#message = lists/haskell-cafe
-
-#[Filter.2]
-#query = 'folder:amin/lists/.haskell-weekly'
-#tags = +lists;+lists/haskell-weekly
-#message = lists/haskell-weekly
-
-#[Filter.3]
-#query = 'folder:amin/lists/.hackernewsletter'
-#tags = +lists;+lists/hackernewsletter
-#message = lists/hackernewsletter
-
-
-#[FolderNameFilter]
-#folder_blacklist = Inbox
-#maildir_separator = /.
-#folder_transforms = Drafts:draft Junk:spam Trash:deleted Sent:sent Archive:archive lists/haskell-cafe:lists/haskell-cafe
-#+end_src
-
 ** bspwm
 
 *** bspwmrc
@@ -685,13 +644,13 @@ timeout = 0
 [user]
     name = Amin Bandali
     email = amin@aminb.org
-    signingkey = 4E05246AB0BF7FFB
+    signingkey = 4E05246AB0BF7FFB
 #+end_src
 
 **** signing
 #+begin_src conf
-[commit]
-    gpgsign = true
+[commit]
+    gpgsign = true
 # [format]
 #     signoff = true
 #+end_src
@@ -759,6 +718,16 @@ timeout = 0
        user = aminb
 #+end_src
 
+**** send-email
+#+begin_src conf
+[sendemail]
+       smtpuser = amin@aminb.org
+       smtpserver = nix.aminb.org
+       smtpserverport = 587
+       smtpencryption = tls
+       annotate = yes
+#+end_src
+
 *** gitignore
 :PROPERTIES:
 :header-args+: :tangle ~/.gitignore_global
@@ -821,7 +790,7 @@ EndSection
 type = SimplePOP3SSLRetriever
 server = fencepost.gnu.org
 username = aminb
-password_command = ("gpg2", "--no-tty", "-q", "-d", "~/.passwd/gnu.gpg")
+password_command = ("gpg2", "--no-tty", "-q", "-d", "/home/amin/.passwd/gnu.gpg")
 port = 995
 use_apop = True
 
@@ -1446,7 +1415,8 @@ passwordeval gpg2 --no-tty -q -d ~/.passwd/amin.gpg
 # gnu
 account gnu
 host fencepost.gnu.org
-tls_fingerprint 94:0E:37:EB:EA:44:5A:4B:B6:6F:16:3D:6C:7E:7E:44:2D:93:61:C1:FE:82:A8:29:5E:3C:12:4E:2D:BE:0E:2C
+# use `msmtp -a gnu --serverinfo --tls --tls-certcheck=off --tls-fingerprint=` to get the current fingerprint
+tls_fingerprint 28:70:42:76:1C:EC:91:5F:D1:B3:27:A1:CD:3B:32:A4:8B:0B:DC:3A:CD:CA:F6:6F:E4:61:BA:69:D7:4D:0D:0B
 tls_starttls on
 from aminb@gnu.org
 user aminb
@@ -2106,7 +2076,7 @@ other_email=abandali@uwaterloo.ca;amin.bandali@uwaterloo.ca;aminb@gnu.org;
 [new]
 tags=new;
 #tags=unread;inbox;
-ignore=.uidvalidity;.mbsyncstate
+ignore=.uidvalidity;.mbsyncstate;/.*/dovecot*/
 
 # Search configuration
 #
@@ -2155,23 +2125,71 @@ synchronize_flags=true
 gpg_path=gpg
 #+end_src
 
+*** pre-new hook
+:PROPERTIES:
+:header-args+: :tangle ~/mail/.notmuch/hooks/pre-new :shebang "#!/bin/sh"
+:END:
+
+#+begin_src sh
+touch /tmp/gnusieve.log
+sieve-filter -eW -o postmaster_address=postmaster@aminb.org \
+            -o mail_location=maildir:$MAILDIR/gnu:LAYOUT=fs:INBOX=$MAILDIR/gnu/Inbox ~/sieve/gnu.sieve INBOX delete &>>/tmp/gnusieve.log
+#+end_src
+
 *** post-new hook
 :PROPERTIES:
 :header-args+: :tangle ~/mail/.notmuch/hooks/post-new :shebang "#!/bin/sh"
 :END:
 
 #+begin_src sh
-afew -tn
+# apply sent tag to messages sent by me
+notmuch tag -new +sent -- from:amin@aminb.org or from:aminb@gnu.org or from:abandali@uwaterloo.ca or from:amin.bandali@uwaterloo.ca
+
+# initial tagging
+notmuch tag +inbox +unread -new -- tag:new
+
 
 # apply tags to lists
-notmuch tag +lists +lists/deepspec -- folder:amin/lists/deepspec
-notmuch tag +lists +lists/haskell-cafe -- folder:amin/lists/haskell-cafe
-notmuch tag +lists +lists/haskell-weekly -- folder:amin/lists/haskell-weekly
-notmuch tag +lists +lists/hackernewsletter -- folder:amin/lists/hackernewsletter
-notmuch tag +lists +lists/notmuch -- folder:amin/lists/notmuch
-notmuch tag +lists +lists/info-gnu-emacs -- folder:amin/lists/info-gnu-emacs
-notmuch tag +lists +lists/help-gnu-emacs -- folder:amin/lists/help-gnu-emacs
-notmuch tag +lists +lists/emacs-devel -- folder:amin/lists/emacs-devel
+
+# <aminb>
+notmuch tag -inbox +lists/~sircmpwn/srht-admins   -- folder:amin/lists/~sircmpwn/srht-admins
+notmuch tag -inbox +lists/~sircmpwn/srht-announce -- folder:amin/lists/~sircmpwn/srht-announce
+notmuch tag -inbox +lists/~sircmpwn/srht-dev      -- folder:amin/lists/~sircmpwn/srht-dev
+notmuch tag -inbox +lists/~sircmpwn/srht-discuss  -- folder:amin/lists/~sircmpwn/srht-discuss
+
+notmuch tag -inbox +lists/hackernewsletter -- folder:amin/lists/hackernewsletter
+notmuch tag -inbox +lists/haskell-weekly   -- folder:amin/lists/haskell-weekly
+# </aminb>
+
+# <uw>
+notmuch tag -inbox +lists/cs136 -- folder:uwaterloo/lists/cs136
+notmuch tag -inbox +lists/se463 -- folder:uwaterloo/lists/se463
+
+notmuch tag -inbox +lists/clvsingle        -- folder:uwaterloo/lists/Clvsingle
+notmuch tag -inbox +lists/gsa              -- folder:uwaterloo/lists/GSA
+notmuch tag -inbox +lists/math-grad        -- folder:uwaterloo/lists/Math-grad
+notmuch tag -inbox +lists/scs-grads        -- folder:uwaterloo/lists/scs-grads
+notmuch tag -inbox +lists/watform-students -- folder:uwaterloo/lists/Watform-students
+# </uw>
+
+# <gnu>
+notmuch tag -inbox +lists/emacs-devel       -- folder:gnu/l/emacs-devel
+notmuch tag -inbox +lists/emacs-orgmode     -- folder:gnu/l/emacs-orgmode
+notmuch tag -inbox +lists/emacsconf-discuss -- folder:gnu/l/emacsconf-discuss
+notmuch tag -inbox +lists/fencepost-users   -- folder:gnu/l/fencepost-users
+notmuch tag -inbox +lists/guix-devel        -- folder:gnu/l/guix-devel
+notmuch tag -inbox +lists/guile-devel       -- folder:gnu/l/guile-devel
+notmuch tag -inbox +lists/help-gnu-emacs    -- folder:gnu/l/help-gnu-emacs
+notmuch tag -inbox +lists/info-gnu-emacs    -- folder:gnu/l/info-gnu-emacs
+notmuch tag -inbox +lists/www-commits       -- folder:gnu/l/www-commits
+notmuch tag -inbox +lists/www-discuss       -- folder:gnu/l/www-discuss
+notmuch tag -inbox +webmasters              -- folder:gnu/webmasters
+
+notmuch tag -inbox +lists/deepspec          -- folder:gnu/l/deepspec
+notmuch tag -inbox +lists/haskell-cafe      -- folder:gnu/l/haskell-cafe
+notmuch tag -inbox +lists/haskell-art       -- folder:gnu/l/haskell-art
+notmuch tag -inbox +lists/notmuch           -- folder:gnu/l/notmuch
+#</gnu>
 #+end_src
 
 *** notmuch.service
@@ -2302,6 +2320,56 @@ def prime_gpg_agent():
 prime_gpg_agent()
 #+end_src
 
+** pigeonhole
+*** gnu.sieve
+:PROPERTIES:
+:header-args+: :tangle ~/sieve/gnu.sieve :comments none
+:END:
+
+#+begin_src conf
+require [ "regex", "variables", "fileinto", "envelope", "mailbox", "imap4flags", "include" ];
+
+if anyof (
+  address :is "from" "webmasters@gnu.org",
+  address :is "from" "webmasters-comment@gnu.org") {
+  fileinto :create "webmasters";
+  stop;
+}
+
+include :personal "lists";
+#+end_src
+
+*** lists.sieve
+:PROPERTIES:
+:header-args+: :tangle ~/sieve/lists.sieve :comments none
+:END:
+
+#+begin_src conf
+require [ "regex", "variables", "fileinto", "envelope", "mailbox", "imap4flags",
+ "include" ];
+
+if anyof (
+    header :contains "list-id" "<emacs-devel.gnu.org>",
+    header :contains "list-id" "<emacs-orgmode.gnu.org>",
+    header :contains "list-id" "<emacsconf-discuss.gnu.org>",
+    header :contains "list-id" "<fencepost-users.gnu.org>",
+    header :contains "list-id" "<guix-devel.gnu.org>",
+    header :contains "list-id" "<guile-devel.gnu.org>",
+    header :contains "list-id" "<help-gnu-emacs.gnu.org>",
+    header :contains "list-id" "<info-gnu-emacs.gnu.org>",
+    header :contains "list-id" "<www-commits.gnu.org>",
+    header :contains "list-id" "<www-discuss.gnu.org>",
+    header :contains "list-id" "<deepspec.lists.cs.princeton.edu>",
+    header :contains "list-id" "<haskell-cafe.haskell.org>",
+    header :contains "list-id" "<haskell-art.we.lurk.org>",
+    header :contains "list-id" "<notmuch.notmuchmail.org>") {
+    if header :regex "list-id" "<([a-z_0-9-]+)[.@]" {
+        set :lower "listname" "${1}";
+        fileinto :create "l/${listname}";
+    }
+}
+#+end_src
+
 ** polybar
 
 *** config
@@ -3864,6 +3932,7 @@ choice.
 
 #+begin_src sh
 xset -b  # disable bell
+xset r rate 200 45  # repeat delay (ms) and rate (repeats/sec)
 
 # setxkbmap -option compose:ralt