Compare commits
2 commits
b0de53040c
...
2c0a392990
| Author | SHA1 | Date | |
|---|---|---|---|
| 2c0a392990 | |||
| c513825d83 |
3 changed files with 165 additions and 5 deletions
143
home/aselimov/email.nix
Normal file
143
home/aselimov/email.nix
Normal file
|
|
@ -0,0 +1,143 @@
|
||||||
|
{config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
mailNotify = pkgs.writeShellScript "mail-notify" ''
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
${pkgs.notmuch}/bin/notmuch new >/dev/null
|
||||||
|
|
||||||
|
${pkgs.notmuch}/bin/notmuch search \
|
||||||
|
--format=json \
|
||||||
|
'tag:new' |
|
||||||
|
${pkgs.jq}/bin/jq -r '.[] | [.authors, .subject] | @tsv' |
|
||||||
|
while IFS=$'\t' read -r sender subject; do
|
||||||
|
${pkgs.libnotify}/bin/notify-send \
|
||||||
|
--app-name="Mail" \
|
||||||
|
"New email from $sender" \
|
||||||
|
"$subject"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Don't notify about these messages again next sync.
|
||||||
|
${pkgs.notmuch}/bin/notmuch tag -new -- 'tag:new'
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
accounts.email = {
|
||||||
|
maildirBasePath = "Mail";
|
||||||
|
|
||||||
|
accounts.personal = {
|
||||||
|
primary = true;
|
||||||
|
address = "alex@alexselimov.com";
|
||||||
|
realName = "Alex Selimov";
|
||||||
|
userName = "alex";
|
||||||
|
|
||||||
|
passwordCommand = "${pkgs.pass}/bin/pass show alex@alexselimov.xyz";
|
||||||
|
|
||||||
|
imap = {
|
||||||
|
host = "mail.alexselimov.com";
|
||||||
|
port = 993;
|
||||||
|
|
||||||
|
tls = {
|
||||||
|
enable = true;
|
||||||
|
useStartTls = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
maildir.path = "alex@alexselimov.com";
|
||||||
|
|
||||||
|
smtp = {
|
||||||
|
host = "mail.alexselimov.com";
|
||||||
|
port = 587;
|
||||||
|
|
||||||
|
tls = {
|
||||||
|
enable = true;
|
||||||
|
useStartTls = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mbsync = {
|
||||||
|
enable = true;
|
||||||
|
create = "both";
|
||||||
|
};
|
||||||
|
notmuch.enable = true;
|
||||||
|
aerc = {
|
||||||
|
enable = true;
|
||||||
|
extraAccounts = {
|
||||||
|
source = "notmuch://";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.mbsync.enable = true;
|
||||||
|
services.mbsync = {
|
||||||
|
enable = true;
|
||||||
|
frequency = "*:0/1";
|
||||||
|
postExec = "${mailNotify}";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.aerc = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
extraConfig = {
|
||||||
|
general = {
|
||||||
|
unsafe-accounts-conf = true;
|
||||||
|
};
|
||||||
|
ui.styleset-name = "zenwritten";
|
||||||
|
filters = {
|
||||||
|
"text/plain" = "wrap -w 100 | colorize";
|
||||||
|
"text/html" = "html | colorize";
|
||||||
|
};
|
||||||
|
|
||||||
|
compose = {
|
||||||
|
editor = "nvim";
|
||||||
|
};
|
||||||
|
|
||||||
|
viewer = {
|
||||||
|
pager = "less -R";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile."aerc/binds.conf".text = ''
|
||||||
|
${builtins.readFile "${pkgs.aerc}/share/aerc/binds.conf"}
|
||||||
|
|
||||||
|
[messages]
|
||||||
|
l = :view<Enter>
|
||||||
|
'';
|
||||||
|
|
||||||
|
programs.notmuch = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
new.tags = [
|
||||||
|
"new"
|
||||||
|
"unread"
|
||||||
|
"inbox"
|
||||||
|
];
|
||||||
|
|
||||||
|
extraConfig = {
|
||||||
|
user = {
|
||||||
|
name = "Alex Selimov";
|
||||||
|
primary_email = "alex@alexselimov.com";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile."aerc/stylesets/zenwritten".text = ''
|
||||||
|
*.default=true
|
||||||
|
*.normal=true
|
||||||
|
*.fg=default
|
||||||
|
*.bg=default
|
||||||
|
|
||||||
|
*.selected.reverse=toggle
|
||||||
|
|
||||||
|
title.bold=true
|
||||||
|
header.bold=true
|
||||||
|
msglist_unread.bold=true
|
||||||
|
dirlist_recent.bold=true
|
||||||
|
'';
|
||||||
|
|
||||||
|
xdg.configFile."aerc/mimeapps.conf".text = ''
|
||||||
|
text/html=xdg-open
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -24,6 +24,7 @@ in
|
||||||
./theme/theme.nix
|
./theme/theme.nix
|
||||||
./fuzzel.nix
|
./fuzzel.nix
|
||||||
./mako.nix
|
./mako.nix
|
||||||
|
./email.nix
|
||||||
];
|
];
|
||||||
home.username = "aselimov";
|
home.username = "aselimov";
|
||||||
home.homeDirectory = "/home/aselimov";
|
home.homeDirectory = "/home/aselimov";
|
||||||
|
|
@ -65,6 +66,7 @@ in
|
||||||
dino
|
dino
|
||||||
wtype
|
wtype
|
||||||
libnotify
|
libnotify
|
||||||
|
prusa-slicer
|
||||||
];
|
];
|
||||||
home.pointerCursor = {
|
home.pointerCursor = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,23 @@
|
||||||
{config, pkgs, ... }:
|
{config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
|
services.darkman = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
lat = 33.7490;
|
||||||
|
lng = -84.3880;
|
||||||
|
};
|
||||||
|
|
||||||
|
darkModeScripts.gsettings = ''
|
||||||
|
${pkgs.glib}/bin/gsettings \
|
||||||
|
set org.gnome.desktop.interface color-scheme prefer-dark
|
||||||
|
'';
|
||||||
|
|
||||||
|
lightModeScripts.gsettings = ''
|
||||||
|
${pkgs.glib}/bin/gsettings \
|
||||||
|
set org.gnome.desktop.interface color-scheme prefer-light
|
||||||
|
'';
|
||||||
|
};
|
||||||
home.file."bin/themer.sh" = {
|
home.file."bin/themer.sh" = {
|
||||||
executable = true;
|
executable = true;
|
||||||
text = ''
|
text = ''
|
||||||
|
|
@ -33,11 +51,8 @@
|
||||||
ln -sf "$tmux" $HOME/.config/tmux/theme.conf
|
ln -sf "$tmux" $HOME/.config/tmux/theme.conf
|
||||||
makoctl reload
|
makoctl reload
|
||||||
tmux source-file ~/.config/tmux/theme.conf
|
tmux source-file ~/.config/tmux/theme.conf
|
||||||
for dir in "$XDG_RUNTIME_DIR-}" "/tmp" "$HOME/.local/state/nvim"; do
|
for sock in "$XDG_RUNTIME_DIR"/nvim.*.0; do
|
||||||
[ -d "$dir" ] || continue
|
timeout 1s nvim --server "$sock" --remote-send "$keys" >/dev/null 2>&1 || true
|
||||||
find "$dir" -type s -name 'nvim*' 2>/dev/null | while read -r sock; do
|
|
||||||
timeout 1s nvim --server "$sock" --remote-send "$keys" >/dev/null 2>&1 || true
|
|
||||||
done
|
|
||||||
done
|
done
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue