summary refs log tree commit diff
path: root/.config
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2025-01-07 17:37:36 +0100
committerRobert Günzler <r@gnzler.io>2025-01-07 17:38:51 +0100
commitf268916ae0e65c5bca2958f27bef55bfeebe514c (patch)
tree552036529b5b34ff1f1be0fe6c19b54492fa5756 /.config
parentbe5f474845be63fa891d44385264648ea1f09985 (diff)
update aerc config
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '.config')
-rw-r--r--.config/aerc/aerc.conf58
-rw-r--r--.config/aerc/binds.conf201
-rwxr-xr-x.config/aerc/filters/github-review-fix29
-rw-r--r--.config/aerc/stylesets/gnzler13
-rw-r--r--.config/aerc/stylesets/hu13
-rw-r--r--.config/aerc/stylesets/moji13
-rw-r--r--.config/aerc/stylesets/r56
-rw-r--r--.config/aerc/templates/new7
8 files changed, 253 insertions, 137 deletions
diff --git a/.config/aerc/aerc.conf b/.config/aerc/aerc.conf
index d5cca92..e6faea7 100644
--- a/.config/aerc/aerc.conf
+++ b/.config/aerc/aerc.conf
@@ -1,42 +1,50 @@
 # vim: ft=conf
 
 [ui]
-next-message-on-delete=true
-
-[ui:folder=Sent]
-index-format=%D %-40.40r %Z %s
+dirlist-left={{if eq .Folder "INBOX"}}󰶊 {{end}}{{if eq .Folder "Trash"}}󰩺 {{end}}{{if eq .Folder "Archive"}}󰀼 {{end}}{{if eq .Folder "Spam?"}}󰨰 {{end}}{{if eq .Folder "Sent Items"}}󰒊 {{end}}{{if eq .Folder "Drafts"}}󰤌 {{end}}{{.Folder}}
+dirlist-tree=true
 
-[ui:account=gnzler]
-styleset-name=gnzler
-
-[ui:account=hu]
-styleset-name=hu
+next-message-on-delete=true
+border-char-vertical="│"
+border-char-horizontal="─"
+styleset-name=r
 
-[ui:account=moji]
-styleset-name=moji
+[ui:folder=Sent Items]
+index-columns = date<20,to<40,flags>4,subject<*
+column-date = {{.DateAutoFormat .Date.Local}}
+column-to = {{.To | persons | join ", "}}
+column-flags = {{.Flags | join ""}}
+column-subject = {{.ThreadPrefix}}{{.Subject}}
 
 [viewer]
 # Default: less -R
-# pager=less -g -i -M -R -s -S -w -X
-# pager=nvimpager --noplugin -c 'set nowrap'
-#pager=bat --style=plain --color=always --language=email --wrap=character
-
+# pager=page
+# pager=less -g -i -M -s -S -w -X
+pager=less -c -F -i -R -s -~ --mouse
+# pager=bat --style=plain --color=always --language=email --wrap=character
 
 always-show-mime=true
 
+[compose]
+address-book-cmd = known-emails "%s"
+file-picker-cmd = porta filechooser
+
 [filters]
-application/pdf=pdf
-image/*=swayimg /dev/stdin
+#subject,~Git(hub|lab)=lolcat -f
+#from,thatguywhodoesnothardwraphismessages=fmt -w 72 | colorize
+X-GitHub-Recipient,robertgzr=github-review-fix | colorize
+
+# application/pdf=pdf
+# image/*=vv
+# text/*=bat -fP --file-name="$AERC_FILENAME"
+application/x-sh=bat -fP -l sh
 
 # keep defaults around
-text/plain=colorize
+text/html=html | colorize
+text/plain=wrap | colorize
 text/calendar=calendar
 message/delivery-status=colorize
 message/rfc822=colorize
-# text/html=pandoc -f html -t plain | colorize
-text/html=html | colorize
-text/*=bat -fP --file-name="$AERC_FILENAME"
-application/x-sh=bat -fP -l sh
-#image/*=catimg -w $(tput cols) -
-#subject,~Git(hub|lab)=lolcat -f
-#from,thatguywhodoesnothardwraphismessages=fmt -w 72 | colorize
+
+[hooks]
+mail-received = notify-send -i /usr/share/icons/mdi/scalable/email-fast-outline.svg -a aerc "[$AERC_ACCOUNT/$AERC_FOLDER] new mail from $AERC_FROM_NAME" "$AERC_SUBJECT"
diff --git a/.config/aerc/binds.conf b/.config/aerc/binds.conf
index 11009c2..9e0a41f 100644
--- a/.config/aerc/binds.conf
+++ b/.config/aerc/binds.conf
@@ -1,106 +1,161 @@
-# Binds are of the form <key sequence> = <command to run>
-# To use '=' in a key sequence, substitute it with "Eq": "<Ctrl+Eq>"
-# If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit
-<C-h> = :prev-tab<Enter>
-<C-l> = :next-tab<Enter>
+<C-h> = :prev-tab<cr>
+<C-l> = :next-tab<cr>
+<C-t> = :term<cr>
+? = :help keys<cr>
+
 
 [messages]
-q = :quit<Enter>
-
-j = :next<Enter>
-<Down> = :next<Enter>
-<PgDn> = :next 100%<Enter>
-k = :prev<Enter>
-<Up> = :prev<Enter>
-<PgUp> = :prev 100%<Enter>
-gg = :select 0<Enter>
-G = :select -1<Enter>
-
-<C-n> = :next-folder<Enter>
-<C-p> = :prev-folder<Enter>
-
-v = :mark -t<Enter>
-V = :mark -v<Enter>
-
-<Enter> = :view<Enter>
-dd = :read<Enter> :mv Trash<Enter>
-a = :read<Enter> :archive year<Enter>
-<Space> = :read<Enter>
-<C-Space> = :unread<Enter>
-U = :filter -u<Enter>
-fc = :filter ''<Enter>
-
-rr = :reply -aT reply<Enter>
-rq = :reply -aq<Enter>
-
-c = :cf<space>
+q = :quit<cr>
+
+j = :next<cr>
+<Down> = :next<cr>
+<PgDn> = :next 100%<cr>
+k = :prev<cr>
+<Up> = :prev<cr>
+<PgUp> = :prev 100%<cr>
+gg = :select 0<cr>
+G = :select -1<cr>
+
+<C-p> = :prev-folder<cr>
+<C-n> = :next-folder<cr>
+
+V = :mark -v<cr>
+v = :mark -t<cr>
+
+<cr> = :view<cr>
+<S-cr> = :vsplit<cr>
+<space> = :read -t<cr>
+dd = :read<cr> :mv Trash<cr>
+a = :read<cr> :archive year<cr>
+
+F = :filter<space> 
+fa = :filter -a # filter entire text
+fb = :filter -b # filter body
+fc = :filter -c # filter cc
+fd = :filter -d # filter date range
+fr = :filter -r # filter read
+fs = :filter -H Subject: # filter subject
+ft = :filter -t # filter recipient
+fu = :filter -u # filter unread
+ff = :filter -f "{{index (.From | emails) 0}}"<cr> # filter from current sender
+fl = :filter -H List-ID:"{{.Header \"List-ID\"}}"<cr> # filter from current list
+<Esc> = :clear<cr>
+
+sA = :sort -r arrival<cr> # sort arrival (reverse)
+sa = :sort arrival<cr> # sort arrival
+sC = :sort -r cc<cr> # sort cc (reversed)
+sc = :sort cc<cr> # sort cc (reversed)
+sF = :sort -r from<cr> # sort from (reversed)
+sf = :sort from<cr> # sort from
+
+rr = :reply -aT reply<cr>
+rq = :reply -aq<cr>
+
+ct = :compose -T new -H 'To: {{index (.To | emails) 0}}'<cr>
+cf = :compose -T new -H 'To: {{index (.From | emails) 0}}'<cr>
+
 $ = :term<space>
 ! = :term<space>
 | = :pipe<space>
 
 / = :search<space>
 \ = :filter<space>
-n = :next-result<Enter>
-N = :prev-result<Enter>
-T = :toggle-threads<Enter>
+n = :next-result<cr>
+N = :prev-result<cr>
+
+tt = :toggle-threads<cr>
+
+gi = :cf INBOX<cr>
+C = :check-mail<cr>
+cm = :check-mail<cr>
 
-gi = :cf INBOX<Enter>
-# <C-w> = :pipe -mb aerc-copy-link<Enter>
-<C-w> = :open-link 
-C = :check-mail<Enter>
+<C-o> = :vsplit + <cr>
+<C-i> = :vsplit - <cr>
+<C-w> = :vsplit<cr>
+
+zC = :collapse-folder<cr>
+zc = :collapse<cr> # collapse thread
+z0 = :expand-folder<cr>
+zo = :open-thread<cr>
 
 [messages:account=gnzler]
-gl = :cf lists<Enter>
-gh = :cf lists/github<Enter>
-gs = :cf lists/srht<Enter>
-ga = :cf Archive/2022<Enter>
-gw = :cf work<Enter>
+ga = :cf Archive/2024<cr>
+gs = :clear<cr>:filter -a @lists.sr.ht<cr>
+gh = :clear<cr>:filter -H 'X-Github-Recipient: robertgzr'<cr>
+gp = :clear<cr>:filter -a 'alpinelinux.org'<cr>
+gt = :clear<cr>:filter -H 'X-Bugzilla-URL: https://bugs.gentoo.org'<cr>
+
+[messages:folder=Drafts]
+<cr> = :recall<cr>
+
 
 [view]
-<C-k> = :prev-part<Enter>
-<C-j> = :next-part<Enter>
-<C-n> = :next<Enter>
-<C-p> = :prev<Enter>
+<C-k> = :prev-part<cr>
+<C-j> = :next-part<cr>
+
+<C-h> = :prev-tab<cr>
+<C-l> = :next-tab<cr>
 
-q = :close<Enter>
+<C-p> = :prev<cr>
+<C-n> = :next<cr>
+
+q = :close<cr>
 | = :pipe<space>
-D = :prompt 'Really delete?' mv Trash<Enter>
+D = :prompt 'Really delete?' mv Trash<cr>
 S = :save<space>
-A = :prompt 'Really archive?' archive year<Enter>
+A = :prompt 'Really archive?' archive year<cr>
+O = :open porta open-uri<space>
+
+f = :forward<cr>
+rr = :reply -a<cr>
+rq = :reply -aq<cr>
+rQ = :reply -aQ<cr>
+Rr = :reply<cr>
+Rq = :reply -q<cr>
 
-f = :forward<Enter>
-rr = :reply -a<Enter>
-rq = :reply -aq<Enter>
-rQ = :reply -aQ<Enter>
-Rr = :reply<Enter>
-Rq = :reply -q<Enter>
+H = :toggle-headers<cr>
+<C-w> = :open-link<space>
+
+ym = :pipe -sd k2 fmt -body | wl-copy -nf<cr>
+yf = :pipe -sd k2 fmt -headers=from | awk '{print $2}' | wl-copy -nf<cr>
+yt = :pipe -sd k2 fmt -headers=to | awk '{print $2}' | wl-copy -nf<cr>
+
+[view::passthrough]
+$noinherit = true
+$ex = <C-x>
+<Esc> = :toggle-key-passthrough<cr>
 
-H = :toggle-headers<Enter>
-# <C-w> = :pipe -mb aerc-copy-link<Enter>
-<C-w> = :open-link 
 
 [compose]
 $ex = <C-x>
-<C-k> = :prev-field<Enter>
-<C-j> = :next-field<Enter>
+$noinherit = true
+<C-k> = :prev-field<cr>
+<C-j> = :next-field<cr>
+<C-h> = :prev-tab<cr>
+<C-l> = :next-tab<cr>
+<tab> = :next-field<cr>
+<backtab> = :prev-field<cr>
 
 [compose::editor]
 $noinherit = true
 $ex = <C-x>
-<C-k> = :prev-field<Enter>
-<C-j> = :next-field<Enter>
+<C-k> = :prev-field<cr>
+<C-j> = :next-field<cr>
+<C-h> = :prev-tab<cr>
+<C-l> = :next-tab<cr>
 
 [compose::review]
-# Keybindings used when reviewing a message to be sent
-y = :send<Enter>
-n = :abort<Enter>
-v = :preview<Enter>
-p = :postpone<Enter>
-q = :choose -o d discard abort -o p postpone postpone<Enter>
-e = :edit<Enter>
+y = :send<cr>
+n = :abort<cr>
+v = :preview<cr>
+p = :postpone<cr>
+q = :choose -o d discard abort -o p postpone postpone<cr>
+e = :edit<cr>
 a = :attach<space>
 d = :detach<space>
 
 [terminal]
 $noinherit = true
 $ex = <C-x>
+<C-h> = :prev-tab<cr>
+<C-l> = :next-tab<cr>
diff --git a/.config/aerc/filters/github-review-fix b/.config/aerc/filters/github-review-fix
new file mode 100755
index 0000000..0c567ab
--- /dev/null
+++ b/.config/aerc/filters/github-review-fix
@@ -0,0 +1,29 @@
+#!/bin/awk -f
+
+/^> / {c=1}
+/^\w/ {c=0}
+
+# space out footer
+# /^--/ {
+#   cmd="tput lines"
+#   cmd | getline lines
+#   close(cmd);
+#
+#   for (i=0;i<lines;i++)
+#     printf "\n"
+# }
+/^--/ {
+  cmd="tput cols"
+  cmd | getline cols
+  close(cmd);
+
+  for (i=0;i<cols;i++)
+    printf "-"
+  printf "\n\n"
+  next
+}
+
+{
+  if (c) gsub("^(> |)", "> ")
+  print $0
+}
diff --git a/.config/aerc/stylesets/gnzler b/.config/aerc/stylesets/gnzler
deleted file mode 100644
index 1059131..0000000
--- a/.config/aerc/stylesets/gnzler
+++ /dev/null
@@ -1,13 +0,0 @@
-*.default=true
-*.selected.bg=13
-*.selected.fg=white
-
-title.reverse=true
-header.bold=true
-
-*error.bold=true
-*error.fg=9
-*warning.fg=3
-*success.fg=2
-
-statusline_default.fg=3
diff --git a/.config/aerc/stylesets/hu b/.config/aerc/stylesets/hu
deleted file mode 100644
index 72a663c..0000000
--- a/.config/aerc/stylesets/hu
+++ /dev/null
@@ -1,13 +0,0 @@
-*.default=true
-*.selected.bg=12
-*.selected.fg=white
-
-title.reverse=true
-header.bold=true
-
-*error.bold=true
-*error.fg=9
-*warning.fg=3
-*success.fg=2
-
-statusline_default.fg=3
diff --git a/.config/aerc/stylesets/moji b/.config/aerc/stylesets/moji
deleted file mode 100644
index 69331cf..0000000
--- a/.config/aerc/stylesets/moji
+++ /dev/null
@@ -1,13 +0,0 @@
-*.default=true
-*.selected.bg=1
-*.selected.fg=white
-
-title.reverse=true
-header.bold=true
-
-*error.bold=true
-*error.fg=9
-*warning.fg=3
-*success.fg=2
-
-statusline_default.fg=3
diff --git a/.config/aerc/stylesets/r b/.config/aerc/stylesets/r
new file mode 100644
index 0000000..55de166
--- /dev/null
+++ b/.config/aerc/stylesets/r
@@ -0,0 +1,56 @@
+# msglist_flagged.fg=3
+# *.default=true
+# *.selected.bg=5
+# *.selected.fg=15
+#
+# *error.fg=9
+# *warning.fg=11
+# *success.fg=2
+#
+# statusline_default.fg=3
+#
+# selector_focused.bg=5
+# selector_focused.fg=15
+# selector_chooser.bg=5
+# selector_chooser.fg=15
+
+tab.reverse = false
+
+border.bg = 0
+border.fg = 5
+
+statusline_default.bg = 255
+statusline_default.fg = 0
+statusline_default.reverse = true
+
+*.selected.bg = 5
+*.selected.fg = 0
+*.selected.reverse = false
+
+msglist_default.List-ID,~"github.com".bg = #52433d
+msglist_default.List-ID,~"github.com".selected.fg = toggle
+msglist_default.List-ID,~"github.com".selected.bg = toggle
+
+msglist_default.List-ID,~"lists.sr.ht".bg = #0f2540
+msglist_default.List-ID,~"lists.sr.ht".selected.fg = toggle
+msglist_default.List-ID,~"lists.sr.ht".selected.bg = toggle
+msglist_default.To,~"lists.sr.ht".bg = #0f2540
+msglist_default.To,~"lists.sr.ht".selected.fg = toggle
+msglist_default.To,~"lists.sr.ht".selected.bg = toggle
+
+msglist_default.List-ID,~"openstreetmap.org".bg = #0f4c3a
+msglist_default.List-ID,~"openstreetmap.org".selected.fg = toggle
+msglist_default.List-ID,~"openstreetmap.org".selected.bg = toggle
+
+msglist_default.List-ID,~"alpinelinux.org".bg = #4d5139
+msglist_default.List-ID,~"alpinelinux.org".selected.fg = toggle
+msglist_default.List-ID,~"alpinelinux.org".selected.bg = toggle
+msglist_default.From,~"@alpinelinux.org".bg = #4d5139
+msglist_default.From,~"@alpinelinux.org".selected.fg = toggle
+msglist_default.From,~"@alpinelinux.org".selected.bg = toggle
+
+msglist_default.X-Bugzilla-URL,~"bugs.gentoo.org".bg = #3c2f41
+msglist_default.X-Bugzilla-URL,~"bugs.gentoo.org".selected.bg = toggle
+msglist_default.X-Bugzilla-URL,~"bugs.gentoo.org".selected.bg = toggle
+
+msglist_flagged.fg = 11
diff --git a/.config/aerc/templates/new b/.config/aerc/templates/new
new file mode 100644
index 0000000..54002bd
--- /dev/null
+++ b/.config/aerc/templates/new
@@ -0,0 +1,7 @@
+{{range $idx, $elm := .To -}}
+{{if eq (exec `grep -q 'sr.ht$' && printf '1'` $elm.Address) "1" -}}
+From: "Robert Günzler" <r@gnzler.io>
+{{- end}}
+{{- end}}
+X-Mailer: aerc {{version}}
+