From 8415f9807cad312d13e1c09f521487d633895c87 Mon Sep 17 00:00:00 2001 From: Henrik Bakken Date: Sun, 18 May 2025 13:40:19 +0200 Subject: [PATCH] neomutt -> aerc+khard --- .gitignore | 1 - .gitsecret/paths/mapping.cfg | 1 - SECRETS/neomutt/pwd_henrik@hjarl.com.secret | Bin 519 -> 0 bytes aerc/accounts.conf | 23 ++ aerc/aerc.conf | 74 ++++ aerc/bakken.henrik@gmail.com.map | 2 + aerc/binds.conf | 160 ++++++++ aerc/henrik@hjarl.com.map | 0 aerc/stylesets/catppuccin.frappe | 50 +++ aerc/stylesets/catppuccin.latte | 50 +++ aerc/stylesets/catppuccin.macchiato | 50 +++ aerc/stylesets/catppuccin.mocha | 50 +++ aerc/stylesets/gruvbox.conf | 83 ++++ aerc/stylesets/julianschuler.conf | 52 +++ aerc/stylesets/qxx.conf | 75 ++++ khal/config | 4 +- khard/khard.conf | 49 +++ manjaro.sh | 6 +- msmtp/config | 21 -- neomutt/henrik@hjarl.com | 22 -- neomutt/mailcap | 9 - neomutt/neomuttrc | 399 -------------------- neomutt/unbindrc | 261 ------------- sway/config | 2 +- vdirsyncer/config | 18 + 25 files changed, 740 insertions(+), 722 deletions(-) delete mode 100644 SECRETS/neomutt/pwd_henrik@hjarl.com.secret create mode 100644 aerc/accounts.conf create mode 100644 aerc/aerc.conf create mode 100644 aerc/bakken.henrik@gmail.com.map create mode 100644 aerc/binds.conf create mode 100644 aerc/henrik@hjarl.com.map create mode 100644 aerc/stylesets/catppuccin.frappe create mode 100644 aerc/stylesets/catppuccin.latte create mode 100644 aerc/stylesets/catppuccin.macchiato create mode 100644 aerc/stylesets/catppuccin.mocha create mode 100644 aerc/stylesets/gruvbox.conf create mode 100644 aerc/stylesets/julianschuler.conf create mode 100644 aerc/stylesets/qxx.conf create mode 100644 khard/khard.conf delete mode 100644 msmtp/config delete mode 100644 neomutt/henrik@hjarl.com delete mode 100644 neomutt/mailcap delete mode 100644 neomutt/neomuttrc delete mode 100644 neomutt/unbindrc diff --git a/.gitignore b/.gitignore index c09bc42..4fccb20 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ .gitsecret/keys/random_seed !*.secret homeassistant/SERVICE_ACCOUNT.JSON -SECRETS/neomutt/pwd_henrik@hjarl.com diff --git a/.gitsecret/paths/mapping.cfg b/.gitsecret/paths/mapping.cfg index a44f0b5..285a61f 100644 --- a/.gitsecret/paths/mapping.cfg +++ b/.gitsecret/paths/mapping.cfg @@ -1,2 +1 @@ homeassistant/SERVICE_ACCOUNT.JSON:5a3eabcbc53278f7713423b0ea20d0558f6334f8a1f6aed2a2e4cfb2ca9c93ab -SECRETS/neomutt/pwd_henrik@hjarl.com:cba46950125c0266d72e61c458b174d54c3751f773bbeab3ef7ff2522d099294 diff --git a/SECRETS/neomutt/pwd_henrik@hjarl.com.secret b/SECRETS/neomutt/pwd_henrik@hjarl.com.secret deleted file mode 100644 index b2b8c17228d133564b589c7107d020a379460c1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmV+i0{H!f0gMA{hqi78NQ7wt3;>st+M^NW+W%k5`Y$5nN8HnZd)AGf*w;6?AcAWdLE zDBG*%t9xJlHZSph1d&c=p@FKoejh!dQ-UNSVwTz9GNRN>_xkG&_4ogmm-($=#xxl)E93g&p8p&M=koJivx;_p+2sStmgbM&|hTMZDd%kJrS?ppv4guaq!~ zX9T>ANFG-n1r7n%6-9Fd(AJni<&ON){LvCt`z>Mf!*zSHllAB)8+X(AzF^{^FSBqhP1&hh)>ip2{2OaWRNOuG8l+JliSRlqu470p2XDKN-O9 zN2Vwe#rKw!D({1(!LlmOEx5#SF+f3dCn_vxU&oG-Uf}12PrFFZgqD;JqK(%asd-*c z4a`elIWZiLu{^o}PDS-Lavuu2WP~z?y;}$lUG{~}V|@P>>R7uXGaNVB| Jn8@uk$-MBc1 +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 +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 diff --git a/aerc/aerc.conf b/aerc/aerc.conf new file mode 100644 index 0000000..49a7d53 --- /dev/null +++ b/aerc/aerc.conf @@ -0,0 +1,74 @@ +[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 + +[multipart-converters] +text/html=pandoc -f markdown -t html --standalone + +[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/*=imv +image/png=imv +image/jpg=imv +video/*=mpv +audio/*=mpv --no-video +text/*=vim + +[hooks] +mail-received=notify-send "[$AERC_ACCOUNT/$AERC_FOLDER] New mail from $AERC_FROM_NAME" "$AERC_SUBJECT" diff --git a/aerc/bakken.henrik@gmail.com.map b/aerc/bakken.henrik@gmail.com.map new file mode 100644 index 0000000..9b80c3d --- /dev/null +++ b/aerc/bakken.henrik@gmail.com.map @@ -0,0 +1,2 @@ +Trash = [Google Mail]/Bin +* = [Google Mail]/* diff --git a/aerc/binds.conf b/aerc/binds.conf new file mode 100644 index 0000000..d32eb95 --- /dev/null +++ b/aerc/binds.conf @@ -0,0 +1,160 @@ +# Binds are of the form = +# To use '=' in a key sequence, substitute it with "Eq": "" +# If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit + = :prev-tab + = :next-tab +\[t = :prev-tab +\]t = :next-tab + = :term +? = :help keys + +[messages] +q = :quit + +j = :next + = :next + = :next 50% + = :next 100% + = :next 100% + +k = :prev + = :prev + = :prev 50% + = :prev 100% + = :prev 100% +g = :select 0 +G = :select -1 + +J = :next-folder +K = :prev-folder +H = :collapse-folder +L = :expand-folder + +v = :mark -t +V = :mark -v + +T = :toggle-threads + +zz = :align center +zt = :align top +zb = :align bottom + + = :view +dd = :mv Trash +D = :delete-message +m = :move +aa = :archive flat +A = :unmark -a:mark -T:archive flat + +C = :compose + +b = :bounce + +rr = :reply -a +rq = :reply -aq +Rr = :reply +Rq = :reply -q + +c = :cf +$ = :term +! = :term +| = :pipe + +/ = :search +\ = :filter +n = :next-result +N = :prev-result + = :clear + +s = :split +S = :vsplit + +[messages:folder=Drafts] + = :recall + +[messages:folder=Trash] +dd = :delete-message +D = :delete-message + +[messages:folder=Spam] +dd = :delete-message +D = :delete-message + +[view] +/ = :toggle-key-passthrough/ +q = :close +O = :open +o = :open +S = :save +| = :pipe +dd = :mv Trash +D = :delete-message +m = :move +aa = :archive flat +A = :unmark -a:mark -T:archive flat + + = :open-link + +f = :forward +rr = :reply -a +rq = :reply -aq +Rr = :reply +Rq = :reply -q + +H = :toggle-headers + = :prev-part + = :next-part +J = :next +K = :prev + +[view:folder=Trash] +dd = :delete-message +D = :delete-message + +[view::passthrough] +$noinherit = true +$ex = + = :toggle-key-passthrough + +[compose] +# Keybindings used when the embedded terminal is not selected in the compose +# view +$noinherit = true +$ex = +$complete = + = :prev-field + = :next-field + = :switch-account -p + = :switch-account -n + = :next-field + = :prev-field + = :prev-tab + = :next-tab + +[compose::editor] +# Keybindings used when the embedded terminal is selected in the compose view +$noinherit = true +$ex = + = :prev-field + = :next-field + = :prev-tab + = :next-tab + +[compose::review] +y = :send # Send +n = :abort # Abort (discard message, no confirmation) +v = :preview # Preview message +p = :postpone # Postpone +q = :choose -o d discard abort -o p postpone postpone # Abort or postpone +e = :edit # Edit (body and headers) +a = :attach # Add attachment +d = :detach # Remove attachment +s = :sign # Toggle signing +x = :encrypt # Toggle encryption to all recipients + +[terminal] +$noinherit = true +$ex = + + = :prev-tab + = :next-tab diff --git a/aerc/henrik@hjarl.com.map b/aerc/henrik@hjarl.com.map new file mode 100644 index 0000000..e69de29 diff --git a/aerc/stylesets/catppuccin.frappe b/aerc/stylesets/catppuccin.frappe new file mode 100644 index 0000000..e94b0f8 --- /dev/null +++ b/aerc/stylesets/catppuccin.frappe @@ -0,0 +1,50 @@ +# 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 + +[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 diff --git a/aerc/stylesets/catppuccin.latte b/aerc/stylesets/catppuccin.latte new file mode 100644 index 0000000..368ae4c --- /dev/null +++ b/aerc/stylesets/catppuccin.latte @@ -0,0 +1,50 @@ +# 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 + +[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 diff --git a/aerc/stylesets/catppuccin.macchiato b/aerc/stylesets/catppuccin.macchiato new file mode 100644 index 0000000..a58cc41 --- /dev/null +++ b/aerc/stylesets/catppuccin.macchiato @@ -0,0 +1,50 @@ +# 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 + +[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 diff --git a/aerc/stylesets/catppuccin.mocha b/aerc/stylesets/catppuccin.mocha new file mode 100644 index 0000000..aeece23 --- /dev/null +++ b/aerc/stylesets/catppuccin.mocha @@ -0,0 +1,50 @@ +# 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 + +[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 diff --git a/aerc/stylesets/gruvbox.conf b/aerc/stylesets/gruvbox.conf new file mode 100644 index 0000000..a47b708 --- /dev/null +++ b/aerc/stylesets/gruvbox.conf @@ -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 diff --git a/aerc/stylesets/julianschuler.conf b/aerc/stylesets/julianschuler.conf new file mode 100644 index 0000000..ebf7d24 --- /dev/null +++ b/aerc/stylesets/julianschuler.conf @@ -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 diff --git a/aerc/stylesets/qxx.conf b/aerc/stylesets/qxx.conf new file mode 100644 index 0000000..04bec3b --- /dev/null +++ b/aerc/stylesets/qxx.conf @@ -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 diff --git a/khal/config b/khal/config index 375ae41..034e4a6 100644 --- a/khal/config +++ b/khal/config @@ -4,11 +4,9 @@ default_calendar = purelymail highlight_event_days = true [view] - -dynamic_days= true +dynamic_days = true [locale] - unicode_symbols = false local_timezone = Europe/Oslo default_timezone = Europe/Oslo diff --git a/khard/khard.conf b/khard/khard.conf new file mode 100644 index 0000000..b387f81 --- /dev/null +++ b/khard/khard.conf @@ -0,0 +1,49 @@ +[addressbooks] +[[bakken.henrik@gmail.com]] +path = ~/.config/vdirsyncer/contacts/google/default/ + +[general] +debug = no +default_action = list +# These are either strings or comma seperated lists +editor = nvim, -i, NONE +merge_editor = vimdiff + +[contact table] +# display names by first or last name: first_name / last_name / formatted_name +display = formatted_name +# group by address book: yes / no +group_by_addressbook = no +# reverse table ordering: yes / no +reverse = no +# append nicknames to name column: yes / no +show_nicknames = yes +# show uid table column: yes / no +show_uids = yes +# show kind table column: yes / no +show_kinds = no +# sort by first or last name: first_name / last_name / formatted_name +sort = last_name +# localize dates: yes / no +localize_dates = yes +# set a comma separated list of preferred phone number types in descending priority +# or nothing for non-filtered alphabetical order +preferred_phone_number_type = pref, cell, home +# set a comma separated list of preferred email address types in descending priority +# or nothing for non-filtered alphabetical order +preferred_email_address_type = pref, work, home + +[vcard] +# extend contacts with your own private objects +# these objects are stored with a leading "X-" before the object name in the vcard files +# every object label may only contain letters, digits and the - character +# example: +# private_objects = Jabber, Skype, Twitter +# default: , (the empty list) +private_objects = Jabber, Skype, Twitter +# preferred vcard version: 3.0 / 4.0 +preferred_version = 3.0 +# Look into source vcf files to speed up search queries: yes / no +search_in_source_files = no +# skip unparsable vcard files: yes / no +skip_unparsable = no diff --git a/manjaro.sh b/manjaro.sh index 522ca31..7b2592c 100755 --- a/manjaro.sh +++ b/manjaro.sh @@ -85,9 +85,8 @@ sudo systemctl edit coolercontrold.service # set log level to WARN yay -S vlc protobuf yt-dlp yay -S castnow -# cal+email -yay -S khal vdirsyncer python-aiohttp-oauthlib -yay -S neomutt urlscan mutt-ics sc-im pandoc w3m python-icalendar notmuch msmtp mbsync-git pandoc +# cal+email+contacts +yay -S khard aerc khal vdirsyncer python-aiohttp-oauthlib pandoc # div applications yay -S \ @@ -109,7 +108,6 @@ yay -S \ # can be achieved by setting full-screen-api.ignore-widgets to true in about:config wget -P ~/.local/share/fonts/ https://raw.githubusercontent.com/SUNET/static_sunet_se/refs/heads/master/fonts/Akkurat-Mono.otf -wget -O mutt-trim -P ~/.local/bin https://raw.githubusercontent.com/Konfekt/mutt-trim/refs/heads/master/mutt-trim sudo mkdir -p /usr/share/backgrounds/ultrawide/ sudo wget -O rainbowsmoke.jpg -P /usr/share/backgrounds/ultrawide https://superultrawidewallpaper.com/wp-content/uploads/2022/02/rainbow-smoke-3840x1080-1860x523.jpg diff --git a/msmtp/config b/msmtp/config deleted file mode 100644 index 2056e49..0000000 --- a/msmtp/config +++ /dev/null @@ -1,21 +0,0 @@ -# vim:filetype=msmtp -defaults -auth on -tls on -tls_trust_file /etc/ssl/certs/ca-certificates.crt -logfile /home/hjalmarlucius/.config/msmtp/msmtp.log - -account henrik@hjarl.com -host smtp.purelymail.com -port 465 -tls_starttls off -from henrik@hjarl.com -user henrik@hjarl.com -passwordeval "pass henrik@hjarl.com" - -account bakken.henrik@gmail.com -host smtp.gmail.com -port 587 -from bakken.henrik@gmail.com -user bakken.henrik -passwordeval "pass bakken.henrik@gmail.com" diff --git a/neomutt/henrik@hjarl.com b/neomutt/henrik@hjarl.com deleted file mode 100644 index 94c21ca..0000000 --- a/neomutt/henrik@hjarl.com +++ /dev/null @@ -1,22 +0,0 @@ -set realname = "Henrik Bakken" -set sendmail = "msmtp -a henrik@hjarl.com" -set from = "henrik@hjarl.com" -set folder = "imaps://imap.purelymail.com/" -set imap_user = "henrik@hjarl.com" -source "~/.config/neomutt/pwd_henrik@hjarl.com" - -mailboxes = "imaps://imap.purelymail.com/Inbox" -set spoolfile = "+INBOX" -set record = "+Sent" -set postponed = "+Drafts" -set trash = "+Trash" - -macro index,pager gi "=INBOX" "go to inbox" -macro index,pager gs "=Sent" "go to sent" -macro index,pager gd "=Drafts" "go to drafts" -macro index,pager gS "=Spam" "go to spam" -macro index,pager ga "=Archives" "go to archive" -macro index,pager gt "=Trash" "go to trash" - -macro index D ";:set resolve=no!=Trashecho 'Message deleted':set resolve=yes" "Quick Delete" -macro index A ";:set resolve=no!=Archivesecho 'Message archived':set resolve=yes" "Quick Archive" diff --git a/neomutt/mailcap b/neomutt/mailcap deleted file mode 100644 index 90c6037..0000000 --- a/neomutt/mailcap +++ /dev/null @@ -1,9 +0,0 @@ -text/html; $BROWSER %s -text/html; w3m -I %{charset} -T text/html -dump; copiousoutput; -text/calendar; /home/hjalmarlucius/src/mutt_dotfiles/bin/render-calendar-attachment.py %s; copiousoutput; -image/*; imv %s & -video/*; mpv --autofit-larger=90\%x90\% %s; needsterminal; -video/*; setsid mpv --quiet %s &; copiousoutput -application/pdf; zathura %s & -application/vnd.openxmlformats-officedocument.wordprocessingml.document; libreoffice %s & disown -application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; sc-im %s; needsterminal diff --git a/neomutt/neomuttrc b/neomutt/neomuttrc deleted file mode 100644 index b036310..0000000 --- a/neomutt/neomuttrc +++ /dev/null @@ -1,399 +0,0 @@ -source "~/.config/neomutt/unbindrc" - -# cache -set header_cache = ~/.cache/mutt -set message_cachedir = "~/.cache/mutt" -set mailcap_path = $HOME/.config/neomutt/mailcap - -set rfc2047_parameters = yes -set check_mbox_size = yes -set new_mail_command = "notify-send 'New Email'" -set imap_check_subscribed - -#------------------------------------------------------------ -# Accounts -#------------------------------------------------------------ - -source "~/.config/neomutt/henrik@hjarl.com" -# macro index,pager i1 'source $HOME/.config/neomutt/REPLACEME!;' "switch to REPLACEME" - -#------------------------------------------------------------ -# Settings -#------------------------------------------------------------ -#### General Settings -set smtp_authenticators = 'gssapi:login' -unset help -set sleep_time = 0 # Pause 0 seconds for informational messages -set pager_read_delay = 3 # View a message for 3 seconds to mark as read -set mark_old = no # Unread mail stay unread until read -set mime_forward = no # attachments are forwarded with mail -set wait_key = no # mutt won't ask "press key to continue" -set fast_reply # skip to compose when replying -set fcc_attach # save attachments with the body -set forward_format = "Fwd: %s" # format of subject when forwarding -set forward_quote # quote forwarded message -set reverse_name # reply as whomever it was to -set reverse_realname = yes # use any real name provided when replying -set auto_tag # automatically apply commands to all tagged messages (if some messages are tagged) -set include # include message in replies -set delete # messages marked for deleting will automatically be purged without prompting -set quit -set mail_check = 5 # to avoid lags using IMAP with some email providers (yahoo for example) -set timeout = 3 # how long to wait after user input until unblocking background stuff like mail syncing -set count_alternatives = yes # recurse into text/multipart when looking for attachement types -set thorough_search = no # don't process mail (via mailcap etc) before parsing with queries like ~B -set flag_safe # flagged messages can't be deleted - -#### Header Options -ignore * # ignore all headers -unignore to: cc: # ..then selectively show only these headers -unhdr_order * # some distros order things by default -hdr_order from: to: cc: date: subject: # header item ordering - -#### View Settings -set allow_ansi # allow ansi escape codes (e.g. colors) -set pager_index_lines = 10 # number of index lines to show -set pager_context = 3 # number of context lines to show -set pager_stop # don't go to next message automatically -set menu_scroll # scroll in menus -set smart_wrap # wrap lines at word boundaries rather than splitting up words -set wrap = 90 # email view width -set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+" -set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*" -# Tidy up emails significantly -set display_filter="perl -0777pe 's/___{10,}[^_]*microsoft teams meeting.*to join the meeting<([^>]*).*(___{10,})/\\n────────────────────────────────────────────────────────────────────────\\n\\nTeams Meeting ~~\\n\\nMeeting URL:\\n$1\\n\\n────────────────────────────────────────────────────────────────────────/is'| sed 's/^\\(To\\|CC\\): \\([^<]*[^>]\\)$/\\1\:<\\2>/g' | perl -0777pe 's/(((?!.*CC:)To:|CC:).+?(?=>\\n)>)/$1!REMOVE_ME!\\n!END!/gs' | sed '/^To:/{;:l N;/!END!/b; s/\\(\\n\\| *\\|\\t\\t*\\)/ /g; bl}' | sed '/^To:/,/>$/ s/\\([^>]*>,\\?\\)/\\1\\n/g' | sed -e 's/^ \\(CC:\\)\\(.*$\\)/\\1\\n\\2/' -e 's/^\\(To:\\)\\(.*$\\)/\\1 --------------------------------------------------------------------\\n\\2/' -e 's/^!END!$/------------------------------------------------------------------------/' -e '/!REMOVE_ME!/d' -e '/\\[-- Type: text.* --\\]/d' -e '/\\[-- Autoview.* --\\]/d' -e '/\\[-- Type.* --\\]/d' -e '/\\[-- .*unsupported.* --\\]/d' -e '/\\[-- Attachment #[0-9] --\\]/d' -e 's/Attachment #[0-9]: //g' -e '/./,/^$/!d' -e 's/\\([A-Z]*\\), *\\([A-Za-z]*\\)\\(\"\\)\\?/\\2 \\L\\u\\1\\E\\3/g'" - -#### Notmuch Config -set nm_query_type = threads # bring in the whole thread instead of just the matched message, really useful -set nm_default_url = "notmuch:///$HOME/.local/share/mail" # default notmuch URL -set nm_record_tags = "sent" # default 'sent' tag -set virtual_spoolfile = yes # allow using virtual mailboxes as spoolfile -macro index \Cg "unset wait_keyread -p 'Enter a search: ' x; echo \$x >~/.cache/mutt_termsAll Accounts~i \"\`notmuch --config ~/.config/notmuch/notmuchrc search --output=messages \$(/bin/cat ~/.cache/mutt_terms) | head -n 1000 | perl -le '@a=<>;chomp@a;s/\^id:// for@a;$,=\"|\";print@a' | sed 's/id://g' \`\"" "Search all mailboxes in all accounts (Global search)" - -#### Content/Autoview -auto_view application/ics -auto_view text/calendar -auto_view text/plain -auto_view text/html -auto_view application/pgp-encrypted -alternative_order text/calendar application/ics text/plain text/enriched text/html - -#### Sidebar Config -set sidebar_divider_char = '│' -set sidebar_folder_indent = yes -set sidebar_indent_string = ' - ' -set sidebar_non_empty_mailbox_only = yes -set sidebar_visible = no -set sidebar_width = 50 -set sidebar_next_new_wrap = yes -set sidebar_short_path = yes -set sidebar_component_depth = 0 -set sidebar_sort = "path" - -#### Thread ordering -set use_threads=threads -set sort=last-date -set sort_aux=date -set collapse_all = yes -set uncollapse_new = no -set thread_received = yes -set narrow_tree = no - -#### Lists -set auto_subscribe - -### Sounds -set beep = no # don't beep for errors -set beep_new # beep for new messages - -#### Text editor -set edit_headers = yes -set autoedit = yes -set editor="~/.local/bin/mutt-trim %s; nvim +':set textwidth=72' +':set wrapmargin=0' +':set wrap' +':set spell' %s" - -#### Markdown to html email conversion -macro compose M "F pandoc -s -f markdown -t html \ny^T^Utext/html; charset=UTF-8\n" "Convert from MD to HTML" - -#### Show patch files (requires git-split-diffs) -macro attach P "|git-split-diffs --color | less -RF" "View a patch file as a diff" -set wait_key = no - -#------------------------------------------------------------ -# Bind -#------------------------------------------------------------ - -# General Navigation -bind index collapse-thread -bind index collapse-thread -bind index h collapse-thread -bind index l collapse-thread -bind index + link-threads -bind index zz current-middle -bind index zt current-top -bind index zb current-bottom -bind index \\ limit -macro index "\n\n" -macro index \# "\n" "Mark as Complete" -macro index x "all\n" "show all messages (undo limit)" -macro index \ci "~F\n" "Limit by flagged" - -bind attach view-mailcap - -bind browser gg top-page -bind browser G bottom-page - -bind pager j next-line -bind pager k previous-line -bind pager next-line -bind pager previous-line -bind pager G bottom -bind pager gg top -macro pager J "\n\n" -macro pager K "\n\n" - -bind index,pager f change-folder -bind index,pager \Cu half-up -bind index,pager \Cd half-down -bind index,pager \Cb sidebar-toggle-visible -bind index,pager \Cj sidebar-next -bind index,pager \Ck sidebar-prev -bind index,pager \Co sidebar-open -bind index,pager \Cn next-unread -bind index,pager \Cp previous-unread -bind index,pager H view-raw-message -bind index,pager v view-attachments -bind index,pager | pipe-message - -bind browser,query select-entry - -bind index,attach,browser,query G last-entry -bind index,attach,browser,query gg first-entry -bind index,attach,browser,query j next-entry -bind index,attach,browser,query k previous-entry -bind index,attach,browser,query next-entry -bind index,attach,browser,query previous-entry - -bind index,pager,attach,browser,query,alias,compose q exit - -# Mail manipulation from index list -bind index t tag-entry -bind index T tag-thread -bind index flag-message -bind index u undelete-message -bind index U undelete-thread - -bind index,pager d delete-message -bind index,pager L edit-label - -# Compose, Replies and Forwarding -bind index,pager c mail # compose message -bind index,pager \Cr recall-message # (from drafts) -bind index,pager r reply -bind index,pager R group-reply -bind index,pager F forward-message - -# Compose screen options -bind compose y send-message -bind compose a attach-file -bind compose p postpone-message -bind compose e edit-message -bind compose t edit-to -bind compose f edit-from -bind compose s edit-subject -bind compose c edit-cc -bind compose b edit-bcc -bind compose r rename-file -bind compose F filter-entry -bind compose \Ct edit-type -bind compose \Ck move-up -bind compose \Cj move-down -bind compose view-attach - -bind attach,compose | pipe-entry - -# Commands and Misc -bind index,pager $ sync-mailbox # more like a refresh than a sync -bind editor complete-query -bind index,pager n search-next -bind index,pager N search-opposite -bind index,pager p search-opposite -bind index,pager,attach,editor,compose refresh -macro index,pager \cl 'urlscan -d -w 80' "call urlscan to open links" -macro index O "mbsync -a -c $HOME/.config/isync/mbsyncrc" "run mbsync to sync all mail" -macro attach s '~/Downloads/a' "Save file to ~/Downloads" -macro browser h '..' "Go to parent folder" -macro index \Ca "T~UN." "mark all messages as read" -macro attach,compose \cl " urlscan -d -w 80" "call urlscan to extract URLs out of a message" - -set abort_key = "" - -# copy / move messages -macro index C "?" "copy a message to a mailbox" -macro index M "?" "move a message to a mailbox" - -#------------------------------------------------------------ -# Colors -#------------------------------------------------------------ - -# Nerd icons idea based on https://github.com/sheoak/neomutt-powerline-nerdfonts/ -# Dracula colors based on Dracula Theme by Paul Townsend - - -# Formatting ---------------------------------------------------------------------- -set date_format = "%a %d %h %H:%M" -set index_format=" %zc %zs %zt | %-35.35L %@attachment_info@ ?%-30.100s %> %?Y?%Y ? %(!%a %d %h %H:%M) " -set pager_format="%n %T %s%*  %{!%d %b · %H:%M} %?X? %X?%P" -set status_format = " %D %?u? %u ?%?R? %R ?%?d? %d ?%?t? %t ?%?F? %F ?%?p? %p? \n \n" -set compose_format="-- NeoMutt: Compose [Approx. msg size: %l Atts: %a]%>-" -set sidebar_format = '%B%?F? [%F]?%* %?N?%N/? %?S?%S?' -index-format-hook attachment_info '=B text/calendar ~X 1' ' ' -index-format-hook attachment_info '=B text/calendar' " " -index-format-hook attachment_info '~X 1' " " -index-format-hook attachment_info '~A' " " - - -# General Colors ------------------------------------------------------------------ -color normal default default # general text -color error color231 color212 # error messages -color message default default # messages at the bottom -color prompt default default # prompt text -color search black color10 # search highlight - - -# Statusbar Colors ---------------------------------------------------------------- -color status color141 default -color status color7 color8 '([a-zA-Z0-9\.,]|\[|\])(\s)' # bubble content 1 -color status color7 color8 '(\s)([a-zA-Z0-9\.,]|\[|\])' # bubble content 2 -color status color7 color8 '(\% )' # % symbol -color status color7 color8 '(\S)' # empty spaces -color status color8 default '(|)' # statusline "bubbles" -color status color69 black '(\` )' # bubble account variation -color status white color69 '([a-zA-Z0-9\.]+)( )' # account text -color status green color8 '' # Unread messages count -color status blue color8 '' # Read messages count icon -color status yellow color8 '' # Flagged icon -color status red color8 '' # Pending delete icon - - -# Index Colors -------------------------------------------------------------------- -color index color15 default '~N' # new messages -color index color8 default '~R' # read messages -color index color8 default '~Q' # messages which have been replied to -color index_collapsed color4 default # collapsed thread (message count text) -color index color5 default '!~Q^~p' # sent only to me and haven't been replied to -color index color22 default '~h X-Label..' # messages with a complete label -color index color6 default '~F' # flagged messages -color index color6 default '~F~N' # flagged messages (new) -color index color14 default '~F~R' # flagged messages (read) -color index color1 default '~D' # deleted messages -color index color1 default '~D~N' # deleted messages (new) -color index color9 default '~D~R' # deleted messages (read) -color index color3 default '~T' # tagged messages -color index color3 default '~T~N' # tagged messages (new) -color index color11 default '~T~R' # tagged messages (read) -color tree color8 color8 # thread tree lines/arrow -color indicator default color8 # selection indicator -color index_date color8 default # date is always the same colour -color index_label color6 default # label is always the same colour - - -# Sidebar Colors ------------------------------------------------------------------ -color sidebar_indicator color14 black # currently selected mailbox -color sidebar_highlight white color8 # highlighted, but not open, mailbox. -color sidebar_ordinary color8 default # Color to give mailboxes by default -color sidebar_divider color8 black # divider between sidebar & content -color sidebar_flagged red black # mailboxes containing flagged mail -color sidebar_new green black # mailboxes containing new mail -color sidebar_unread color7 default # mailboxes containing unread mail -color sidebar_unread color7 default # mailboxes containing unread mail - - -# Message Headers ----------------------------------------------------------------- -color hdrdefault color8 default - - -# Message Body -------------------------------------------------------------------- - -# Attachments -color attachment color8 default - -# Signature -color signature color8 default - -# emails -# color body color14 default '[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+' - -# hide "mailto" -color body color0 color0 '' - -# URLs -color body color3 default '(https?|ftp)://[-\.,/%~_:?&=\#a-zA-Z0-9\+]+' - -# Dividers -color body color8 default '(^[-_]*$)' - -# Important info in calendar invites -color body color6 default '^(Date\/Time|Location|Organiser|Invitees|Teams Meeting)(:| \~\~)' - -# Quotes -color quoted color61 default -color quoted1 color117 default -color quoted2 color84 default -color quoted3 color215 default -color quoted4 color212 default - -# Forward/reply headers -color body color8 default '(^(To|From|Sent|Subject):.*)' - -# Patch syntax highlighting -color body brightwhite default '^[[:space:]].*' -color body yellow default ^(diff).* -color body white default ^[\-\-\-].* -color body white default ^[\+\+\+].* -color body green default ^[\+].* -color body red default ^[\-].* -color body brightblue default [@@].* -color body cyan default ^(Signed-off-by).* -color body brightwhite default ^(Cc) -color body yellow default "^diff \-.*" -color body brightwhite default "^index [a-f0-9].*" -color body brightblue default "^---$" -color body white default "^\-\-\- .*" -color body white default "^[\+]{3} .*" -color body green default "^[\+][^\+]+.*" -color body red default "^\-[^\-]+.*" -color body brightblue default "^@@ .*" -color body green default "LGTM" -color body brightmagenta default "-- Commit Summary --" -color body brightmagenta default "-- File Changes --" -color body brightmagenta default "-- Patch Links --" -color body green default "^Merged #.*" -color body red default "^Closed #.*" -color body brightblue default "^Reply to this email.*" - - -# Misc ----------------------------------------------------------------------------- - -# no addressed to me, to me, group, cc, sent by me, mailing list -set to_chars=" " - -# unchanged mailbox, changed, read only, attach mode -set status_chars = " " -ifdef crypt_chars set crypt_chars = " " -set flag_chars = " " - -# hide some tags -set hidden_tags = "unread,draft,flagged,passed,replied,attachment,signed,encrypted" -tag-transforms "replied" "↻ " \ - "encrytpted" "" \ - "signed" "" \ - "attachment" "" \ - -# The formats must start with 'G' and the entire sequence is case sensitive. -tag-formats "replied" "GR" \ - "encrypted" "GE" \ - "signed" "GS" \ - "attachment" "GA" \ - - # don't put '+' at the beginning of wrapped lines -set markers = no diff --git a/neomutt/unbindrc b/neomutt/unbindrc deleted file mode 100644 index 0eb6872..0000000 --- a/neomutt/unbindrc +++ /dev/null @@ -1,261 +0,0 @@ -bind generic,pager,editor,index,compose,browser,attach | noop -bind generic,pager,editor,index,compose,browser,attach a noop -bind generic,pager,editor,index,compose,browser,attach b noop -bind generic,pager,editor,index,compose,browser,attach c noop -bind generic,pager,editor,index,compose,browser,attach d noop -bind generic,pager,editor,index,compose,browser,attach e noop -bind generic,pager,editor,index,compose,browser,attach f noop -bind generic,pager,editor,index,compose,browser,attach g noop -bind generic,pager,editor,index,compose,browser,attach h noop -bind generic,pager,editor,index,compose,browser,attach i noop -bind generic,pager,editor,index,compose,browser,attach j noop -bind generic,pager,editor,index,compose,browser,attach k noop -bind generic,pager,editor,index,compose,browser,attach l noop -bind generic,pager,editor,index,compose,browser,attach m noop -bind generic,pager,editor,index,compose,browser,attach n noop -bind generic,pager,editor,index,compose,browser,attach o noop -bind generic,pager,editor,index,compose,browser,attach p noop -bind generic,pager,editor,index,compose,browser,attach r noop -bind generic,pager,editor,index,compose,browser,attach s noop -bind generic,pager,editor,index,compose,browser,attach t noop -bind generic,pager,editor,index,compose,browser,attach u noop -bind generic,pager,editor,index,compose,browser,attach v noop -bind generic,pager,editor,index,compose,browser,attach w noop -bind generic,pager,editor,index,compose,browser,attach x noop -bind generic,pager,editor,index,compose,browser,attach y noop -bind generic,pager,editor,index,compose,browser,attach z noop -bind generic,pager,editor,index,compose,browser,attach A noop -bind generic,pager,editor,index,compose,browser,attach B noop -bind generic,pager,editor,index,compose,browser,attach C noop -bind generic,pager,editor,index,compose,browser,attach D noop -bind generic,pager,editor,index,compose,browser,attach E noop -bind generic,pager,editor,index,compose,browser,attach F noop -bind generic,pager,editor,index,compose,browser,attach G noop -bind generic,pager,editor,index,compose,browser,attach H noop -bind generic,pager,editor,index,compose,browser,attach I noop -bind generic,pager,editor,index,compose,browser,attach J noop -bind generic,pager,editor,index,compose,browser,attach K noop -bind generic,pager,editor,index,compose,browser,attach L noop -bind generic,pager,editor,index,compose,browser,attach M noop -bind generic,pager,editor,index,compose,browser,attach N noop -bind generic,pager,editor,index,compose,browser,attach O noop -bind generic,pager,editor,index,compose,browser,attach P noop -bind generic,pager,editor,index,compose,browser,attach Q noop -bind generic,pager,editor,index,compose,browser,attach R noop -bind generic,pager,editor,index,compose,browser,attach S noop -bind generic,pager,editor,index,compose,browser,attach T noop -bind generic,pager,editor,index,compose,browser,attach U noop -bind generic,pager,editor,index,compose,browser,attach V noop -bind generic,pager,editor,index,compose,browser,attach W noop -bind generic,pager,editor,index,compose,browser,attach X noop -bind generic,pager,editor,index,compose,browser,attach Y noop -bind generic,pager,editor,index,compose,browser,attach Z noop - -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,index,compose,browser,attach noop -bind generic,pager,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop - -bind generic,pager,editor,index,compose,browser,attach 1 noop -bind generic,pager,editor,index,compose,browser,attach 2 noop -bind generic,pager,editor,index,compose,browser,attach 3 noop -bind generic,pager,editor,index,compose,browser,attach 4 noop -bind generic,pager,editor,index,compose,browser,attach 5 noop -bind generic,pager,editor,index,compose,browser,attach 6 noop -bind generic,pager,editor,index,compose,browser,attach 7 noop -bind generic,pager,editor,index,compose,browser,attach 8 noop -bind generic,pager,editor,index,compose,browser,attach 9 noop -bind generic,pager,editor,index,compose,browser,attach 0 noop -bind generic,pager,editor,index,compose,browser,attach ! noop -bind generic,pager,editor,index,compose,browser,attach @ noop -bind generic,pager,editor,index,compose,browser,attach $ noop -bind generic,pager,editor,index,compose,browser,attach % noop -bind generic,pager,editor,index,compose,browser,attach ^ noop -bind generic,pager,editor,index,compose,browser,attach & noop -bind generic,pager,editor,index,compose,browser,attach * noop -bind generic,pager,editor,index,compose,browser,attach ( noop -bind generic,pager,editor,index,compose,browser,attach ) noop - -bind generic,pager,editor,index,compose,browser,attach \Ca noop -bind generic,pager,editor,index,compose,browser,attach \Cb noop -bind generic,pager,editor,index,compose,browser,attach \Cc noop -bind generic,pager,editor,index,compose,browser,attach \Cd noop -bind generic,pager,editor,index,compose,browser,attach \Ce noop -bind generic,pager,editor,index,compose,browser,attach \Cf noop -bind generic,pager,editor,index,compose,browser,attach \Cg noop -bind generic,pager,editor,index,compose,browser,attach \Ch noop -bind generic,pager,editor,index,compose,browser,attach \Ci noop -bind generic,pager,editor,index,compose,browser,attach \Cj noop -bind generic,pager,editor,index,compose,browser,attach \Ck noop -bind generic,pager,editor,index,compose,browser,attach \Cl noop -bind generic,pager,editor,index,compose,browser,attach \Cm noop -bind generic,pager,editor,index,compose,browser,attach \Cn noop -bind generic,pager,editor,index,compose,browser,attach \Co noop -bind generic,pager,editor,index,compose,browser,attach \Cp noop -bind generic,pager,editor,index,compose,browser,attach \Cq noop -bind generic,pager,editor,index,compose,browser,attach \Cr noop -bind generic,pager,editor,index,compose,browser,attach \Cs noop -bind generic,pager,editor,index,compose,browser,attach \Ct noop -bind generic,pager,editor,index,compose,browser,attach \Cv noop -bind generic,pager,editor,index,compose,browser,attach \Cw noop -bind generic,pager,editor,index,compose,browser,attach \Cxe noop -bind generic,pager,editor,index,compose,browser,attach \Cx noop -bind generic,pager,editor,index,compose,browser,attach \Cy noop -bind generic,pager,editor,index,compose,browser,attach \Cz noop -bind generic,pager,editor,index,compose,browser,attach \CA noop -bind generic,pager,editor,index,compose,browser,attach \CB noop -bind generic,pager,editor,index,compose,browser,attach \CC noop -bind generic,pager,editor,index,compose,browser,attach \CD noop -bind generic,pager,editor,index,compose,browser,attach \CE noop -bind generic,pager,editor,index,compose,browser,attach \CF noop -bind generic,pager,editor,index,compose,browser,attach \CG noop -bind generic,pager,editor,index,compose,browser,attach \CH noop -bind generic,pager,editor,index,compose,browser,attach \CI noop -bind generic,pager,editor,index,compose,browser,attach \CJ noop -bind generic,pager,editor,index,compose,browser,attach \CK noop -bind generic,pager,editor,index,compose,browser,attach \CL noop -bind generic,pager,editor,index,compose,browser,attach \CM noop -bind generic,pager,editor,index,compose,browser,attach \CN noop -bind generic,pager,editor,index,compose,browser,attach \CO noop -bind generic,pager,editor,index,compose,browser,attach \CP noop -bind generic,pager,editor,index,compose,browser,attach \CQ noop -bind generic,pager,editor,index,compose,browser,attach \CR noop -bind generic,pager,editor,index,compose,browser,attach \CS noop -bind generic,pager,editor,index,compose,browser,attach \CT noop -bind generic,pager,editor,index,compose,browser,attach \CV noop -bind generic,pager,editor,index,compose,browser,attach \CW noop -bind generic,pager,editor,index,compose,browser,attach \CX noop -bind generic,pager,editor,index,compose,browser,attach \CY noop -bind generic,pager,editor,index,compose,browser,attach \CZ noop - -bind generic,pager,editor,index,compose,browser,attach \C noop -bind generic,pager,editor,index,compose,browser,attach \C noop -bind generic,pager,editor,index,compose,browser,attach \C noop -bind generic,pager,editor,index,compose,browser,attach \C noop -bind generic,pager,editor,index,compose,browser,attach \C noop -bind generic,pager,editor,index,compose,browser,attach \C noop -bind generic,pager,editor,index,compose,browser,attach \C noop -bind generic,pager,editor,index,compose,browser,attach \C noop -bind generic,pager,editor,index,compose,browser,attach \C noop -bind generic,pager,editor,index,compose,browser,attach \C noop -bind generic,pager,editor,index,compose,browser,attach \C noop -bind generic,pager,editor,index,compose,browser,attach \C noop -bind generic,pager,editor,index,compose,browser,attach \C noop -bind generic,pager,editor,index,compose,browser,attach \C noop - -bind generic,pager,editor,index,compose,browser,attach \C1 noop -bind generic,pager,editor,index,compose,browser,attach \C2 noop -bind generic,pager,editor,index,compose,browser,attach \C3 noop -bind generic,pager,editor,index,compose,browser,attach \C4 noop -bind generic,pager,editor,index,compose,browser,attach \C5 noop -bind generic,pager,editor,index,compose,browser,attach \C6 noop -bind generic,pager,editor,index,compose,browser,attach \C7 noop -bind generic,pager,editor,index,compose,browser,attach \C8 noop -bind generic,pager,editor,index,compose,browser,attach \C9 noop -bind generic,pager,editor,index,compose,browser,attach \C0 noop -bind generic,pager,editor,index,compose,browser,attach \C! noop -bind generic,pager,editor,index,compose,browser,attach \C$ noop -bind generic,pager,editor,index,compose,browser,attach \C% noop -bind generic,pager,editor,index,compose,browser,attach \C^ noop -bind generic,pager,editor,index,compose,browser,attach \C& noop -bind generic,pager,editor,index,compose,browser,attach \C* noop -bind generic,pager,editor,index,compose,browser,attach \C( noop -bind generic,pager,editor,index,compose,browser,attach \C) noop - -bind generic,pager,editor,index,compose,browser,attach a noop -bind generic,pager,editor,index,compose,browser,attach b noop -bind generic,pager,editor,index,compose,browser,attach c noop -bind generic,pager,editor,index,compose,browser,attach d noop -bind generic,pager,editor,index,compose,browser,attach e noop -bind generic,pager,editor,index,compose,browser,attach f noop -bind generic,pager,editor,index,compose,browser,attach g noop -bind generic,pager,editor,index,compose,browser,attach h noop -bind generic,pager,editor,index,compose,browser,attach i noop -bind generic,pager,editor,index,compose,browser,attach j noop -bind generic,pager,editor,index,compose,browser,attach k noop -bind generic,pager,editor,index,compose,browser,attach l noop -bind generic,pager,editor,index,compose,browser,attach m noop -bind generic,pager,editor,index,compose,browser,attach n noop -bind generic,pager,editor,index,compose,browser,attach o noop -bind generic,pager,editor,index,compose,browser,attach p noop -bind generic,pager,editor,index,compose,browser,attach q noop -bind generic,pager,editor,index,compose,browser,attach r noop -bind generic,pager,editor,index,compose,browser,attach s noop -bind generic,pager,editor,index,compose,browser,attach t noop -bind generic,pager,editor,index,compose,browser,attach u noop -bind generic,pager,editor,index,compose,browser,attach v noop -bind generic,pager,editor,index,compose,browser,attach w noop -bind generic,pager,editor,index,compose,browser,attach x noop -bind generic,pager,editor,index,compose,browser,attach y noop -bind generic,pager,editor,index,compose,browser,attach z noop -bind generic,pager,editor,index,compose,browser,attach A noop -bind generic,pager,editor,index,compose,browser,attach B noop -bind generic,pager,editor,index,compose,browser,attach C noop -bind generic,pager,editor,index,compose,browser,attach D noop -bind generic,pager,editor,index,compose,browser,attach E noop -bind generic,pager,editor,index,compose,browser,attach F noop -bind generic,pager,editor,index,compose,browser,attach G noop -bind generic,pager,editor,index,compose,browser,attach H noop -bind generic,pager,editor,index,compose,browser,attach I noop -bind generic,pager,editor,index,compose,browser,attach J noop -bind generic,pager,editor,index,compose,browser,attach K noop -bind generic,pager,editor,index,compose,browser,attach L noop -bind generic,pager,editor,index,compose,browser,attach M noop -bind generic,pager,editor,index,compose,browser,attach N noop -bind generic,pager,editor,index,compose,browser,attach O noop -bind generic,pager,editor,index,compose,browser,attach P noop -bind generic,pager,editor,index,compose,browser,attach Q noop -bind generic,pager,editor,index,compose,browser,attach R noop -bind generic,pager,editor,index,compose,browser,attach S noop -bind generic,pager,editor,index,compose,browser,attach T noop -bind generic,pager,editor,index,compose,browser,attach U noop -bind generic,pager,editor,index,compose,browser,attach V noop -bind generic,pager,editor,index,compose,browser,attach W noop -bind generic,pager,editor,index,compose,browser,attach X noop -bind generic,pager,editor,index,compose,browser,attach Y noop -bind generic,pager,editor,index,compose,browser,attach Z noop - -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop -bind generic,pager,editor,index,compose,browser,attach noop - -bind generic,pager,editor,index,compose,browser,attach 1 noop -bind generic,pager,editor,index,compose,browser,attach 2 noop -bind generic,pager,editor,index,compose,browser,attach 3 noop -bind generic,pager,editor,index,compose,browser,attach 4 noop -bind generic,pager,editor,index,compose,browser,attach 5 noop -bind generic,pager,editor,index,compose,browser,attach 6 noop -bind generic,pager,editor,index,compose,browser,attach 7 noop -bind generic,pager,editor,index,compose,browser,attach 8 noop -bind generic,pager,editor,index,compose,browser,attach 9 noop -bind generic,pager,editor,index,compose,browser,attach 0 noop -bind generic,pager,editor,index,compose,browser,attach ! noop -bind generic,pager,editor,index,compose,browser,attach @ noop -bind generic,pager,editor,index,compose,browser,attach $ noop -bind generic,pager,editor,index,compose,browser,attach % noop -bind generic,pager,editor,index,compose,browser,attach ^ noop -bind generic,pager,editor,index,compose,browser,attach & noop -bind generic,pager,editor,index,compose,browser,attach * noop -bind generic,pager,editor,index,compose,browser,attach ( noop -bind generic,pager,editor,index,compose,browser,attach ) noop diff --git a/sway/config b/sway/config index 78112e5..bde482e 100644 --- a/sway/config +++ b/sway/config @@ -201,7 +201,7 @@ bindsym $mod+p exec pcmanfm-qt bindsym $mod+Shift+p exec $term_float ranger bindsym $mod+u exec unipicker --command "rofi -dmenu | wl-copy" bindsym $mod+period exec $term_float khal interactive -bindsym $mod+comma exec $term_float neomutt +bindsym $mod+comma exec $term_float aerc # Special keys bindsym --locked XF86AudioMute exec $volume_mute diff --git a/vdirsyncer/config b/vdirsyncer/config index 9bfccab..aff8edc 100644 --- a/vdirsyncer/config +++ b/vdirsyncer/config @@ -37,6 +37,24 @@ token_file = "~/.config/vdirsyncer/google_calendar_token" client_id = "46299105873-2qbog08khdujcgvecbnjeql1r1rb0nir.apps.googleusercontent.com" client_secret = "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" +[pair google_contacts] +a = "google_contacts_local" +b = "google_contacts_remote" +collections = ["from a", "from b"] +conflict_resolution = "b wins" +metadata = ["color"] + +[storage google_contacts_local] +type = "filesystem" +path = "~/.config/vdirsyncer/contacts/google/" +fileext = ".vcf" + +[storage google_contacts_remote] +type = "google_contacts" +token_file = "~/.config/vdirsyncer/google_contacts_token" +client_id = "46299105873-2qbog08khdujcgvecbnjeql1r1rb0nir.apps.googleusercontent.com" +client_secret = "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" + [pair holidays] a = "holidays_local" b = "holidays_remote"