aerc
This commit is contained in:
parent
61779f8b00
commit
5da1757eb9
2 changed files with 271 additions and 3 deletions
|
|
@ -406,6 +406,40 @@ in
|
||||||
programs.lf.package = lf-sixel;
|
programs.lf.package = lf-sixel;
|
||||||
programs.lf.keybindings = {
|
programs.lf.keybindings = {
|
||||||
D = "trash";
|
D = "trash";
|
||||||
|
"<f-2>" = ":rename";
|
||||||
|
"<enter>" = "open-with";
|
||||||
|
};
|
||||||
|
programs.lf.commands = {
|
||||||
|
trash = "%${pkgs.trash-cli}/bin/trash-put \"$fx\"";
|
||||||
|
open-with = ''''${{
|
||||||
|
set -f
|
||||||
|
${pkgs.ranger}/bin/rifle -l $fx
|
||||||
|
read -p "Open with: " method
|
||||||
|
${pkgs.ranger}/bin/rifle -p $method $fx
|
||||||
|
}}'';
|
||||||
|
bulk-rename = ''''${{
|
||||||
|
old="$(mktemp)"
|
||||||
|
new="$(mktemp)"
|
||||||
|
if [ -n "$fs" ]; then
|
||||||
|
fs="$(basename -a $fs)"
|
||||||
|
else
|
||||||
|
fs="$(ls)"
|
||||||
|
fi
|
||||||
|
printf '%s\n' "$fs" >"$old"
|
||||||
|
printf '%s\n' "$fs" >"$new"
|
||||||
|
$EDITOR "$new"
|
||||||
|
[ "$(wc -l < "$new")" -ne "$(wc -l < "$old")" ] && exit
|
||||||
|
paste "$old" "$new" | while IFS= read -r names; do
|
||||||
|
src="$(printf '%s' "$names" | cut -f1)"
|
||||||
|
dst="$(printf '%s' "$names" | cut -f2)"
|
||||||
|
if [ "$src" = "$dst" ] || [ -e "$dst" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
mv -- "$src" "$dst"
|
||||||
|
done
|
||||||
|
rm -- "$old" "$new"
|
||||||
|
lf -remote "send $id unselect"
|
||||||
|
}}'';
|
||||||
};
|
};
|
||||||
programs.lf.previewer.source = pkgs.writeShellScript "preview" ''
|
programs.lf.previewer.source = pkgs.writeShellScript "preview" ''
|
||||||
image () {
|
image () {
|
||||||
|
|
@ -507,4 +541,234 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.neomutt.extraConfig = ''
|
||||||
|
|
||||||
|
# Default index colors:
|
||||||
|
color index yellow default '.*'
|
||||||
|
color index_author red default '.*'
|
||||||
|
color index_number blue default
|
||||||
|
color index_subject cyan default '.*'
|
||||||
|
|
||||||
|
# New mail is boldened:
|
||||||
|
color index brightyellow black "~N"
|
||||||
|
color index_author brightred black "~N"
|
||||||
|
color index_subject brightcyan black "~N"
|
||||||
|
|
||||||
|
# Tagged mail is highlighted:
|
||||||
|
color index brightyellow blue "~T"
|
||||||
|
color index_author brightred blue "~T"
|
||||||
|
color index_subject brightcyan blue "~T"
|
||||||
|
|
||||||
|
# Other colors and aesthetic settings:
|
||||||
|
mono bold bold
|
||||||
|
mono underline underline
|
||||||
|
mono indicator reverse
|
||||||
|
mono error bold
|
||||||
|
color normal default default
|
||||||
|
color indicator brightblack white
|
||||||
|
color sidebar_highlight red default
|
||||||
|
color sidebar_divider brightblack black
|
||||||
|
color sidebar_flagged red black
|
||||||
|
color sidebar_new green black
|
||||||
|
color normal brightyellow default
|
||||||
|
color error red default
|
||||||
|
color tilde black default
|
||||||
|
color message cyan default
|
||||||
|
color markers red white
|
||||||
|
color attachment white default
|
||||||
|
color search brightmagenta default
|
||||||
|
color status brightyellow black
|
||||||
|
color hdrdefault brightgreen default
|
||||||
|
color quoted green default
|
||||||
|
color quoted1 blue default
|
||||||
|
color quoted2 cyan default
|
||||||
|
color quoted3 yellow default
|
||||||
|
color quoted4 red default
|
||||||
|
color quoted5 brightred default
|
||||||
|
color signature brightgreen default
|
||||||
|
color bold black default
|
||||||
|
color underline black default
|
||||||
|
color normal default default
|
||||||
|
|
||||||
|
# Regex highlighting:
|
||||||
|
color header blue default ".*"
|
||||||
|
color header brightmagenta default "^(From)"
|
||||||
|
color header brightcyan default "^(Subject)"
|
||||||
|
color header brightwhite default "^(CC|BCC)"
|
||||||
|
color body brightred default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses
|
||||||
|
color body brightblue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL
|
||||||
|
color body green default "\`[^\`]*\`" # Green text between ` and `
|
||||||
|
color body brightblue default "^# \.*" # Headings as bold blue
|
||||||
|
color body brightcyan default "^## \.*" # Subheadings as bold cyan
|
||||||
|
color body brightgreen default "^### \.*" # Subsubheadings as bold green
|
||||||
|
color body yellow default "^(\t| )*(-|\\*) \.*" # List items as yellow
|
||||||
|
color body brightcyan default "[;:][-o][)/(|]" # emoticons
|
||||||
|
color body brightcyan default "[;:][)(|]" # emoticons
|
||||||
|
color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon?
|
||||||
|
color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon?
|
||||||
|
color body red default "(BAD signature)"
|
||||||
|
color body cyan default "(Good signature)"
|
||||||
|
color body brightblack default "^gpg: Good signature .*"
|
||||||
|
color body brightyellow default "^gpg: "
|
||||||
|
color body brightyellow red "^gpg: BAD signature from.*"
|
||||||
|
mono body bold "^gpg: Good signature"
|
||||||
|
mono body bold "^gpg: BAD signature from.*"
|
||||||
|
color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]"
|
||||||
|
'';
|
||||||
|
|
||||||
|
programs.aerc.extraBinds = ''
|
||||||
|
# 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-p> = :prev-tab<Enter>
|
||||||
|
<C-n> = :next-tab<Enter>
|
||||||
|
<C-t> = :term<Enter>
|
||||||
|
|
||||||
|
[messages]
|
||||||
|
Q = :quit<Enter>
|
||||||
|
|
||||||
|
T = :toggle-threads<Enter>
|
||||||
|
|
||||||
|
j = :next<Enter>
|
||||||
|
<Down> = :next<Enter>
|
||||||
|
<C-d> = :next 50%<Enter>
|
||||||
|
<C-f> = :next 100%<Enter>
|
||||||
|
<PgDn> = :next -s 100%<Enter>
|
||||||
|
|
||||||
|
k = :prev<Enter>
|
||||||
|
<Up> = :prev<Enter>
|
||||||
|
<C-u> = :prev 50%<Enter>
|
||||||
|
<C-b> = :prev<Enter>
|
||||||
|
<PgUp> = :prev -s 100%<Enter>
|
||||||
|
gg = :select 0<Enter>
|
||||||
|
G = :select -1<Enter>
|
||||||
|
|
||||||
|
J = :next-folder<Enter>
|
||||||
|
K = :prev-folder<Enter>
|
||||||
|
|
||||||
|
v = :mark -t<Enter>
|
||||||
|
V = :mark -v<Enter>
|
||||||
|
|
||||||
|
f = :flag<Enter>
|
||||||
|
F = :unflag<Enter>
|
||||||
|
|
||||||
|
t = :toggle-threads<Enter>
|
||||||
|
|
||||||
|
<Enter> = :view<Enter>
|
||||||
|
D = :delete<Enter>
|
||||||
|
|
||||||
|
C = :compose<enter>
|
||||||
|
|
||||||
|
Rr = :reply<Enter>
|
||||||
|
Rq = :reply -q<Enter>
|
||||||
|
rr = :reply -a<Enter>
|
||||||
|
rq = :reply -aq<Enter>
|
||||||
|
rt = :unflag<Enter>:reply -a -Tthanks<Enter>
|
||||||
|
Rt = :unflag<Enter>:reply -qa -Tquoted_thanks<Enter>
|
||||||
|
|
||||||
|
a = :mv Archive<Enter>
|
||||||
|
|
||||||
|
c = :cf<space>
|
||||||
|
$ = :term<space>
|
||||||
|
! = :term<space>
|
||||||
|
| = :pipe<space>
|
||||||
|
|
||||||
|
ga = :flag<Enter>:pipe -mb git am -3<Enter>
|
||||||
|
gp = :term git push<Enter>
|
||||||
|
gl = :term git log<Enter>
|
||||||
|
|
||||||
|
/ = :search<space>
|
||||||
|
\ = :filter<space>
|
||||||
|
n = :next-result<Enter>
|
||||||
|
N = :prev-result<Enter>
|
||||||
|
|
||||||
|
[view]
|
||||||
|
/ = :toggle-key-passthrough<Enter>/
|
||||||
|
q = :close<Enter>
|
||||||
|
| = :pipe -m<space>
|
||||||
|
S = :save<space>
|
||||||
|
H = :toggle-headers<Enter>
|
||||||
|
D = :delete<Enter>
|
||||||
|
<C-k> = :prev-part<Enter>
|
||||||
|
<C-j> = :next-part<Enter>
|
||||||
|
J = :next<Enter>
|
||||||
|
K = :prev<Enter>
|
||||||
|
|
||||||
|
f = :forward<Enter>
|
||||||
|
Rr = :reply<Enter>
|
||||||
|
Rq = :reply -q<Enter>
|
||||||
|
rr = :reply -a<Enter>
|
||||||
|
rq = :reply -aq<Enter>
|
||||||
|
rt = :reply -Tthanks<Enter>
|
||||||
|
|
||||||
|
ga = :pipe -b git am -3<Enter>
|
||||||
|
gp = :term git push<Enter>
|
||||||
|
gl = :term git log<Enter>
|
||||||
|
|
||||||
|
[view::passthrough]
|
||||||
|
$noinherit = true
|
||||||
|
$ex = <C-x>
|
||||||
|
<Esc> = :toggle-key-passthrough<Enter>
|
||||||
|
|
||||||
|
[compose]
|
||||||
|
$ex = <C-x>
|
||||||
|
<C-k> = :prev-field<Enter>
|
||||||
|
<C-j> = :next-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-t> = :term<Enter>
|
||||||
|
<C-k> = :prev-field<Enter>
|
||||||
|
<C-j> = :next-field<Enter>
|
||||||
|
<C-p> = :prev-tab<Enter>
|
||||||
|
<C-n> = :next-tab<Enter>
|
||||||
|
|
||||||
|
[compose::review]
|
||||||
|
# Keybindings used when reviewing a message to be sent
|
||||||
|
y = :send<Enter>
|
||||||
|
n = :abort<Enter>
|
||||||
|
e = :edit<Enter>
|
||||||
|
a = :attach<space>
|
||||||
|
c = :encrypt<Enter>
|
||||||
|
s = :sign<Enter>
|
||||||
|
V = :header -f X-Sourcehut-Patchset-Update NEEDS_REVISION<Enter>
|
||||||
|
A = :header -f X-Sourcehut-Patchset-Update APPLIED<Enter>
|
||||||
|
R = :header -f X-Sourcehut-Patchset-Update REJECTED<Enter>
|
||||||
|
|
||||||
|
[terminal]
|
||||||
|
$noinherit = true
|
||||||
|
$ex = <C-x>
|
||||||
|
|
||||||
|
<C-t> = :term<Enter>
|
||||||
|
<C-p> = :prev-tab<Enter>
|
||||||
|
<C-n> = :next-tab<Enter>
|
||||||
|
'';
|
||||||
|
|
||||||
|
programs.aerc.extraConfig = {
|
||||||
|
general = {
|
||||||
|
pgp-provider = "gpg";
|
||||||
|
unsafe-accounts-conf = true;
|
||||||
|
};
|
||||||
|
ui = { };
|
||||||
|
viewer = { };
|
||||||
|
filters = {
|
||||||
|
"text/plain" = "colorize";
|
||||||
|
"text/calendar" = "calendar";
|
||||||
|
"message/delivery-status" = "colorize";
|
||||||
|
"message/rfc822" = "colorize";
|
||||||
|
"image/*" = "img2sixel";
|
||||||
|
"text/html" = "html | colorize";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,8 @@
|
||||||
musescore
|
musescore
|
||||||
ansible
|
ansible
|
||||||
handbrake
|
handbrake
|
||||||
|
monero-gui
|
||||||
|
xmrig
|
||||||
];
|
];
|
||||||
|
|
||||||
services.nextcloud-client.enable = true;
|
services.nextcloud-client.enable = true;
|
||||||
|
|
@ -22,17 +24,18 @@
|
||||||
userName = "tristan";
|
userName = "tristan";
|
||||||
userEmail = "tristan@tristans.cloud";
|
userEmail = "tristan@tristans.cloud";
|
||||||
};
|
};
|
||||||
|
|
||||||
accounts.email.accounts."tristan@tristans.cloud" = {
|
accounts.email.accounts."tristan@tristans.cloud" = {
|
||||||
notmuch.enable = true;
|
notmuch.enable = true;
|
||||||
neomutt.enable = true;
|
neomutt.enable = true;
|
||||||
|
aerc.enable = true;
|
||||||
mbsync.enable = true;
|
mbsync.enable = true;
|
||||||
mbsync.create = "maildir";
|
mbsync.create = "both";
|
||||||
userName = "tristan@tristans.cloud";
|
userName = "tristan@tristans.cloud";
|
||||||
realName = "Tristan";
|
realName = "Tristan";
|
||||||
address = "tristan@tristans.cloud";
|
address = "tristan@tristans.cloud";
|
||||||
primary = true;
|
primary = true;
|
||||||
passwordCommand = "rbw get privateemail";
|
passwordCommand = "${pkgs.rbw}/bin/rbw get privateemail";
|
||||||
smtp = {
|
smtp = {
|
||||||
host = "mail.privateemail.com";
|
host = "mail.privateemail.com";
|
||||||
port = 465;
|
port = 465;
|
||||||
|
|
@ -54,6 +57,7 @@
|
||||||
};
|
};
|
||||||
programs.mbsync.enable = true;
|
programs.mbsync.enable = true;
|
||||||
services.mbsync.enable = true;
|
services.mbsync.enable = true;
|
||||||
|
programs.aerc.enable = true;
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue