aboutsummaryrefslogtreecommitdiffstats
path: root/modules/programs/meli
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar+git@gmail.com>2026-07-09 20:34:00 +0530
committerArpit Chakladar <arpitchakladar+git@gmail.com>2026-07-09 20:34:00 +0530
commitee32d0d0813f9870d89fb7d821633fd8b4a9987a (patch)
tree97ea433469377daee6f9651f10a0a7a21be95d75 /modules/programs/meli
parente2ae84d1c8ab00021127d455e549a47af9bc3291 (diff)
downloadhome-manager-config-ee32d0d0813f9870d89fb7d821633fd8b4a9987a.tar.gz
home-manager-config-ee32d0d0813f9870d89fb7d821633fd8b4a9987a.zip
feat: added email configuration with mbsync + notmuch
added a private module which will be gitignored and serves to include options that are not meant to be shared
Diffstat (limited to 'modules/programs/meli')
-rw-r--r--modules/programs/meli/assertions.nix27
-rw-r--r--modules/programs/meli/default.nix46
2 files changed, 73 insertions, 0 deletions
diff --git a/modules/programs/meli/assertions.nix b/modules/programs/meli/assertions.nix
new file mode 100644
index 0000000..d651047
--- /dev/null
+++ b/modules/programs/meli/assertions.nix
@@ -0,0 +1,27 @@
+{ config, ... }:
+
+{
+ assertions = [
+ {
+ assertion = !config.programs.meli.enable || config.programs.less.enable;
+ message = ''
+ programs.meli is enabled but programs.less.enable is not.
+ meli requires less as its pager. Please enable programs.less.
+ '';
+ }
+ {
+ assertion = !config.programs.meli.enable || config.programs.bat.enable;
+ message = ''
+ programs.meli is enabled but programs.bat.enable is not.
+ meli requires bat for text/html filtering. Please enable programs.bat.
+ '';
+ }
+ {
+ assertion = !config.programs.meli.enable || config.programs.email.enable;
+ message = ''
+ programs.meli is enabled but programs.email.enable is not.
+ meli requires the email module (mbsync + notmuch) to be enabled.
+ '';
+ }
+ ];
+}
diff --git a/modules/programs/meli/default.nix b/modules/programs/meli/default.nix
new file mode 100644
index 0000000..d17a3db
--- /dev/null
+++ b/modules/programs/meli/default.nix
@@ -0,0 +1,46 @@
+# meli - Terminal email client
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+
+let
+ mailDir = "${config.home.homeDirectory}/.local/mail";
+in
+{
+ imports = [ ./assertions.nix ];
+
+ config = lib.mkIf config.programs.meli.enable {
+ home.packages = [ pkgs.meli ];
+
+ xdg.configFile."meli/config.toml" = {
+ text = ''
+ [terminal]
+ themes = "dark"
+
+ [notifications]
+ enable = false
+
+ [pager]
+ html_filter = "${pkgs.bat}/bin/bat --language=html"
+
+ [composing]
+ editor_command = "${pkgs.neovim}/bin/nvim"
+
+ [pgp]
+ auto_verify_signatures = true
+ gpg_binary = "${pkgs.gnupg}/bin/gpg"
+
+ [search]
+ backend = "notmuch"
+ database_path = "${mailDir}/.notmuch"
+ '';
+ };
+
+ programs.zsh.initExtra = lib.mkAfter ''
+ alias meli='meli-sync && meli'
+ '';
+ };
+}