full refactoring re mothership to endos

This commit is contained in:
Henrik Bakken
2025-10-31 23:53:03 +01:00
parent a799c63b90
commit 6c777a7541
125 changed files with 1824 additions and 1568 deletions
+23
View File
@@ -0,0 +1,23 @@
[hjarl]
source = imaps://henrik%40hjarl.com@imap.purelymail.com
outgoing = smtps://henrik%40hjarl.com@smtp.purelymail.com
default = INBOX
from = Henrik Bakken <henrik@hjarl.com>
copy-to = Sent
cache-headers = true
source-cred-cmd = pass show henrik@hjarl.com
outgoing-cred-cmd = pass show henrik@hjarl.com
folders-sort = INBOX, Drafts, Sent, Trash, Junk
folder-map = ~/.config/aerc/henrik@hjarl.com.map
[gmail]
source = imaps://bakken.henrik@imap.gmail.com:993
outgoing = smtps+plain://bakken.henrik@smtp.gmail.com:465
default = INBOX
from = Henrik Bakken <bakken.henrik@gmail.com>
copy-to = Sent
cache-headers = true
source-cred-cmd = pass show bakken.henrik@gmail.com
outgoing-cred-cmd = pass show bakken.henrik@gmail.com
folders-sort = INBOX, Drafts, Starred, All Mail, Sent Mail, Important, Trash
folder-map = ~/.config/aerc/bakken.henrik@gmail.com.map
+79
View File
@@ -0,0 +1,79 @@
[general]
enable-osc8=true
log-file=~/aerc.log
[ui]
border-char-vertical="│"
border-char-horizontal="─"
styleset-name=catppuccin.frappe
sidebar-width=25
fuzzy-complete=true
timestamp-format=Mon 2006-01-02 15:04
this-day-time-format=15:04
this-week-time-format=
this-year-time-format=
mouse-enabled=true
tab-title-account=󰇮 {{.Account}} {{if .Unread "INBOX"}}({{.Unread "INBOX"}}){{end}}
dirlist-left=  {{.Folder}}
dirlist-right={{if .Unread}}{{humanReadable .Unread}}{{end}}
next-message-on-delete=false
dirlist-tree=true
dirlist-collapse=1
icon-unencrypted=
icon-encrypted=✔
icon-signed=✔
icon-signed-encrypted=✔
icon-unknown=✘
icon-invalid=⚠
reverse-thread-order=true
threading-enabled=true
[viewer]
always-show-mime=true
completion-delay=100ms
pager=bat --plain --tabs 4 --paging always --color always
sort=unread
[compose]
address-book-cmd=khard email --parsable --remove-first-line %s
header-layout=To|From,Cc|Bcc,Subject
reply-to-self=false
[multipart-converters]
text/html=pandoc -f markdown+lists_without_preceding_blankline -t html
[filters]
text/plain=colorize
text/calendar=calendar
text/html=w3m -T text/html -I UTF-8 -cols $(tput cols) -dump -o display_image=false -o display_link_number=true
#text/html=pandoc -f html -t plain | colorize
#text/html=! html
#text/*=bat -fP --file-name="$AERC_FILENAME"
message/delivery-status=colorize
message/rfc822=colorize
application/pdf=pdftotext - -l 10 -nopgbrk -q - | fmt -w $(tput cols)
#application/x-sh=bat -fP -l sh
image/*=img2sixel
#image/*=catimg -w $(tput cols) -
#subject,~Git(hub|lab)=lolcat -f
#from,thatguywhodoesnothardwraphismessages=wrap -w 100 | colorize
.headers=colorize
[openers]
text/html=qutebrowser
application/x-pdf=zathura
application/pdf=zathura
application/octet-stream=zathura
image/*=qimgv
image/png=qimgv
image/jpg=qimgv
video/*=mpv
audio/*=mpv --no-video
text/calendar=footclient --app-id floating_shell --window-size-chars 80x45 khal import {}
text/*=footclient --app-id floating_shell --window-size-chars 80x45 nvim {}
[hooks]
aerc-startup=aerc :terminal khal interactive \
&& aerc :pin-tab \
&& aerc :change-tab hjarl
mail-received=notify-send "[$AERC_ACCOUNT/$AERC_FOLDER] New mail from $AERC_FROM_NAME" "$AERC_SUBJECT"
+2
View File
@@ -0,0 +1,2 @@
Trash = [Google Mail]/Bin
* = [Google Mail]/*
+151
View File
@@ -0,0 +1,151 @@
<C-t> = :term<Enter>
? = :help keys<Enter>
[messages]
! = :term<space>
$ = :term<space>
/ = :search<space>
| = :pipe<space>
<C-b> = :prev 100%<Enter>
<C-d> = :next 50%<Enter>
<C-f> = :next 100%<Enter>
<C-u> = :prev 50%<Enter>
<Enter> = :view<Enter>
<Esc> = :clear<Enter>
<Space> = :mark -t<Enter>
\ = :filter<space>
A = :unmark -a<Enter>:mark -T<Enter>:archive flat<Enter>
aa = :archive flat<Enter>
b = :bounce<space>
c = :compose<Enter>
D = :delete-message<Enter>
dd = :mv Trash<Enter>
f = :forward -A<Enter>
G = :select -1<Enter>
gf = :cf<space>
gg = :select 0<Enter>
gi = :cf INBOX<Enter>
gt = :cf Trash<Enter>
H = :collapse-folder<Enter>
<C-o> = :prev-message<Enter>
<backtab> = :prev-message<Enter>
k = :prev-message<Enter>
<C-i> = :next-message<Enter>
<tab> = :next-message<Enter>
j = :next-message<Enter>
<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>
J = :next-folder<Enter>
K = :prev-folder<Enter>
L = :expand-folder<Enter>
m = :move<space>
n = :next-result<Enter>
N = :prev-result<Enter>
q = :quit<Enter>
r = :reply -aq<Enter>
R = :reply -q<Enter>
s = :split<Enter>
S = :vsplit<Enter>
T = :toggle-threads<Enter>
v = :mark -t<Enter>
V = :mark -v<Enter>
zb = :align bottom<Enter>
zt = :align top<Enter>
zz = :align center<Enter>
[messages:folder=Drafts]
<Enter> = :recall<Enter>
[messages:folder=Trash]
dd = :delete-message<Enter>
D = :delete-message<Enter>
[messages:folder=Spam]
dd = :delete-message<Enter>
D = :delete-message<Enter>
[view]
/ = :toggle-key-passthrough<Enter>/
| = :pipe<space>
<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>
<C-i> = :next-part<Enter>
<tab> = :next-part<Enter>
<C-o> = :prev-part<Enter>
<backtab> = :prev-part<Enter>
A = :unmark -a<Enter>:mark -T<Enter>:archive flat<Enter>
aa = :archive flat<Enter>
D = :delete-message<Enter>
dd = :mv Trash<Enter>
f = :open-link <space>
<C-f> = :forward -A<Enter>
H = :toggle-headers<Enter>
J = :next-message<Enter>
K = :prev-message<Enter>
m = :move<space>
O = :open<Enter>
o = :open<Enter>
q = :close<Enter>
r = :reply -aq<Enter>
R = :reply -q<Enter>
S = :save<space>
[view:folder=Trash]
dd = :delete-message<Enter>
D = :delete-message<Enter>
[view:folder=Spam]
dd = :delete-message<Enter>
D = :delete-message<Enter>
[view::passthrough]
$noinherit = true
$ex = <C-x>
<Esc> = :toggle-key-passthrough<Enter>
[compose]
# Keybindings used when the embedded terminal is not selected in the compose view
$complete = <C-e>
$ex = <C-x>
$noinherit = true
<A-n> = :switch-account -n<Enter>
<A-p> = :switch-account -p<Enter>
<C-n> = :next-tab<Enter>
<C-p> = :prev-tab<Enter>
<C-o> = :prev-field<Enter>
<C-i> = :next-field<Enter>
<backtab> = :prev-field<Enter>
<tab> = :next-field<Enter>
[compose::editor]
# Keybindings used when the embedded terminal is selected in the compose view
$noinherit = true
$ex = <C-x>
<C-n> = :next-tab<Enter>
<C-p> = :prev-tab<Enter>
<C-o> = :prev-field<Enter>
<C-i> = :next-field<Enter>
<backtab> = :prev-field<Enter>
<tab> = :next-field<Enter>
[compose::review]
y = :send<Enter> # Send
n = :abort<Enter> # Abort (discard message, no confirmation)
v = :preview<Enter> # Preview message
p = :postpone<Enter> # Postpone
h = :multipart text/html<Enter> # Add html from markdown
H = :multipart -d text/html<Enter> # Remove html
q = :choose -o d discard abort -o p postpone postpone<Enter> # Abort or postpone
Q = :abort<Enter> # Abort
e = :edit<Enter> # Edit (body and headers)
a = :attach<space> # Add attachment
d = :detach<space> # Remove attachment
# s = :sign<Enter> # Toggle signing
# x = :encrypt<Enter> # Toggle encryption to all recipients
[terminal]
$noinherit = true
$ex = <C-x>
<C-n> = :next-tab<Enter>
<C-p> = :prev-tab<Enter>
View File
+56
View File
@@ -0,0 +1,56 @@
# https://raw.githubusercontent.com/catppuccin/aerc/refs/heads/main/dist/catppuccin-frappe
*.default=true
*.normal=true
default.fg=#c6d0f5
error.fg=#e78284
warning.fg=#ef9f76
success.fg=#a6d189
tab.fg=#737994
tab.bg=#292c3c
tab.selected.fg=#c6d0f5
tab.selected.bg=#303446
tab.selected.bold=true
border.fg=#232634
border.bold=true
msglist_unread.bold=true
msglist_flagged.fg=#e5c890
msglist_flagged.bold=true
msglist_result.fg=#8caaee
msglist_result.bold=true
msglist_*.selected.bold=true
msglist_*.selected.bg=#414559
dirlist_*.selected.bold=true
dirlist_*.selected.bg=#414559
statusline_default.fg=#949cbb
statusline_default.bg=#414559
statusline_error.bold=true
statusline_success.bold=true
completion_default.selected.bg=#414559
part_*.fg=#c6d0f5
part_mimetype.fg=#c6d0f5
part_*.selected.fg=#c6d0f5
part_*.selected.bg=#303446
part_filename.selected.bold=true
[viewer]
url.fg=#8caaee
url.underline=true
header.bold=true
signature.dim=true
diff_meta.bold=true
diff_chunk.fg=#8caaee
diff_chunk_func.fg=#8caaee
diff_chunk_func.bold=true
diff_add.fg=#a6d189
diff_del.fg=#e78284
quote_*.fg=#737994
quote_1.fg=#949cbb
+56
View File
@@ -0,0 +1,56 @@
# https://raw.githubusercontent.com/catppuccin/aerc/refs/heads/main/dist/catppuccin-latte
#*.default=true
*.normal=true
default.fg=#4c4f69
error.fg=#d20f39
warning.fg=#fe640b
success.fg=#40a02b
tab.fg=#9ca0b0
tab.bg=#e6e9ef
tab.selected.fg=#4c4f69
tab.selected.bg=#eff1f5
tab.selected.bold=true
border.fg=#dce0e8
border.bold=true
msglist_unread.bold=true
msglist_flagged.fg=#df8e1d
msglist_flagged.bold=true
msglist_result.fg=#1e66f5
msglist_result.bold=true
msglist_*.selected.bold=true
msglist_*.selected.bg=#ccd0da
dirlist_*.selected.bold=true
dirlist_*.selected.bg=#ccd0da
statusline_default.fg=#7c7f93
statusline_default.bg=#ccd0da
statusline_error.bold=true
statusline_success.bold=true
completion_default.selected.bg=#ccd0da
part_*.fg=#4c4f69
part_mimetype.fg=#4c4f69
part_*.selected.fg=#4c4f69
part_*.selected.bg=#eff1f5
part_filename.selected.bold=true
[viewer]
url.fg=#1e66f5
url.underline=true
header.bold=true
signature.dim=true
diff_meta.bold=true
diff_chunk.fg=#1e66f5
diff_chunk_func.fg=#1e66f5
diff_chunk_func.bold=true
diff_add.fg=#40a02b
diff_del.fg=#d20f39
quote_*.fg=#9ca0b0
quote_1.fg=#7c7f93
@@ -0,0 +1,56 @@
# https://raw.githubusercontent.com/catppuccin/aerc/refs/heads/main/dist/catppuccin-macchiato
*.default=true
*.normal=true
default.fg=#cad3f5
error.fg=#ed8796
warning.fg=#f5a97f
success.fg=#a6da95
tab.fg=#6e738d
tab.bg=#1e2030
tab.selected.fg=#cad3f5
tab.selected.bg=#24273a
tab.selected.bold=true
border.fg=#181926
border.bold=true
msglist_unread.bold=true
msglist_flagged.fg=#eed49f
msglist_flagged.bold=true
msglist_result.fg=#8aadf4
msglist_result.bold=true
msglist_*.selected.bold=true
msglist_*.selected.bg=#363a4f
dirlist_*.selected.bold=true
dirlist_*.selected.bg=#363a4f
statusline_default.fg=#939ab7
statusline_default.bg=#363a4f
statusline_error.bold=true
statusline_success.bold=true
completion_default.selected.bg=#363a4f
part_*.fg=#cad3f5
part_mimetype.fg=#cad3f5
part_*.selected.fg=#cad3f5
part_*.selected.bg=#24273a
part_filename.selected.bold=true
[viewer]
url.fg=#8aadf4
url.underline=true
header.bold=true
signature.dim=true
diff_meta.bold=true
diff_chunk.fg=#8aadf4
diff_chunk_func.fg=#8aadf4
diff_chunk_func.bold=true
diff_add.fg=#a6da95
diff_del.fg=#ed8796
quote_*.fg=#6e738d
quote_1.fg=#939ab7
+56
View File
@@ -0,0 +1,56 @@
# https://raw.githubusercontent.com/catppuccin/aerc/refs/heads/main/dist/catppuccin-mocha
*.default=true
*.normal=true
default.fg=#cdd6f4
error.fg=#f38ba8
warning.fg=#fab387
success.fg=#a6e3a1
tab.fg=#6c7086
tab.bg=#181825
tab.selected.fg=#cdd6f4
tab.selected.bg=#1e1e2e
tab.selected.bold=true
border.fg=#11111b
border.bold=true
msglist_unread.bold=true
msglist_flagged.fg=#f9e2af
msglist_flagged.bold=true
msglist_result.fg=#89b4fa
msglist_result.bold=true
msglist_*.selected.bold=true
msglist_*.selected.bg=#313244
dirlist_*.selected.bold=true
dirlist_*.selected.bg=#313244
statusline_default.fg=#9399b2
statusline_default.bg=#313244
statusline_error.bold=true
statusline_success.bold=true
completion_default.selected.bg=#313244
part_*.fg=#cdd6f4
part_mimetype.fg=#cdd6f4
part_*.selected.fg=#cdd6f4
part_*.selected.bg=#1e1e2e
part_filename.selected.bold=true
[viewer]
url.fg=#89b4fa
url.underline=true
header.bold=true
signature.dim=true
diff_meta.bold=true
diff_chunk.fg=#89b4fa
diff_chunk_func.fg=#89b4fa
diff_chunk_func.bold=true
diff_add.fg=#a6e3a1
diff_del.fg=#f38ba8
quote_*.fg=#6c7086
quote_1.fg=#9399b2
+83
View File
@@ -0,0 +1,83 @@
# should work with any terminal colorscheme, but was designed for gruvbox
# terminal colors are preferred, but hex is used for grayscale
*.default=true
# present in 'Send this email?' dialog
title.fg=yellow
title.bg=#303030
title.bold=true
# used in setup and in 'From:' etc
header.bold=true
header.fg=purple
# decorative lines
border.fg=blue
# requires attention
*error.bold=true
*error.fg=red
*error.blink=true
*warning.fg=yellow
*warning.blink=true
*success.fg=green
# statusline
statusline_default.fg=gray
statusline_*.bg=#303030
# message list colors
msglist_deleted.fg=gray
msglist_unread.fg=#98971a
msglist_unread.bold=true
msglist_default.fg=#dedede
msglist_marked.fg=yellow
msglist_marked.reverse=true
msglist_flagged.fg=white
# msglist_flagged.bg=red
msglist_flagged.bold=true
# inbox etc
dirlist_default.fg=#dedede
dirlist_unread.fg=white
dirlist_unread.bold=true
# highlight selected item
*.selected.bg=#303030
*.selected.fg=#fabd2f
*.selected.bold=true
# primarily used in account setup
selector_default.fg=gray
selector_chooser.bold=true
selector_focused.bg=green
selector_focused.bold=true
# command completion
completion_default.bg=#303030
completion_gutter.bg=#303030
completion_pill.bg=aqua
#dynamic
*msglist_answered.fg = #21771f
[viewer]
header.fg=#d845c5
header.bold=true
signature.fg=3
signature.dim=true
diff_meta.fg=#ff0000
diff_meta.bold=true
diff_chunk.dim=true
diff_add.fg=#00ff00
diff_del.fg=#ff0000
quote_1.fg=6
quote_2.fg=7
quote_3.fg=6
quote_4.fg=7
quote_3.dim=true
quote_4.dim=true
quote_x.fg=gray
quote_x.dim=true
+52
View File
@@ -0,0 +1,52 @@
# styleset for aerc providing color and sensible defaults
*.default=true
*.normal=true
# style for selected elements
*.selected.bold=true
*.selected.fg="#fe8019"
# status message style
error.fg=red
error.bold=true
warning.fg=yellow
warning.bold=true
success.fg=green
success.bold=true
# title and header style
title.fg=blue
title.bold=true
header.fg=green
header.bold=true
# statusline style
statusline_default.fg=green
statusline_error.fg=red
statusline_success.fg=green
statusline_*.bold=true
# style for messages in message list
msglist_unread.fg=green
msglist_unread.bold=true
msglist_flagged.fg=orangered
msglist_flagged.bold=true
msglist_deleted.fg=gray
msglist_deleted.bold=true
msglist_marked.bg="#665c54"
msglist_result.fg=yellow
msglist_result.bold=true
# style for directories in directory list
dirlist*.fg=blue
dirlist*.bold=true
dirlist*.selected.fg=blue
dirlist*.selected.reverse=true
# tab style
tab.bg="#3C3836"
tab.bold=false
tab.selected.default=true
tab.selected.fg=yellow
tab.selected.bold=true
tab.selected.reverse=false
+75
View File
@@ -0,0 +1,75 @@
# vim: ft=dosini
*.default=true
*.normal=true
border.bg=#005f87
title.bg=#005f87
title.fg=white
title.bold=true
header.bold=true
header.fg=#005f87
tab.selected.fg=white
tab.selected.bg=#005f87
tab.selected.bold=true
dirlist*.selected.bg=#005f87
dirlist*.selected.fg=white
dirlist*.selected.bold=true
dirlist_unread.fg=#64A6B3
*error.bold=true
*error.fg=red
*warning.fg=yellow
*success.fg=green
statusline_default.bg=#303030
statusline_error.fg=red
msglist_unread.fg=#ffffff
msglist_unread.bold=true
msglist_deleted.fg=#666666
#msglist_*.selected.bg=#303030
msglist_*.selected.fg=yellow
msglist_marked.fg=white
msglist_marked.selected.fg=white
msglist_marked.bg=#005f87
msglist_marked.selected.bg=#005fff
msglist_pill.reverse=true
part_*.fg=#ffffff
part_mimetype.fg=#005f87
part_*.selected.fg=#ffffff
part_*.selected.bg=#005f87
part_filename.selected.bold=true
completion_pill.reverse=true
selector_focused.bold=true
selector_focused.bg=#005f87
selector_focused.fg=white
selector_chooser.bold=true
selector_chooser.bg=#005f87
selector_chooser.fg=white
default.selected.bold=true
default.selected.fg=white
default.selected.bg=#005f87
completion_default.selected.bg=#005f87
[viewer]
url.fg=#ffffaf
url.underline=true
header.fg=#af87ff
signature.fg=#af87ff
diff_meta.fg=#ffffff
diff_meta.bold=true
diff_chunk.fg=#00cdcd
diff_add.fg=#00cd00
diff_del.fg=#cd0000
quote_1.fg=#5fafff
quote_2.fg=#ff8700
quote_3.fg=#af87ff
quote_4.fg=#ff5fd7
quote_x.fg=#808080
+8
View File
@@ -0,0 +1,8 @@
X-Mailer: aerc {{version}}
Forwarded message from {{.OriginalFrom | names | join ", "}} on {{dateFormat .OriginalDate "Mon Jan 2, 2006 at 3:04 PM"}}:
{{.OriginalText}}
{{- with .Signature }}
{{.}}
{{- end }}
+5
View File
@@ -0,0 +1,5 @@
X-Mailer: aerc {{version}}
{{- with .Signature }}
{{.}}
{{- end -}}
+23
View File
@@ -0,0 +1,23 @@
X-Mailer: aerc {{version}}
On {{dateFormat (.OriginalDate | toLocal) "Mon Jan 2, 2006 at 3:04 PM MST"}}, {{.OriginalFrom | names | join ", "}} wrote:
{{ if or
(eq .OriginalMIMEType "text/html")
(contains (toLower .OriginalText) "<html")
}}
{{- $text := exec `/usr/lib/aerc/filters/html` .OriginalText | replace `\r` `` -}}
{{- range split "\n" $text -}}
{{- if or
(eq (len .) 0)
(match `^\[.+\]\s*$` .)
}}{{continue}}{{end}}
{{- printf "%s\n" . | replace `^[\s]+` "" | quote}}
{{- end -}}
{{- else }}
{{- trimSignature .OriginalText | quote -}}
{{- end -}}
{{- with .Signature }}
{{.}}
{{- end }}