feat: add pimalaya profile

This commit is contained in:
Moritz Böhme 2024-12-21 10:29:58 +01:00
parent 6913bb4ee3
commit d2a4ec7f03
Signed by: moritz
GPG key ID: 970C6E89EB0547A9
9 changed files with 638 additions and 29 deletions

View file

@ -205,7 +205,89 @@
"type": "github" "type": "github"
} }
}, },
"fenix_2": {
"inputs": {
"nixpkgs": [
"himalaya",
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src_2"
},
"locked": {
"lastModified": 1732405626,
"narHash": "sha256-uDbQrdOyqa2679kKPzoztMxesOV7DG2+FuX/TZdpxD0=",
"owner": "soywod",
"repo": "fenix",
"rev": "c7af381484169a78fb79a11652321ae80b0f92a6",
"type": "github"
},
"original": {
"owner": "soywod",
"repo": "fenix",
"type": "github"
}
},
"fenix_3": {
"inputs": {
"nixpkgs": [
"mirador",
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src_3"
},
"locked": {
"lastModified": 1732405626,
"narHash": "sha256-uDbQrdOyqa2679kKPzoztMxesOV7DG2+FuX/TZdpxD0=",
"owner": "soywod",
"repo": "fenix",
"rev": "c7af381484169a78fb79a11652321ae80b0f92a6",
"type": "github"
},
"original": {
"owner": "soywod",
"repo": "fenix",
"type": "github"
}
},
"fenix_4": {
"inputs": {
"nixpkgs": [
"neverest",
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src_4"
},
"locked": {
"lastModified": 1732405626,
"narHash": "sha256-uDbQrdOyqa2679kKPzoztMxesOV7DG2+FuX/TZdpxD0=",
"owner": "soywod",
"repo": "fenix",
"rev": "c7af381484169a78fb79a11652321ae80b0f92a6",
"type": "github"
},
"original": {
"owner": "soywod",
"repo": "fenix",
"type": "github"
}
},
"flake-compat": { "flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1696426674,
@ -221,7 +303,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_2": { "flake-compat_3": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1733328505, "lastModified": 1733328505,
@ -237,7 +319,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_3": { "flake-compat_4": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1696426674,
@ -253,7 +335,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_4": { "flake-compat_5": {
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
@ -267,7 +349,7 @@
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
} }
}, },
"flake-compat_5": { "flake-compat_6": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1696426674,
@ -420,7 +502,7 @@
}, },
"flake-utils_3": { "flake-utils_3": {
"inputs": { "inputs": {
"systems": "systems_5" "systems": "systems_6"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@ -438,7 +520,7 @@
}, },
"flake-utils_4": { "flake-utils_4": {
"inputs": { "inputs": {
"systems": "systems_6" "systems": "systems_7"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@ -476,7 +558,7 @@
}, },
"git-hooks": { "git-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_3", "flake-compat": "flake-compat_4",
"gitignore": "gitignore_2", "gitignore": "gitignore_2",
"nixpkgs": [ "nixpkgs": [
"neovim-nightly-overlay", "neovim-nightly-overlay",
@ -640,6 +722,50 @@
"type": "github" "type": "github"
} }
}, },
"himalaya": {
"inputs": {
"fenix": "fenix_2",
"nixpkgs": [
"nixpkgs"
],
"pimalaya": "pimalaya"
},
"locked": {
"lastModified": 1734596413,
"narHash": "sha256-08qvr9WeQTVaYgpecfXhdK3Ecf/2HaKRC4aN0QRYpl4=",
"owner": "pimalaya",
"repo": "himalaya",
"rev": "5eeda248fd90d161c8b346604f603d4a0a37ec6d",
"type": "github"
},
"original": {
"owner": "pimalaya",
"repo": "himalaya",
"type": "github"
}
},
"himalaya-vim": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": [
"nixpkgs"
],
"utils": "utils"
},
"locked": {
"lastModified": 1733824228,
"narHash": "sha256-W3DoPg18sYv7RKMZka5h+6VaAStX1FHPf2pu/DZJPIg=",
"owner": "pimalaya",
"repo": "himalaya-vim",
"rev": "0e5d3395441301538c1830366f3212ed55b1d315",
"type": "github"
},
"original": {
"owner": "pimalaya",
"repo": "himalaya-vim",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -769,7 +895,7 @@
"hyprwayland-scanner": "hyprwayland-scanner", "hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs_5", "nixpkgs": "nixpkgs_5",
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"systems": "systems_4", "systems": "systems_5",
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
@ -1005,6 +1131,28 @@
"type": "github" "type": "github"
} }
}, },
"mirador": {
"inputs": {
"fenix": "fenix_3",
"nixpkgs": [
"nixpkgs"
],
"pimalaya": "pimalaya_2"
},
"locked": {
"lastModified": 1733376925,
"narHash": "sha256-Knfh4QkRa6KyAdicvBRO23rvu5F1rikHtH4VphEnKM8=",
"owner": "pimalaya",
"repo": "mirador",
"rev": "5cbf31577edb3439f81277f6e717c48591af3d9f",
"type": "github"
},
"original": {
"owner": "pimalaya",
"repo": "mirador",
"type": "github"
}
},
"naersk": { "naersk": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -1029,7 +1177,7 @@
}, },
"neovim-nightly-overlay": { "neovim-nightly-overlay": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_3",
"flake-parts": "flake-parts_3", "flake-parts": "flake-parts_3",
"git-hooks": "git-hooks", "git-hooks": "git-hooks",
"hercules-ci-effects": "hercules-ci-effects", "hercules-ci-effects": "hercules-ci-effects",
@ -1067,6 +1215,28 @@
"type": "github" "type": "github"
} }
}, },
"neverest": {
"inputs": {
"fenix": "fenix_4",
"nixpkgs": [
"nixpkgs"
],
"pimalaya": "pimalaya_3"
},
"locked": {
"lastModified": 1734595002,
"narHash": "sha256-MXQDy5b/ooSkISEVM9KxHeqkkhPimZJtX3j9jqTP5aU=",
"owner": "pimalaya",
"repo": "neverest",
"rev": "cc5f5214d3bea064ed059116ac81e40a803faa7e",
"type": "github"
},
"original": {
"owner": "pimalaya",
"repo": "neverest",
"type": "github"
}
},
"niri": { "niri": {
"inputs": { "inputs": {
"niri-stable": "niri-stable", "niri-stable": "niri-stable",
@ -1502,7 +1672,7 @@
"devshell": [ "devshell": [
"devshell" "devshell"
], ],
"flake-compat": "flake-compat_4", "flake-compat": "flake-compat_5",
"flake-parts": [ "flake-parts": [
"flake-parts" "flake-parts"
], ],
@ -1572,9 +1742,57 @@
"type": "github" "type": "github"
} }
}, },
"pimalaya": {
"flake": false,
"locked": {
"lastModified": 1732869386,
"narHash": "sha256-83tDRVfSBVZgIp6WOb6r/T6cHfP7lNsK1MUTdkGMi14=",
"owner": "pimalaya",
"repo": "nix",
"rev": "be23e0deeb014c6be5232322b892c9bee25dee77",
"type": "github"
},
"original": {
"owner": "pimalaya",
"repo": "nix",
"type": "github"
}
},
"pimalaya_2": {
"flake": false,
"locked": {
"lastModified": 1732861699,
"narHash": "sha256-zAH0R9TnwxqevDMtQlp1+K/FUvHD7vFCvxx1IAPJPkg=",
"owner": "pimalaya",
"repo": "nix",
"rev": "5496d03953c15ce3022b76e9514ff083517cc740",
"type": "github"
},
"original": {
"owner": "pimalaya",
"repo": "nix",
"type": "github"
}
},
"pimalaya_3": {
"flake": false,
"locked": {
"lastModified": 1732869386,
"narHash": "sha256-83tDRVfSBVZgIp6WOb6r/T6cHfP7lNsK1MUTdkGMi14=",
"owner": "pimalaya",
"repo": "nix",
"rev": "be23e0deeb014c6be5232322b892c9bee25dee77",
"type": "github"
},
"original": {
"owner": "pimalaya",
"repo": "nix",
"type": "github"
}
},
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat_2",
"gitignore": "gitignore", "gitignore": "gitignore",
"nixpkgs": [ "nixpkgs": [
"hyprland", "hyprland",
@ -1598,7 +1816,7 @@
}, },
"pre-commit-hooks_2": { "pre-commit-hooks_2": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_5", "flake-compat": "flake-compat_6",
"gitignore": "gitignore_4", "gitignore": "gitignore_4",
"nixpkgs": "nixpkgs_10", "nixpkgs": "nixpkgs_10",
"nixpkgs-stable": "nixpkgs-stable_4" "nixpkgs-stable": "nixpkgs-stable_4"
@ -1647,12 +1865,16 @@
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"ghostty": "ghostty", "ghostty": "ghostty",
"himalaya": "himalaya",
"himalaya-vim": "himalaya-vim",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"hypr-contrib": "hypr-contrib", "hypr-contrib": "hypr-contrib",
"hyprland": "hyprland", "hyprland": "hyprland",
"impermanence": "impermanence", "impermanence": "impermanence",
"master": "master", "master": "master",
"mirador": "mirador",
"neovim-nightly-overlay": "neovim-nightly-overlay", "neovim-nightly-overlay": "neovim-nightly-overlay",
"neverest": "neverest",
"niri": "niri", "niri": "niri",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nix-monitored": "nix-monitored", "nix-monitored": "nix-monitored",
@ -1684,6 +1906,57 @@
"type": "github" "type": "github"
} }
}, },
"rust-analyzer-src_2": {
"flake": false,
"locked": {
"lastModified": 1732050317,
"narHash": "sha256-G5LUEOC4kvB/Xbkglv0Noi04HnCfryur7dVjzlHkgpI=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "c0bbbb3e5d7d1d1d60308c8270bfd5b250032bb4",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"rust-analyzer-src_3": {
"flake": false,
"locked": {
"lastModified": 1732050317,
"narHash": "sha256-G5LUEOC4kvB/Xbkglv0Noi04HnCfryur7dVjzlHkgpI=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "c0bbbb3e5d7d1d1d60308c8270bfd5b250032bb4",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"rust-analyzer-src_4": {
"flake": false,
"locked": {
"lastModified": 1732050317,
"narHash": "sha256-G5LUEOC4kvB/Xbkglv0Noi04HnCfryur7dVjzlHkgpI=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "c0bbbb3e5d7d1d1d60308c8270bfd5b250032bb4",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"search": { "search": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_4", "flake-utils": "flake-utils_4",
@ -1766,21 +2039,6 @@
} }
}, },
"systems_4": { "systems_4": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_5": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -1795,6 +2053,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_5": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_6": { "systems_6": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@ -1825,11 +2098,26 @@
"type": "github" "type": "github"
} }
}, },
"systems_8": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"timers": { "timers": {
"inputs": { "inputs": {
"naersk": "naersk", "naersk": "naersk",
"nixpkgs": "nixpkgs_12", "nixpkgs": "nixpkgs_12",
"utils": "utils" "utils": "utils_2"
}, },
"locked": { "locked": {
"lastModified": 1693040925, "lastModified": 1693040925,
@ -1910,7 +2198,25 @@
}, },
"utils": { "utils": {
"inputs": { "inputs": {
"systems": "systems_7" "systems": "systems_4"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"utils_2": {
"inputs": {
"systems": "systems_8"
}, },
"locked": { "locked": {
"lastModified": 1692799911, "lastModified": 1692799911,

View file

@ -49,6 +49,19 @@
blink-compat.url = "github:Saghen/blink.compat"; blink-compat.url = "github:Saghen/blink.compat";
blink-compat.flake = false; blink-compat.flake = false;
# Pimalaya
himalaya.url = "github:pimalaya/himalaya";
himalaya.inputs.nixpkgs.follows = "nixpkgs";
neverest.url = "github:pimalaya/neverest";
neverest.inputs.nixpkgs.follows = "nixpkgs";
mirador.url = "github:pimalaya/mirador";
mirador.inputs.nixpkgs.follows = "nixpkgs";
himalaya-vim.url = "github:pimalaya/himalaya-vim";
himalaya-vim.inputs.nixpkgs.follows = "nixpkgs";
# river # river
river.url = "git+https://github.com/riverwm/river?submodules=1"; river.url = "git+https://github.com/riverwm/river?submodules=1";
river.flake = false; river.flake = false;

View file

@ -0,0 +1,106 @@
{ lib
, config
, pkgs
, ...
}:
with lib;
let
cfg = config.my.profiles.pimalaya;
in
{
options.my.profiles.pimalaya.enable = mkEnableOption "Pimalaya email stuff";
config = mkIf cfg.enable {
my = {
services.mirador = {
enable = true;
package = inputs.mirador.packages.${pkgs.system}.default.overrideAttrs (old: {
nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.installShellFiles ];
postInstall = old.postInstall + ''
installShellCompletion --cmd mirador \
--bash <($out/bin/mirador completion bash) \
--fish <($out/bin/mirador completion fish) \
--zsh <($out/bin/mirador completion zsh)
'';
});
settings.accounts.personal = {
default = true;
folder = "INBOX";
backend.type = "imap";
backend.host = "mail.your-server.de";
backend.port = 993;
backend.encryption = "tls";
backend.login = "mail@moritzboeh.me";
backend.auth.type = "password";
backend.auth.command = "cat /run/agenix/email";
on-message-added.cmd = "systemctl start --user neverest.service";
on-message-added.notify.summary = "📫 New message from {sender}";
on-message-added.notify.body = "{subject}";
};
};
services.neverest = {
enable = true;
package = inputs.neverest.packages.${pkgs.system}.default.overrideAttrs (old: {
nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.installShellFiles ];
postInstall = old.postInstall + ''
installShellCompletion --cmd neverest \
--bash <($out/bin/neverest completion bash) \
--fish <($out/bin/neverest completion fish) \
--zsh <($out/bin/neverest completion zsh)
'';
});
settings.accounts.personal = {
default = true;
left.backend.type = "imap";
left.backend.host = "mail.your-server.de";
left.backend.port = 993;
left.backend.encryption = "tls";
left.backend.login = "mail@moritzboeh.me";
left.backend.auth.type = "password";
left.backend.auth.command = "cat /run/agenix/email";
right.backend.type = "maildir";
right.backend.root-dir = "/home/moritz/Documents/Mail/personal";
right.backend.maildirpp = false;
right.folder.aliases.inbox = "INBOX";
right.folder.aliases.sent = "Sent";
right.folder.aliases.drafts = "Drafts";
right.folder.aliases.trash = "Trash";
};
};
programs.himalaya = {
enable = true;
package = inputs.himalaya.packages.${pkgs.system}.default.overrideAttrs (old: {
nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.installShellFiles ];
postInstall = old.postInstall + ''
installShellCompletion --cmd himalaya \
--bash <($out/bin/himalaya completion bash) \
--fish <($out/bin/himalaya completion fish) \
--zsh <($out/bin/himalaya completion zsh)
'';
});
settings.accounts.personal = {
default = true;
email = "mail@moritzboeh.me";
display-name = "Moritz Böhme";
downloads-dir = "/home/moritz/Downloads";
backend.type = "maildir";
backend.root-dir = "/home/moritz/Documents/Mail/personal";
backend.maildirpp = false;
folder.aliases.inbox = "INBOX";
folder.aliases.sent = "Sent";
folder.aliases.drafts = "Drafts";
folder.aliases.trash = "Trash";
message.send.backend.type = "smtp";
message.send.backend.host = "mail.your-server.de";
message.send.backend.port = 465;
message.send.backend.login = "mail@moritzboeh.me";
message.send.backend.encryption.type = "tls";
message.send.backend.auth.type = "password";
message.send.backend.auth.command = "cat /run/agenix/email";
};
};
};
};
}

View file

@ -0,0 +1,30 @@
{ config
, lib
, pkgs
, ...
}:
with lib;
let
cfg = config.my.programs.himalaya;
toml = pkgs.formats.toml { };
in
{
options.my.programs.himalaya.enable = mkEnableOption "himalaya";
options.my.programs.himalaya.package = mkPackageOption pkgs "himalaya" { };
options.my.programs.himalaya.settings = mkOption {
inherit (toml) type;
default = { };
apply = toml.generate "config.toml";
};
config = mkIf cfg.enable {
home-manager.users.moritz.xdg.configFile."himalaya/config.toml".source = cfg.settings;
home-manager.users.moritz.home.packages = [ cfg.package ];
age.secrets.email = {
file = ../../secrets/email.age;
owner = "1000";
};
};
}

View file

@ -0,0 +1,23 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = lib.mkIf config.my.programs.himalaya.enable {
extraPlugins = with pkgs.vimPlugins; [
# himalaya-vim
inputs.himalaya-vim.packages.${pkgs.system}.default
];
extraConfigLuaPost = ''
vim.g.himalaya_folder_picker = "telescope";
'';
autoCmd = [
{
command = "set modifiable";
event = [ "FileType" ];
pattern = [ "himalaya-email-listing" ];
}
];
};
}

View file

@ -0,0 +1,50 @@
{ config
, lib
, pkgs
, ...
}:
with lib;
let
cfg = config.my.services.mirador;
toml = pkgs.formats.toml { };
in
{
options.my.services.mirador = {
enable = mkEnableOption "mirador";
package = mkPackageOption pkgs "mirador" { };
settings = mkOption {
inherit (toml) type;
default = { };
apply = toml.generate "config.toml";
};
};
config = mkIf cfg.enable {
home-manager.users.moritz = {
xdg.configFile."mirador/config.toml".source = cfg.settings;
home.packages = [ cfg.package ];
systemd.user.services.mirador = {
Unit = {
Description = "CLI to watch mailbox changes";
};
Service = {
# Lower CPU and I/O priority
Nice = 19;
IOSchedulingClass = "best-effort";
IOSchedulingPriority = 7;
IOWeight = 100;
ExecStart = ''
${lib.getExe cfg.package} watch
'';
};
};
};
age.secrets.email = {
file = ../../secrets/email.age;
owner = "1000";
};
};
}

View file

@ -0,0 +1,71 @@
{ config
, lib
, pkgs
, ...
}:
with lib;
let
cfg = config.my.services.neverest;
toml = pkgs.formats.toml { };
in
{
options.my.services.neverest = {
enable = mkEnableOption "neverest";
package = mkPackageOption pkgs "neverest" { };
frequency = mkOption {
type = types.str;
default = "hourly";
description = ''
How often to run neverest when
`services.neverest.enable = true`.
This value is passed to the systemd timer configuration as
the onCalendar option. See
{manpage}`systemd.time(7)`
for more information about the format.
'';
};
settings = mkOption {
inherit (toml) type;
default = { };
apply = toml.generate "config.toml";
};
};
config = mkIf cfg.enable {
home-manager.users.moritz = {
xdg.configFile."neverest/config.toml".source = cfg.settings;
home.packages = [ cfg.package ];
systemd.user.timers.neverest = {
Unit.Description = "Run neverest";
Timer = {
OnCalendar = cfg.frequency;
Persistent = true;
RandomizedDelaySec = "10m";
};
Install.WantedBy = [ "timers.target" ];
};
systemd.user.services.neverest = {
Unit = {
Description = "CLI to synchronize, backup and restore emails";
};
Service = {
# Lower CPU and I/O priority
Nice = 19;
IOSchedulingClass = "best-effort";
IOSchedulingPriority = 7;
IOWeight = 100;
ExecStart = ''
${lib.getExe cfg.package} synchronize
'';
};
};
};
age.secrets.email = {
file = ../../secrets/email.age;
owner = "1000";
};
};
}

9
secrets/email.age Normal file
View file

@ -0,0 +1,9 @@
age-encryption.org/v1
-> ssh-ed25519 CjuqfA MpG6qzuiLlKhSXD8Huw1Bvq3ryPWqz/ess/yhxlsc10
1HvQ9OHzuSwgKPBBi5z/A2M0ExquwBtCC53LD/D3+/g
-> ssh-ed25519 wG6LYg xJwvrYgDvHcL8dhV35LWIUEedyA4yz0tbcnI/eE/sSE
NYvEWeD+XHubSicVRG3KH3MG2DGua2s3Fks87sbfVRI
-> ssh-ed25519 ZYd7Zg ltnNKEHfkPGv2BYzDOy5iXSr7eJjkF9Vuuyor9HkVEo
f06sXYZWWlt8nRpfNqWrLgLtkwO1Ox2f6lYhZX0zwwA
--- peGLxgxO+t4dAKViNPJ12BTj+FnQc69z5rfb92JfomU
<EFBFBD>~ÊÃÔL³‰‡ãGš”Ïçáw5u§­<C2A7>~v0­…G ËU3”ÅÊ|“ì|<7C>Ürô=AËZ¬óK~W@½F&CjÞ

View file

@ -29,4 +29,5 @@ in
"openai.age".publicKeys = personal; "openai.age".publicKeys = personal;
"anthropic.age".publicKeys = personal; "anthropic.age".publicKeys = personal;
"nix-github-token.age".publicKeys = personal; "nix-github-token.age".publicKeys = personal;
"email.age".publicKeys = personal;
} }