aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar@gmail.com>2026-09-24 19:16:14 +0530
committerArpit Chakladar <arpitchakladar@gmail.com>2026-09-24 19:16:14 +0530
commitf36491c92269d3e1dd241e67c292af762ac498c3 (patch)
tree7e36c45915bf83dc7b69e21830cf0c27397c0592
parentf85b86095aa4ea6ac4921b6d37981bffa5c0b711 (diff)
downloadhome-manager-config-f36491c92269d3e1dd241e67c292af762ac498c3.tar.gz
home-manager-config-f36491c92269d3e1dd241e67c292af762ac498c3.zip
refactor: some more minor refactoring
-rw-r--r--modules/colors/base16/default.nix4
-rw-r--r--modules/communication/neomutt/account/assertions.nix13
-rw-r--r--modules/communication/neomutt/account/default.nix7
-rw-r--r--modules/communication/neomutt/assertions.nix11
-rw-r--r--modules/communication/neomutt/default.nix2
-rw-r--r--modules/communication/neomutt/keybindings.nix3
-rw-r--r--modules/communication/neomutt/macros.nix5
-rw-r--r--modules/communication/neomutt/mail/mbsync.nix4
-rw-r--r--modules/communication/neomutt/mail/notmuch.nix5
-rw-r--r--modules/communication/senpai/assertions.nix12
-rw-r--r--modules/desktop/default.nix5
-rw-r--r--modules/desktop/mako/colors.nix5
-rw-r--r--modules/desktop/niri/assertions.nix7
-rw-r--r--modules/development/git/assertions.nix10
-rw-r--r--modules/development/lazygit/assertions.nix5
-rw-r--r--modules/development/nixvim/colorscheme.nix3
-rw-r--r--modules/development/nixvim/keymaps.nix5
-rw-r--r--modules/development/nixvim/plugins/cmp/default.nix5
-rw-r--r--modules/development/nixvim/plugins/comment/default.nix5
-rw-r--r--modules/development/nixvim/plugins/dap-ui/default.nix5
-rw-r--r--modules/development/nixvim/plugins/dap-virtual-text/default.nix5
-rw-r--r--modules/development/nixvim/plugins/dap/default.nix5
-rw-r--r--modules/development/nixvim/plugins/gitsigns/default.nix3
-rw-r--r--modules/development/nixvim/plugins/indent-blankline/default.nix5
-rw-r--r--modules/development/nixvim/plugins/lsp/default.nix5
-rw-r--r--modules/development/nixvim/plugins/lualine/default.nix3
-rw-r--r--modules/development/nixvim/plugins/luasnip/default.nix5
-rw-r--r--modules/development/nixvim/plugins/noice/default.nix5
-rw-r--r--modules/development/nixvim/plugins/nvim-tree/default.nix5
-rw-r--r--modules/development/nixvim/plugins/telescope/default.nix5
-rw-r--r--modules/development/nixvim/plugins/treesitter/default.nix5
-rw-r--r--modules/development/nixvim/plugins/web-devicons/default.nix5
-rw-r--r--modules/development/nixvim/plugins/which-key/default.nix5
-rw-r--r--modules/file-management/yazi/assertions.nix7
-rw-r--r--modules/file-management/yazi/theme.nix3
-rw-r--r--modules/fonts/default.nix7
-rw-r--r--modules/media/pamixer/default.nix7
-rw-r--r--modules/media/screen-recording/assertions.nix9
-rw-r--r--modules/networking/bluetui/assertions.nix5
-rw-r--r--modules/networking/impala/assertions.nix5
-rw-r--r--modules/networking/usque/assertions.nix5
-rw-r--r--modules/office/calcurse/assertions.nix5
-rw-r--r--modules/security/gopass/assertions.nix7
-rw-r--r--modules/security/gpg/assertions.nix5
-rw-r--r--modules/system/btop/assertions.nix7
-rw-r--r--modules/terminal/fzf/assertions.nix5
-rw-r--r--modules/terminal/kitty/colors.nix5
-rw-r--r--modules/terminal/kitty/keybindings.nix5
-rw-r--r--modules/web/chawan/assertions.nix5
-rw-r--r--modules/web/chromium/assertions.nix5
-rw-r--r--modules/web/chromium/browserpass.nix6
-rw-r--r--modules/web/chromium/extensions/assertions.nix5
52 files changed, 211 insertions, 79 deletions
diff --git a/modules/colors/base16/default.nix b/modules/colors/base16/default.nix
index 982113e..3102821 100644
--- a/modules/colors/base16/default.nix
+++ b/modules/colors/base16/default.nix
@@ -9,13 +9,13 @@
...
}:
let
+ cfg = config.colors;
availableColorSchemeFiles = {
"onedark-dark" = ./onedark-dark.nix;
};
selectedColorSchemeFile =
- availableColorSchemeFiles.${config.colors.base16}
- or (throw "Unknown color scheme: ${config.colors.base16}");
+ availableColorSchemeFiles.${cfg.base16} or (throw "Unknown color scheme: ${cfg.base16}");
selectedColorScheme = import selectedColorSchemeFile { };
selectedColorSchemeColorNames = builtins.attrNames selectedColorScheme;
diff --git a/modules/communication/neomutt/account/assertions.nix b/modules/communication/neomutt/account/assertions.nix
index 5c30311..09839c8 100644
--- a/modules/communication/neomutt/account/assertions.nix
+++ b/modules/communication/neomutt/account/assertions.nix
@@ -1,12 +1,15 @@
# Validates the neomutt account configurations
{ config, lib, ... }:
+let
+ cfg = config.communication.neomutt;
+in
{
config.assertions = [
{
assertion =
- !config.communication.neomutt.enable
+ !cfg.enable
|| !lib.any (account: account.enable && account.password-gopass-secret != null) (
- lib.attrValues config.communication.neomutt.accounts
+ lib.attrValues cfg.accounts
)
|| config.security.gopass.enable;
message = ''
@@ -16,10 +19,8 @@
}
{
assertion =
- !config.communication.neomutt.enable
- || !lib.any (account: account.enable && account.gpg.key != null) (
- lib.attrValues config.communication.neomutt.accounts
- )
+ !cfg.enable
+ || !lib.any (account: account.enable && account.gpg.key != null) (lib.attrValues cfg.accounts)
|| config.security.gpg.enable;
message = ''
An enabled communication.neomutt account specifies a GPG key but security.gpg.enable is not set.
diff --git a/modules/communication/neomutt/account/default.nix b/modules/communication/neomutt/account/default.nix
index 61256e1..07a4b89 100644
--- a/modules/communication/neomutt/account/default.nix
+++ b/modules/communication/neomutt/account/default.nix
@@ -1,5 +1,8 @@
# Converts neomutt account options into home-manager email config
{ config, lib, ... }:
+let
+ cfg = config.communication.neomutt;
+in
{
imports = [
./assertions.nix
@@ -19,7 +22,7 @@
description = "Specification of email accounts.";
};
- config = lib.mkIf config.communication.neomutt.enable {
+ config = lib.mkIf cfg.enable {
accounts.email.accounts = lib.mapAttrs (accountName: accountInformation: {
inherit (accountInformation) address primary;
@@ -109,6 +112,6 @@
command = accountInformation.signature.command;
showSignature = accountInformation.signature.show-signature;
};
- }) (lib.filterAttrs (n: a: a.enable) config.communication.neomutt.accounts);
+ }) (lib.filterAttrs (n: a: a.enable) cfg.accounts);
};
}
diff --git a/modules/communication/neomutt/assertions.nix b/modules/communication/neomutt/assertions.nix
index e8351f0..cddc7bf 100644
--- a/modules/communication/neomutt/assertions.nix
+++ b/modules/communication/neomutt/assertions.nix
@@ -1,30 +1,33 @@
# Validates NeoMutt dependencies.
{ config, ... }:
+let
+ cfg = config.communication.neomutt;
+in
{
assertions = [
{
- assertion = !config.communication.neomutt.enable || config.development.nixvim.enable;
+ assertion = !cfg.enable || config.development.nixvim.enable;
message = ''
communication.neomutt is enabled but development.nixvim.enable is not.
neomutt uses Neovim as its external pager. Please enable development.nixvim.
'';
}
{
- assertion = !config.communication.neomutt.enable || config.terminal.bat.enable;
+ assertion = !cfg.enable || config.terminal.bat.enable;
message = ''
communication.neomutt is enabled but terminal.bat.enable is not.
neomutt requires bat for text/html filtering. Please enable terminal.bat.
'';
}
{
- assertion = !config.communication.neomutt.enable || config.terminal.kitty.enable;
+ assertion = !cfg.enable || config.terminal.kitty.enable;
message = ''
communication.neomutt is enabled but terminal.kitty.enable is not.
neomutt's desktop entry requires kitty as the terminal launcher. Please enable terminal.kitty.
'';
}
{
- assertion = !config.communication.neomutt.enable || config.web.chawan.enable;
+ assertion = !cfg.enable || config.web.chawan.enable;
message = ''
communication.neomutt is enabled but web.chawan.enable is not.
neomutt uses chawan for HTML email rendering. Please enable web.chawan.
diff --git a/modules/communication/neomutt/default.nix b/modules/communication/neomutt/default.nix
index 6bc363b..365ef32 100644
--- a/modules/communication/neomutt/default.nix
+++ b/modules/communication/neomutt/default.nix
@@ -11,7 +11,7 @@ let
mbsyncNamesFromName = (import ./lib.nix { inherit lib; }).mbsyncNamesFromName;
fullSyncChannels = lib.mapAttrsToList (name: account: (mbsyncNamesFromName name).channels.full) (
- lib.filterAttrs (name: account: account.enable) config.communication.neomutt.accounts
+ lib.filterAttrs (name: account: account.enable) cfg.accounts
);
neomuttSyncScript = pkgs.writeShellApplication {
diff --git a/modules/communication/neomutt/keybindings.nix b/modules/communication/neomutt/keybindings.nix
index 80e33cd..3bfb137 100644
--- a/modules/communication/neomutt/keybindings.nix
+++ b/modules/communication/neomutt/keybindings.nix
@@ -2,13 +2,14 @@
{ config, lib, ... }:
let
+ cfg = config.communication.neomutt;
bind = keyMap: key: action: {
map = keyMap;
inherit key action;
};
in
{
- config.programs.neomutt.binds = lib.mkIf config.communication.neomutt.enable [
+ config.programs.neomutt.binds = lib.mkIf cfg.enable [
# Index
(bind [ "index" ] "$" "noop")
(bind [ "index" ] "g" "noop")
diff --git a/modules/communication/neomutt/macros.nix b/modules/communication/neomutt/macros.nix
index 4e5bf7b..d4abf28 100644
--- a/modules/communication/neomutt/macros.nix
+++ b/modules/communication/neomutt/macros.nix
@@ -1,7 +1,10 @@
# neomutt macros for sync, URL extraction, flag legend, and quit
{ config, lib, ... }:
+let
+ cfg = config.communication.neomutt;
+in
{
- config.programs.neomutt.macros = lib.mkIf config.communication.neomutt.enable [
+ config.programs.neomutt.macros = lib.mkIf cfg.enable [
{
map = [
"index"
diff --git a/modules/communication/neomutt/mail/mbsync.nix b/modules/communication/neomutt/mail/mbsync.nix
index f586538..b93b134 100644
--- a/modules/communication/neomutt/mail/mbsync.nix
+++ b/modules/communication/neomutt/mail/mbsync.nix
@@ -5,6 +5,8 @@
...
}:
let
+ cfg = config.communication.neomutt;
+
mbsyncNamesFromName = (import ../lib.nix { inherit lib; }).mbsyncNamesFromName;
mbsyncValue =
@@ -93,7 +95,7 @@ let
);
in
{
- config = lib.mkIf config.communication.neomutt.enable {
+ config = lib.mkIf cfg.enable {
programs.mbsync.enable = true;
xdg.configFile."mbsync/.mbsyncrc".text = lib.concatStringsSep "\n" (map mbsyncAccount accounts);
diff --git a/modules/communication/neomutt/mail/notmuch.nix b/modules/communication/neomutt/mail/notmuch.nix
index 6f806fb..80b6bd1 100644
--- a/modules/communication/neomutt/mail/notmuch.nix
+++ b/modules/communication/neomutt/mail/notmuch.nix
@@ -1,7 +1,10 @@
# Mail indexer for fast email search
{ config, lib, ... }:
+let
+ cfg = config.communication.neomutt;
+in
{
- config = lib.mkIf config.communication.neomutt.enable {
+ config = lib.mkIf cfg.enable {
programs.notmuch.enable = true;
};
}
diff --git a/modules/communication/senpai/assertions.nix b/modules/communication/senpai/assertions.nix
index 8e74367..0f0a3dc 100644
--- a/modules/communication/senpai/assertions.nix
+++ b/modules/communication/senpai/assertions.nix
@@ -1,20 +1,20 @@
# Validates Senpai dependencies.
{ config, ... }:
+let
+ cfg = config.communication.senpai;
+in
{
assertions = [
{
- assertion = !config.communication.senpai.enable || config.communication.senpai.server.address != "";
+ assertion = !cfg.enable || cfg.server.address != "";
message = "communication.senpai.enable requires communication.senpai.server.address to be set.";
}
{
- assertion =
- !config.communication.senpai.enable || config.communication.senpai.identity.nickname != "";
+ assertion = !cfg.enable || cfg.identity.nickname != "";
message = "communication.senpai.enable requires communication.senpai.identity.nickname to be set.";
}
{
- assertion =
- config.communication.senpai.identity.password-gopass-secret == null
- || config.security.gopass.enable;
+ assertion = cfg.identity.password-gopass-secret == null || config.security.gopass.enable;
message = "communication.senpai.identity.password-gopass-secret requires security.gopass.enable.";
}
];
diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix
index 6ad371d..d851699 100644
--- a/modules/desktop/default.nix
+++ b/modules/desktop/default.nix
@@ -4,6 +4,9 @@
config,
...
}:
+let
+ cfg = config.desktop;
+in
{
imports = [
./rofi
@@ -19,7 +22,7 @@
enable = lib.mkEnableOption "Enables graphical interface.";
};
- config = lib.mkIf config.desktop.enable {
+ config = lib.mkIf cfg.enable {
xdg.enable = true;
};
}
diff --git a/modules/desktop/mako/colors.nix b/modules/desktop/mako/colors.nix
index 0ba4d33..6186dd6 100644
--- a/modules/desktop/mako/colors.nix
+++ b/modules/desktop/mako/colors.nix
@@ -5,8 +5,11 @@
pkgs,
...
}:
+let
+ cfg = config.desktop.mako;
+in
{
- config.services.mako.settings = lib.mkIf config.desktop.mako.enable (
+ config.services.mako.settings = lib.mkIf cfg.enable (
let
base16Colors = import ../../colors/base16 { inherit config lib pkgs; };
in
diff --git a/modules/desktop/niri/assertions.nix b/modules/desktop/niri/assertions.nix
index 99e9d29..626899e 100644
--- a/modules/desktop/niri/assertions.nix
+++ b/modules/desktop/niri/assertions.nix
@@ -1,13 +1,16 @@
# Validates niri hardware GPU options require desktop to be enabled
{ config, ... }:
+let
+ cfg = config.desktop;
+in
{
assertions = [
{
- assertion = !config.desktop.hardware.gpu.nvidia.enable || config.desktop.enable;
+ assertion = !cfg.hardware.gpu.nvidia.enable || cfg.enable;
message = "desktop.hardware.gpu.nvidia.enable requires desktop.enable.";
}
{
- assertion = !config.desktop.hardware.gpu.amd.enable || config.desktop.enable;
+ assertion = !cfg.hardware.gpu.amd.enable || cfg.enable;
message = "desktop.hardware.gpu.amd.enable requires desktop.enable.";
}
];
diff --git a/modules/development/git/assertions.nix b/modules/development/git/assertions.nix
index 2baeced..1dd1cf5 100644
--- a/modules/development/git/assertions.nix
+++ b/modules/development/git/assertions.nix
@@ -1,24 +1,26 @@
# Validates SSH is enabled when git.useSSH is set
{ config, ... }:
+let
+ cfg = config.development.git;
+in
{
assertions = [
{
- assertion = !config.development.git.signing.sign-by-default || config.development.git.enable;
+ assertion = !cfg.signing.sign-by-default || cfg.enable;
message = ''
development.git.signing.sign-by-default is enabled but development.git.enable is not.
Enable development.git before enabling commit signing.
'';
}
{
- assertion =
- !config.development.git.signing.sign-by-default || config.development.git.signing.key != null;
+ assertion = !cfg.signing.sign-by-default || cfg.signing.key != null;
message = ''
development.git.signing.sign-by-default is enabled but development.git.signing.key is not set.
Set a GPG key ID before enabling commit signing by default.
'';
}
{
- assertion = !config.development.git.signing.sign-by-default || config.security.gpg.enable;
+ assertion = !cfg.signing.sign-by-default || config.security.gpg.enable;
message = ''
development.git.signing.sign-by-default is enabled but security.gpg.enable is not.
Commit signing requires the managed GPG configuration. Please enable security.gpg.
diff --git a/modules/development/lazygit/assertions.nix b/modules/development/lazygit/assertions.nix
index 2539af6..d5b0a70 100644
--- a/modules/development/lazygit/assertions.nix
+++ b/modules/development/lazygit/assertions.nix
@@ -1,9 +1,12 @@
# LazyGit only makes sense when Git is enabled
{ config, ... }:
+let
+ cfg = config.development.lazygit;
+in
{
assertions = [
{
- assertion = !config.development.lazygit.enable || config.development.git.enable;
+ assertion = !cfg.enable || config.development.git.enable;
message = "development.lazygit.enable requires development.git.enable.";
}
];
diff --git a/modules/development/nixvim/colorscheme.nix b/modules/development/nixvim/colorscheme.nix
index 560f6ce..6919482 100644
--- a/modules/development/nixvim/colorscheme.nix
+++ b/modules/development/nixvim/colorscheme.nix
@@ -6,10 +6,11 @@
...
}:
let
+ cfg = config.development.nixvim;
base16Colors = import ../../colors/base16 { inherit config lib pkgs; };
in
{
- config.programs.nixvim = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim = lib.mkIf cfg.enable {
colorschemes.base16 = {
enable = true;
colorscheme = base16Colors.colorsWithHashPrefix;
diff --git a/modules/development/nixvim/keymaps.nix b/modules/development/nixvim/keymaps.nix
index cc258c1..254b40d 100644
--- a/modules/development/nixvim/keymaps.nix
+++ b/modules/development/nixvim/keymaps.nix
@@ -1,7 +1,10 @@
# Keyboard shortcut configuration for nixvim
{ config, lib, ... }:
+let
+ cfg = config.development.nixvim;
+in
{
- config.programs.nixvim.keymaps = lib.mkIf config.development.nixvim.enable [
+ config.programs.nixvim.keymaps = lib.mkIf cfg.enable [
# set the <space> key to nop for normal and visual modes as we are tyring
# to use it as our <leader>
{
diff --git a/modules/development/nixvim/plugins/cmp/default.nix b/modules/development/nixvim/plugins/cmp/default.nix
index 4698801..ceb3a07 100644
--- a/modules/development/nixvim/plugins/cmp/default.nix
+++ b/modules/development/nixvim/plugins/cmp/default.nix
@@ -1,7 +1,10 @@
# Completion plugin for auto-completion
{ config, lib, ... }:
+let
+ cfg = config.development.nixvim;
+in
{
- config.programs.nixvim.plugins.cmp = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim.plugins.cmp = lib.mkIf cfg.enable {
enable = true;
autoEnableSources = true;
settings = {
diff --git a/modules/development/nixvim/plugins/comment/default.nix b/modules/development/nixvim/plugins/comment/default.nix
index 8c69218..e0bba38 100644
--- a/modules/development/nixvim/plugins/comment/default.nix
+++ b/modules/development/nixvim/plugins/comment/default.nix
@@ -1,7 +1,10 @@
# Comment toggling plugin
{ config, lib, ... }:
+let
+ cfg = config.development.nixvim;
+in
{
- config.programs.nixvim.plugins.comment = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim.plugins.comment = lib.mkIf cfg.enable {
enable = true;
settings = {
toggler = {
diff --git a/modules/development/nixvim/plugins/dap-ui/default.nix b/modules/development/nixvim/plugins/dap-ui/default.nix
index eb83609..cf5825b 100644
--- a/modules/development/nixvim/plugins/dap-ui/default.nix
+++ b/modules/development/nixvim/plugins/dap-ui/default.nix
@@ -1,7 +1,10 @@
# A UI for nvim-dap.
{ config, lib, ... }:
+let
+ cfg = config.development.nixvim;
+in
{
- config.programs.nixvim = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim = lib.mkIf cfg.enable {
plugins.dap-ui = {
enable = true;
};
diff --git a/modules/development/nixvim/plugins/dap-virtual-text/default.nix b/modules/development/nixvim/plugins/dap-virtual-text/default.nix
index 4fea5ca..67ccb3f 100644
--- a/modules/development/nixvim/plugins/dap-virtual-text/default.nix
+++ b/modules/development/nixvim/plugins/dap-virtual-text/default.nix
@@ -1,7 +1,10 @@
# A plugin that adds virtual text support to the nvim-dap.
{ config, lib, ... }:
+let
+ cfg = config.development.nixvim;
+in
{
- config.programs.nixvim.plugins.dap-virtual-text = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim.plugins.dap-virtual-text = lib.mkIf cfg.enable {
enable = true;
};
}
diff --git a/modules/development/nixvim/plugins/dap/default.nix b/modules/development/nixvim/plugins/dap/default.nix
index 97452ac..39d0ae9 100644
--- a/modules/development/nixvim/plugins/dap/default.nix
+++ b/modules/development/nixvim/plugins/dap/default.nix
@@ -1,7 +1,10 @@
# Debug Adapter Protocol client implementation for Neovim.
{ config, lib, ... }:
+let
+ cfg = config.development.nixvim;
+in
{
- config.programs.nixvim = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim = lib.mkIf cfg.enable {
plugins.dap = {
enable = true;
};
diff --git a/modules/development/nixvim/plugins/gitsigns/default.nix b/modules/development/nixvim/plugins/gitsigns/default.nix
index af8b920..7f85acc 100644
--- a/modules/development/nixvim/plugins/gitsigns/default.nix
+++ b/modules/development/nixvim/plugins/gitsigns/default.nix
@@ -6,10 +6,11 @@
...
}:
let
+ cfg = config.development.nixvim;
base16Colors = import ../../../../colors/base16 { inherit config lib pkgs; };
in
{
- config.programs.nixvim = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim = lib.mkIf cfg.enable {
plugins.gitsigns = {
enable = true;
diff --git a/modules/development/nixvim/plugins/indent-blankline/default.nix b/modules/development/nixvim/plugins/indent-blankline/default.nix
index 6890dbf..6b11972 100644
--- a/modules/development/nixvim/plugins/indent-blankline/default.nix
+++ b/modules/development/nixvim/plugins/indent-blankline/default.nix
@@ -1,7 +1,10 @@
# Visual indentation guides
{ config, lib, ... }:
+let
+ cfg = config.development.nixvim;
+in
{
- config.programs.nixvim.plugins.indent-blankline = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim.plugins.indent-blankline = lib.mkIf cfg.enable {
enable = true;
settings = {
indent = {
diff --git a/modules/development/nixvim/plugins/lsp/default.nix b/modules/development/nixvim/plugins/lsp/default.nix
index 1d56b66..8be4c99 100644
--- a/modules/development/nixvim/plugins/lsp/default.nix
+++ b/modules/development/nixvim/plugins/lsp/default.nix
@@ -1,7 +1,10 @@
# Language Server Protocol configuration
{ config, lib, ... }:
+let
+ cfg = config.development.nixvim;
+in
{
- config.programs.nixvim = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim = lib.mkIf cfg.enable {
plugins.lsp = {
enable = true;
inlayHints = true;
diff --git a/modules/development/nixvim/plugins/lualine/default.nix b/modules/development/nixvim/plugins/lualine/default.nix
index a7dd083..cc62332 100644
--- a/modules/development/nixvim/plugins/lualine/default.nix
+++ b/modules/development/nixvim/plugins/lualine/default.nix
@@ -6,10 +6,11 @@
...
}:
let
+ cfg = config.development.nixvim;
base16Colors = import ../../../../colors/base16 { inherit config lib pkgs; };
in
{
- config.programs.nixvim.plugins.lualine = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim.plugins.lualine = lib.mkIf cfg.enable {
enable = true;
settings = {
options = {
diff --git a/modules/development/nixvim/plugins/luasnip/default.nix b/modules/development/nixvim/plugins/luasnip/default.nix
index cab0f62..4b4b059 100644
--- a/modules/development/nixvim/plugins/luasnip/default.nix
+++ b/modules/development/nixvim/plugins/luasnip/default.nix
@@ -1,7 +1,10 @@
# Snippet engine for Neovim
{ config, lib, ... }:
+let
+ cfg = config.development.nixvim;
+in
{
- config.programs.nixvim.plugins.luasnip = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim.plugins.luasnip = lib.mkIf cfg.enable {
enable = true;
};
}
diff --git a/modules/development/nixvim/plugins/noice/default.nix b/modules/development/nixvim/plugins/noice/default.nix
index 8f2ea0d..8a33ff3 100644
--- a/modules/development/nixvim/plugins/noice/default.nix
+++ b/modules/development/nixvim/plugins/noice/default.nix
@@ -1,7 +1,10 @@
# Modern UI for Neovim
{ config, lib, ... }:
+let
+ cfg = config.development.nixvim;
+in
{
- config.programs.nixvim.plugins.noice = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim.plugins.noice = lib.mkIf cfg.enable {
enable = true;
};
}
diff --git a/modules/development/nixvim/plugins/nvim-tree/default.nix b/modules/development/nixvim/plugins/nvim-tree/default.nix
index f54ada2..2e9bc58 100644
--- a/modules/development/nixvim/plugins/nvim-tree/default.nix
+++ b/modules/development/nixvim/plugins/nvim-tree/default.nix
@@ -1,7 +1,10 @@
# File explorer sidebar
{ config, lib, ... }:
+let
+ cfg = config.development.nixvim;
+in
{
- config.programs.nixvim = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim = lib.mkIf cfg.enable {
plugins.nvim-tree = {
enable = true;
settings = {
diff --git a/modules/development/nixvim/plugins/telescope/default.nix b/modules/development/nixvim/plugins/telescope/default.nix
index 505a3eb..17c84c4 100644
--- a/modules/development/nixvim/plugins/telescope/default.nix
+++ b/modules/development/nixvim/plugins/telescope/default.nix
@@ -1,7 +1,10 @@
# Fuzzy finder
{ config, lib, ... }:
+let
+ cfg = config.development.nixvim;
+in
{
- config.programs.nixvim.plugins.telescope = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim.plugins.telescope = lib.mkIf cfg.enable {
enable = true;
extensions = {
fzf-native.enable = true; # Faster fuzzy sorting
diff --git a/modules/development/nixvim/plugins/treesitter/default.nix b/modules/development/nixvim/plugins/treesitter/default.nix
index 6150ad2..ab5de96 100644
--- a/modules/development/nixvim/plugins/treesitter/default.nix
+++ b/modules/development/nixvim/plugins/treesitter/default.nix
@@ -1,7 +1,10 @@
# Syntax highlighting and parsing
{ config, lib, ... }:
+let
+ cfg = config.development.nixvim;
+in
{
- config.programs.nixvim.plugins.treesitter = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim.plugins.treesitter = lib.mkIf cfg.enable {
enable = true;
folding = {
enable = true;
diff --git a/modules/development/nixvim/plugins/web-devicons/default.nix b/modules/development/nixvim/plugins/web-devicons/default.nix
index 61ca5e9..13fd16a 100644
--- a/modules/development/nixvim/plugins/web-devicons/default.nix
+++ b/modules/development/nixvim/plugins/web-devicons/default.nix
@@ -1,7 +1,10 @@
# File icons for various file types
{ config, lib, ... }:
+let
+ cfg = config.development.nixvim;
+in
{
- config.programs.nixvim.plugins.web-devicons = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim.plugins.web-devicons = lib.mkIf cfg.enable {
enable = true;
};
}
diff --git a/modules/development/nixvim/plugins/which-key/default.nix b/modules/development/nixvim/plugins/which-key/default.nix
index 3a0c0ef..455071e 100644
--- a/modules/development/nixvim/plugins/which-key/default.nix
+++ b/modules/development/nixvim/plugins/which-key/default.nix
@@ -1,7 +1,10 @@
# Popup for keybindings
{ config, lib, ... }:
+let
+ cfg = config.development.nixvim;
+in
{
- config.programs.nixvim.plugins.which-key = lib.mkIf config.development.nixvim.enable {
+ config.programs.nixvim.plugins.which-key = lib.mkIf cfg.enable {
enable = true;
settings = {
plugins = {
diff --git a/modules/file-management/yazi/assertions.nix b/modules/file-management/yazi/assertions.nix
index 288757d..6435b00 100644
--- a/modules/file-management/yazi/assertions.nix
+++ b/modules/file-management/yazi/assertions.nix
@@ -1,16 +1,19 @@
# Validates yazi dependencies and sub-options
{ config, ... }:
+let
+ cfg = config.file-management.yazi;
+in
{
assertions = [
{
- assertion = !config.file-management.yazi.enable || config.terminal.kitty.enable;
+ assertion = !cfg.enable || config.terminal.kitty.enable;
message = ''
file-management.yazi is enabled but terminal.kitty.enable is not.
yazi's desktop entry requires kitty as the terminal launcher. Please enable terminal.kitty.
'';
}
{
- assertion = !config.file-management.yazi.file-chooser.enable || config.file-management.yazi.enable;
+ assertion = !cfg.file-chooser.enable || cfg.enable;
message = "file-management.yazi.file-chooser.enable requires file-management.yazi.enable.";
}
];
diff --git a/modules/file-management/yazi/theme.nix b/modules/file-management/yazi/theme.nix
index 6589200..f774ff2 100644
--- a/modules/file-management/yazi/theme.nix
+++ b/modules/file-management/yazi/theme.nix
@@ -6,10 +6,11 @@
...
}:
let
+ cfg = config.file-management.yazi;
base16Colors = import ../../colors/base16 { inherit config lib pkgs; };
in
{
- config = lib.mkIf config.file-management.yazi.enable {
+ config = lib.mkIf cfg.enable {
programs.yazi.theme = with base16Colors.colorsWithHashPrefix; {
manager = {
cwd = {
diff --git a/modules/fonts/default.nix b/modules/fonts/default.nix
index b7d78df..d2826fc 100644
--- a/modules/fonts/default.nix
+++ b/modules/fonts/default.nix
@@ -5,6 +5,9 @@
pkgs,
...
}:
+let
+ cfg = config.fonts;
+in
{
options.fonts = {
normal = lib.mkOption {
@@ -15,13 +18,13 @@
bold = lib.mkOption {
type = lib.types.str;
description = "Default bold font name.";
- default = config.fonts.normal;
+ default = cfg.normal;
};
italic = lib.mkOption {
type = lib.types.str;
description = "Default italic font name.";
- default = config.fonts.normal;
+ default = cfg.normal;
};
size = lib.mkOption {
diff --git a/modules/media/pamixer/default.nix b/modules/media/pamixer/default.nix
index e3c42be..996e268 100644
--- a/modules/media/pamixer/default.nix
+++ b/modules/media/pamixer/default.nix
@@ -5,6 +5,9 @@
pkgs,
...
}:
+let
+ cfg = config.media.pamixer;
+in
{
options.media.pamixer = {
enable = lib.mkEnableOption "Enables pamixer.";
@@ -16,7 +19,7 @@
};
};
- config = lib.mkIf config.media.pamixer.enable {
- home.packages = [ config.media.pamixer.package ];
+ config = lib.mkIf cfg.enable {
+ home.packages = [ cfg.package ];
};
}
diff --git a/modules/media/screen-recording/assertions.nix b/modules/media/screen-recording/assertions.nix
index f17cb23..81d767b 100644
--- a/modules/media/screen-recording/assertions.nix
+++ b/modules/media/screen-recording/assertions.nix
@@ -1,15 +1,18 @@
{ config, ... }:
+let
+ cfg = config.media.screen-recording;
+in
[
{
- assertion = !config.media.screen-recording.enable || config.media.slurp.enable;
+ assertion = !cfg.enable || config.media.slurp.enable;
message = "media.screen-recording is enabled but requires `media.slurp.enable`.";
}
{
- assertion = !config.media.screen-recording.enable || config.media.wf-recorder.enable;
+ assertion = !cfg.enable || config.media.wf-recorder.enable;
message = "media.screen-recording is enabled but requires `media.wf-recorder.enable`.";
}
{
- assertion = !config.media.screen-recording.enable || config.terminal.kitty.enable;
+ assertion = !cfg.enable || config.terminal.kitty.enable;
message = ''
media.screen-recording is enabled but terminal.kitty.enable is not.
screen-recording's desktop entry requires kitty as the terminal launcher. Please enable terminal.kitty.
diff --git a/modules/networking/bluetui/assertions.nix b/modules/networking/bluetui/assertions.nix
index e764a9c..537d721 100644
--- a/modules/networking/bluetui/assertions.nix
+++ b/modules/networking/bluetui/assertions.nix
@@ -1,9 +1,12 @@
# Validates kitty is enabled for bluetui desktop entry
{ config, ... }:
+let
+ cfg = config.networking.bluetui;
+in
{
assertions = [
{
- assertion = !config.networking.bluetui.enable || config.terminal.kitty.enable;
+ assertion = !cfg.enable || config.terminal.kitty.enable;
message = ''
networking.bluetui is enabled but terminal.kitty.enable is not.
bluetui's desktop entry requires kitty as the terminal launcher. Please enable terminal.kitty.
diff --git a/modules/networking/impala/assertions.nix b/modules/networking/impala/assertions.nix
index 0ddeb8e..6db3189 100644
--- a/modules/networking/impala/assertions.nix
+++ b/modules/networking/impala/assertions.nix
@@ -1,9 +1,12 @@
# Validates kitty is enabled for impala desktop entry
{ config, ... }:
+let
+ cfg = config.networking.impala;
+in
{
assertions = [
{
- assertion = !config.networking.impala.enable || config.terminal.kitty.enable;
+ assertion = !cfg.enable || config.terminal.kitty.enable;
message = ''
networking.impala is enabled but terminal.kitty.enable is not.
impala's desktop entry requires kitty as the terminal launcher. Please enable terminal.kitty.
diff --git a/modules/networking/usque/assertions.nix b/modules/networking/usque/assertions.nix
index a163dd8..5d6907a 100644
--- a/modules/networking/usque/assertions.nix
+++ b/modules/networking/usque/assertions.nix
@@ -1,9 +1,12 @@
# Validates usque sub-options require the main module to be enabled
{ config, ... }:
+let
+ cfg = config.networking.usque;
+in
{
assertions = [
{
- assertion = !config.networking.usque.warp.enable || config.networking.usque.enable;
+ assertion = !cfg.warp.enable || cfg.enable;
message = "networking.usque.warp.enable requires networking.usque.enable.";
}
];
diff --git a/modules/office/calcurse/assertions.nix b/modules/office/calcurse/assertions.nix
index 65805fe..bd7778e 100644
--- a/modules/office/calcurse/assertions.nix
+++ b/modules/office/calcurse/assertions.nix
@@ -1,9 +1,12 @@
# Validates calcurse sub-options require the main module to be enabled
{ config, ... }:
+let
+ cfg = config.office.calcurse;
+in
{
assertions = [
{
- assertion = !config.office.calcurse.sync.enable || config.office.calcurse.enable;
+ assertion = !cfg.sync.enable || cfg.enable;
message = "office.calcurse.sync.enable requires office.calcurse.enable.";
}
];
diff --git a/modules/security/gopass/assertions.nix b/modules/security/gopass/assertions.nix
index bfecfad..0509845 100644
--- a/modules/security/gopass/assertions.nix
+++ b/modules/security/gopass/assertions.nix
@@ -1,13 +1,16 @@
# Validates gopass sub-options require the main module to be enabled
{ config, ... }:
+let
+ cfg = config.security.gopass;
+in
{
assertions = [
{
- assertion = !config.security.gopass.sync.enable || config.security.gopass.enable;
+ assertion = !cfg.sync.enable || cfg.enable;
message = "security.gopass.sync.enable requires security.gopass.enable.";
}
{
- assertion = !config.security.gopass.creation-templates.enable || config.security.gopass.enable;
+ assertion = !cfg.creation-templates.enable || cfg.enable;
message = "security.gopass.creation-templates.enable requires security.gopass.enable.";
}
];
diff --git a/modules/security/gpg/assertions.nix b/modules/security/gpg/assertions.nix
index 1108e47..586fa91 100644
--- a/modules/security/gpg/assertions.nix
+++ b/modules/security/gpg/assertions.nix
@@ -1,9 +1,12 @@
# Validates GPG sub-options require the main module to be enabled
{ config, ... }:
+let
+ cfg = config.security.gpg;
+in
{
assertions = [
{
- assertion = !config.security.gpg.backup.enable || config.security.gpg.enable;
+ assertion = !cfg.backup.enable || cfg.enable;
message = "security.gpg.backup.enable requires security.gpg.enable.";
}
];
diff --git a/modules/system/btop/assertions.nix b/modules/system/btop/assertions.nix
index 82cddc3..8ac7ccb 100644
--- a/modules/system/btop/assertions.nix
+++ b/modules/system/btop/assertions.nix
@@ -1,13 +1,16 @@
# Validates btop sub-options require the main module to be enabled
{ config, ... }:
+let
+ cfg = config.system.btop;
+in
{
assertions = [
{
- assertion = !config.system.btop.nvidia.enable || config.system.btop.enable;
+ assertion = !cfg.nvidia.enable || cfg.enable;
message = "system.btop.nvidia.enable requires system.btop.enable.";
}
{
- assertion = !config.system.btop.amd.enable || config.system.btop.enable;
+ assertion = !cfg.amd.enable || cfg.enable;
message = "system.btop.amd.enable requires system.btop.enable.";
}
];
diff --git a/modules/terminal/fzf/assertions.nix b/modules/terminal/fzf/assertions.nix
index 75006fe..3436126 100644
--- a/modules/terminal/fzf/assertions.nix
+++ b/modules/terminal/fzf/assertions.nix
@@ -1,10 +1,13 @@
# fzf shell integration is only provided for zsh. bash is scripting-only
# (not a login shell), so it does not receive fzf integration.
{ config, ... }:
+let
+ cfg = config.terminal.fzf;
+in
{
assertions = [
{
- assertion = !config.terminal.fzf.enable || config.terminal.zsh.enable;
+ assertion = !cfg.enable || config.terminal.zsh.enable;
message = ''
terminal.fzf is enabled but terminal.zsh.enable is not set.
fzf shell integration requires zsh. Please enable zsh.
diff --git a/modules/terminal/kitty/colors.nix b/modules/terminal/kitty/colors.nix
index a91b0b2..fbc36d1 100644
--- a/modules/terminal/kitty/colors.nix
+++ b/modules/terminal/kitty/colors.nix
@@ -5,8 +5,11 @@
pkgs,
...
}:
+let
+ cfg = config.terminal.kitty;
+in
{
- config.programs.kitty.settings = lib.mkIf config.terminal.kitty.enable (
+ config.programs.kitty.settings = lib.mkIf cfg.enable (
let
base16Colors = import ../../colors/base16 { inherit config lib pkgs; };
in
diff --git a/modules/terminal/kitty/keybindings.nix b/modules/terminal/kitty/keybindings.nix
index 728595d..311318a 100644
--- a/modules/terminal/kitty/keybindings.nix
+++ b/modules/terminal/kitty/keybindings.nix
@@ -1,7 +1,10 @@
# Keybindings for kitty
{ config, lib, ... }:
+let
+ cfg = config.terminal.kitty;
+in
{
- config.programs.kitty.keybindings = lib.mkIf config.terminal.kitty.enable {
+ config.programs.kitty.keybindings = lib.mkIf cfg.enable {
"ctrl+shift+k" = "scroll_line_up";
"ctrl+shift+j" = "scroll_line_down";
"ctrl+shift+u" = "scroll_page_up";
diff --git a/modules/web/chawan/assertions.nix b/modules/web/chawan/assertions.nix
index 93b5fab..3d5bab8 100644
--- a/modules/web/chawan/assertions.nix
+++ b/modules/web/chawan/assertions.nix
@@ -1,9 +1,12 @@
# Validates kitty is enabled for chawan desktop entry
{ config, ... }:
+let
+ cfg = config.web.chawan;
+in
{
assertions = [
{
- assertion = !config.web.chawan.enable || config.terminal.kitty.enable;
+ assertion = !cfg.enable || config.terminal.kitty.enable;
message = ''
web.chawan is enabled but terminal.kitty.enable is not.
chawan's desktop entry requires kitty as the terminal launcher. Please enable terminal.kitty.
diff --git a/modules/web/chromium/assertions.nix b/modules/web/chromium/assertions.nix
index 79a9ba1..e999780 100644
--- a/modules/web/chromium/assertions.nix
+++ b/modules/web/chromium/assertions.nix
@@ -1,9 +1,12 @@
# Validates chromium sub-options require the main module to be enabled
{ config, ... }:
+let
+ cfg = config.web.chromium;
+in
{
assertions = [
{
- assertion = !config.web.chromium.use-opengl || config.web.chromium.enable;
+ assertion = !cfg.use-opengl || cfg.enable;
message = "web.chromium.use-opengl requires web.chromium.enable.";
}
];
diff --git a/modules/web/chromium/browserpass.nix b/modules/web/chromium/browserpass.nix
index af430c5..e76f338 100644
--- a/modules/web/chromium/browserpass.nix
+++ b/modules/web/chromium/browserpass.nix
@@ -5,6 +5,8 @@
...
}:
let
+ cfg = config.web.chromium;
+
# Extension ID computed from the pinned extensionKey
patchedHost =
pkgs.runCommand "com.github.browserpass.native.json"
@@ -15,13 +17,13 @@ let
}
''
luajit ${./patch_native_host.lua} \
- ${config.web.chromium.extensions.browserpass.id} \
+ ${cfg.extensions.browserpass.id} \
${config.programs.browserpass.package}/lib/browserpass/hosts/chromium/com.github.browserpass.native.json \
$out
'';
in
{
- config = lib.mkIf (config.web.chromium.enable && config.security.gopass.enable) {
+ config = lib.mkIf (cfg.enable && config.security.gopass.enable) {
programs.browserpass = {
enable = true;
browsers = [ "chromium" ];
diff --git a/modules/web/chromium/extensions/assertions.nix b/modules/web/chromium/extensions/assertions.nix
index 52a0081..afc2659 100644
--- a/modules/web/chromium/extensions/assertions.nix
+++ b/modules/web/chromium/extensions/assertions.nix
@@ -1,8 +1,11 @@
{ config, ... }:
+let
+ cfg = config.web.chromium;
+in
{
assertions = [
{
- assertion = !config.web.chromium.enable || config.file-management.ouch.enable;
+ assertion = !cfg.enable || config.file-management.ouch.enable;
message = ''
web.chromium.enable is true but file-management.ouch.enable is not.
chromium extension fetching requires ouch to decompress extension archives. Please enable file-management.ouch.