aboutsummaryrefslogtreecommitdiffstats
path: root/modules/communication
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar@gmail.com>2026-09-19 01:40:50 +0530
committerArpit Chakladar <arpitchakladar@gmail.com>2026-09-19 01:40:50 +0530
commitbaae94abb6a9a03914216f0f373b7b0f6b0207bd (patch)
tree34f0b938f0b34b0c3723ed929246f71f9a2d396e /modules/communication
parent6b0161b2639bb49e270754e90f4f8a47311c5198 (diff)
downloadhome-manager-config-baae94abb6a9a03914216f0f373b7b0f6b0207bd.tar.gz
home-manager-config-baae94abb6a9a03914216f0f373b7b0f6b0207bd.zip
chore: removed all raw string configurations options in favor of files
Moved all configurations which were previously raw strings chunks, for options that the home-manager options didn't provide, into files for that specific configuration and reading there contents instead (with string replacement for passing information from the rest of the configuration).
Diffstat (limited to 'modules/communication')
-rw-r--r--modules/communication/neomutt/.neomuttrc7
-rw-r--r--modules/communication/neomutt/account/.muttrc2
-rw-r--r--modules/communication/neomutt/account/default.nix2
-rw-r--r--modules/communication/neomutt/account/flavors/gmail/.muttrc2
-rw-r--r--modules/communication/neomutt/account/flavors/gmail/default.nix (renamed from modules/communication/neomutt/account/flavors/gmail.nix)5
-rw-r--r--modules/communication/neomutt/account/sync-channel.nix13
-rw-r--r--modules/communication/neomutt/default.nix24
-rw-r--r--modules/communication/neomutt/mailcap6
8 files changed, 33 insertions, 28 deletions
diff --git a/modules/communication/neomutt/.neomuttrc b/modules/communication/neomutt/.neomuttrc
index 3ed08f9..2f7ef00 100644
--- a/modules/communication/neomutt/.neomuttrc
+++ b/modules/communication/neomutt/.neomuttrc
@@ -1,3 +1,10 @@
+# Read messages in Neovim. `-` makes Neovim read the message from
+# stdin and -R prevents accidental edits to message content.
+set pager = "@@PAGER@@ -R -n +'setlocal nolist | silent! 1,2g/^$/delete _ | nohlsearch | setlocal nomodified nomodifiable' -"
+# Return directly to the index when Neovim exits and do not prepend
+# NeoMutt’s pager status line to the message passed to Neovim.
+set noprompt_after
+set pager_format = ""
# Base16 OneDark Dark terminal colors for neomutt
# Each column in the index receives a distinct color to keep the UI organized.
diff --git a/modules/communication/neomutt/account/.muttrc b/modules/communication/neomutt/account/.muttrc
new file mode 100644
index 0000000..2f8c9f2
--- /dev/null
+++ b/modules/communication/neomutt/account/.muttrc
@@ -0,0 +1,2 @@
+macro index,pager gs "<enter-command>set my_wait_key=$wait_key wait_key=no<enter><sync-mailbox><shell-escape>neomutt-sync @@QUICK_CHANNEL@@<enter><sync-mailbox><enter-command>set wait_key=$my_wait_key<enter>"
+macro index,pager gS "<enter-command>set my_wait_key=$wait_key wait_key=no<enter><sync-mailbox><shell-escape>neomutt-sync @@FULL_CHANNEL@@<enter><sync-mailbox><enter-command>set wait_key=$my_wait_key<enter>"
diff --git a/modules/communication/neomutt/account/default.nix b/modules/communication/neomutt/account/default.nix
index 5c0f8bf..e2d92eb 100644
--- a/modules/communication/neomutt/account/default.nix
+++ b/modules/communication/neomutt/account/default.nix
@@ -9,8 +9,8 @@
type = lib.types.attrsOf (
lib.types.submodule {
imports = [
+ ./flavors/gmail
./options.nix
- ./flavors/gmail.nix
./sync-channel.nix
];
}
diff --git a/modules/communication/neomutt/account/flavors/gmail/.muttrc b/modules/communication/neomutt/account/flavors/gmail/.muttrc
new file mode 100644
index 0000000..c87bba0
--- /dev/null
+++ b/modules/communication/neomutt/account/flavors/gmail/.muttrc
@@ -0,0 +1,2 @@
+mailboxes =Inbox ="[Gmail]/Drafts" ="[Gmail]/Sent Mail" ="[Gmail]/Spam" ="[Gmail]/Trash"
+unset record
diff --git a/modules/communication/neomutt/account/flavors/gmail.nix b/modules/communication/neomutt/account/flavors/gmail/default.nix
index 9cb51b2..66d7db3 100644
--- a/modules/communication/neomutt/account/flavors/gmail.nix
+++ b/modules/communication/neomutt/account/flavors/gmail/default.nix
@@ -30,10 +30,7 @@
};
};
- neomutt.extraConfig = lib.mkBefore ''
- mailboxes =Inbox ="[Gmail]/Drafts" ="[Gmail]/Sent Mail" ="[Gmail]/Spam" ="[Gmail]/Trash"
- unset record
- '';
+ neomutt.extraConfig = lib.mkBefore (builtins.readFile ./.muttrc);
notmuch.neomutt.virtualMailboxes = lib.mkDefault [
{
diff --git a/modules/communication/neomutt/account/sync-channel.nix b/modules/communication/neomutt/account/sync-channel.nix
index 7e538f2..6f3bd54 100644
--- a/modules/communication/neomutt/account/sync-channel.nix
+++ b/modules/communication/neomutt/account/sync-channel.nix
@@ -3,7 +3,7 @@
lib,
name,
...
-}@inputs:
+}:
let
mbsyncNamesFromName = (import ../lib.nix { inherit lib; }).mbsyncNamesFromName;
@@ -14,9 +14,12 @@ in
let
mbsyncNames = mbsyncNamesFromName name;
in
- ''
- macro index,pager gs "<enter-command>set my_wait_key=$wait_key wait_key=no<enter><sync-mailbox><shell-escape>neomutt-sync ${mbsyncNames.channels.quick}<enter><sync-mailbox><enter-command>set wait_key=$my_wait_key<enter>"
- macro index,pager gS "<enter-command>set my_wait_key=$wait_key wait_key=no<enter><sync-mailbox><shell-escape>neomutt-sync ${mbsyncNames.channels.full}<enter><sync-mailbox><enter-command>set wait_key=$my_wait_key<enter>"
- '';
+ builtins.replaceStrings
+ [ "@@QUICK_CHANNEL@@" "@@FULL_CHANNEL@@" ]
+ [
+ mbsyncNames.channels.quick
+ mbsyncNames.channels.full
+ ]
+ (builtins.readFile ./.muttrc);
};
}
diff --git a/modules/communication/neomutt/default.nix b/modules/communication/neomutt/default.nix
index 84e6c61..b9f22e0 100644
--- a/modules/communication/neomutt/default.nix
+++ b/modules/communication/neomutt/default.nix
@@ -79,14 +79,9 @@ in
xdg.mimeApps.defaultApplications = {
"x-scheme-handler/mailto" = "neomutt.desktop";
};
- xdg.configFile."neomutt/mailcap".text = ''
- text/html; ${lib.getExe config.web.chawan.package} '%s'; nametemplate=%s.html
- image/*; xdg-open '%s' &
- application/pdf; xdg-open '%s'; nametemplate=%s.pdf
- video/*; xdg-open '%s' &
- audio/*; xdg-open '%s' &
- application/*; xdg-open '%s' &
- '';
+ xdg.configFile."neomutt/mailcap".text =
+ builtins.replaceStrings [ "@@HTML_VIEWER@@" ] [ (lib.getExe config.web.chawan.package) ]
+ (builtins.readFile ./mailcap);
programs.neomutt = {
enable = true;
package = pkgs.symlinkJoin {
@@ -107,16 +102,9 @@ in
vimKeys = false;
unmailboxes = true;
checkStatsInterval = 20;
- extraConfig = ''
- # Read messages in Neovim. `-` makes Neovim read the message from
- # stdin and -R prevents accidental edits to message content.
- set pager = "${lib.getExe config.development.nixvim.package} -R -n +'setlocal nolist | silent! 1,2g/^$/delete _ | nohlsearch | setlocal nomodified nomodifiable' -"
- # Return directly to the index when Neovim exits and do not prepend
- # NeoMutt’s pager status line to the message passed to Neovim.
- set noprompt_after
- set pager_format = ""
- ''
- + builtins.readFile ./.neomuttrc;
+ extraConfig =
+ builtins.replaceStrings [ "@@PAGER@@" ] [ (lib.getExe config.development.nixvim.package) ]
+ (builtins.readFile ./.neomuttrc);
};
};
}
diff --git a/modules/communication/neomutt/mailcap b/modules/communication/neomutt/mailcap
new file mode 100644
index 0000000..3af2794
--- /dev/null
+++ b/modules/communication/neomutt/mailcap
@@ -0,0 +1,6 @@
+text/html; @@HTML_VIEWER@@ '%s'; nametemplate=%s.html
+image/*; xdg-open '%s' &
+application/pdf; xdg-open '%s'; nametemplate=%s.pdf
+video/*; xdg-open '%s' &
+audio/*; xdg-open '%s' &
+application/*; xdg-open '%s' &