aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar@gmail.com>2026-09-08 19:30:45 +0530
committerArpit Chakladar <arpitchakladar@gmail.com>2026-09-08 19:30:45 +0530
commit11fbd1121cd58fd2807fb973b43c14a5aabb59ea (patch)
treeba3054eccecb8df58533dadfc9a8326e6cad1155 /modules
parent1f82802bf50bb5c935efea47aef0418fc602492e (diff)
downloadhome-manager-config-11fbd1121cd58fd2807fb973b43c14a5aabb59ea.tar.gz
home-manager-config-11fbd1121cd58fd2807fb973b43c14a5aabb59ea.zip
feat(terminal/bash): added bash module
The bash shell is purely for running shell scripts
Diffstat (limited to 'modules')
-rw-r--r--modules/communication/neomutt/default.nix2
-rw-r--r--modules/development/lazygit/default.nix2
-rw-r--r--modules/file-management/yazi/default.nix2
-rw-r--r--modules/media/screen-recording/default.nix2
-rw-r--r--modules/networking/usque/default.nix2
-rw-r--r--modules/office/calcurse/default.nix2
-rw-r--r--modules/security/gopass/default.nix4
-rw-r--r--modules/security/gpg/default.nix2
-rw-r--r--modules/system/deep-clean/default.nix2
-rw-r--r--modules/system/nix-update/default.nix2
-rw-r--r--modules/terminal/bash/default.nix13
-rw-r--r--modules/terminal/fzf/assertions.nix10
-rw-r--r--modules/terminal/fzf/default.nix1
-rw-r--r--modules/terminal/zsh/default.nix2
14 files changed, 27 insertions, 21 deletions
diff --git a/modules/communication/neomutt/default.nix b/modules/communication/neomutt/default.nix
index e8496e1..fbcbe5c 100644
--- a/modules/communication/neomutt/default.nix
+++ b/modules/communication/neomutt/default.nix
@@ -9,7 +9,7 @@ let
neomuttSyncScript = pkgs.writeShellApplication {
name = "neomutt-sync";
runtimeInputs = [
- pkgs.bash
+ config.terminal.bash.package
pkgs.dialog
pkgs.coreutils
pkgs.gawk
diff --git a/modules/development/lazygit/default.nix b/modules/development/lazygit/default.nix
index 60913c0..eb4c739 100644
--- a/modules/development/lazygit/default.nix
+++ b/modules/development/lazygit/default.nix
@@ -32,7 +32,7 @@
programs.lazygit = lib.mkIf config.development.lazygit.enable {
enable = true;
- enableBashIntegration = config.terminal.bash.enable;
+ enableBashIntegration = false;
enableZshIntegration = config.terminal.zsh.enable;
settings = {
gui = with config.scheme.withHashtag; {
diff --git a/modules/file-management/yazi/default.nix b/modules/file-management/yazi/default.nix
index 11c2b55..70a7326 100644
--- a/modules/file-management/yazi/default.nix
+++ b/modules/file-management/yazi/default.nix
@@ -9,7 +9,7 @@ let
yaziFileChooserScript = pkgs.writeShellApplication {
name = "yazi-file-chooser";
runtimeInputs = [
- pkgs.bash
+ config.terminal.bash.package
config.file-management.yazi.package
config.terminal.kitty.package
];
diff --git a/modules/media/screen-recording/default.nix b/modules/media/screen-recording/default.nix
index 163ee3f..67e422c 100644
--- a/modules/media/screen-recording/default.nix
+++ b/modules/media/screen-recording/default.nix
@@ -9,7 +9,7 @@ let
screenRecordingScript = pkgs.writeShellApplication {
name = "screen-recording";
runtimeInputs = [
- pkgs.bash
+ config.terminal.bash.package
config.media.slurp.package
config.media.wf-recorder.package
];
diff --git a/modules/networking/usque/default.nix b/modules/networking/usque/default.nix
index ffde47a..76d89cd 100644
--- a/modules/networking/usque/default.nix
+++ b/modules/networking/usque/default.nix
@@ -10,7 +10,7 @@ let
name = "usque-warp";
runtimeInputs = [
config.networking.usque.package
- pkgs.bash
+ config.terminal.bash.package
];
text = builtins.readFile ./usque-warp.sh;
};
diff --git a/modules/office/calcurse/default.nix b/modules/office/calcurse/default.nix
index 18a863b..0a4acba 100644
--- a/modules/office/calcurse/default.nix
+++ b/modules/office/calcurse/default.nix
@@ -11,7 +11,7 @@ let
calcursePackage = pkgs.symlinkJoin {
name = "calcurse-wrapped";
paths = [
- pkgs.bash
+ config.terminal.bash.package
pkgs.calcurse
]
++ lib.optionals config.development.nixvim.enable [ config.development.nixvim.package ]
diff --git a/modules/security/gopass/default.nix b/modules/security/gopass/default.nix
index e543c03..4cf9182 100644
--- a/modules/security/gopass/default.nix
+++ b/modules/security/gopass/default.nix
@@ -14,7 +14,7 @@ let
config.security.gopass.package
config.security.gpg.package
config.security.ssh.package
- pkgs.bash
+ config.terminal.bash.package
];
text =
builtins.replaceStrings
@@ -137,7 +137,7 @@ in
gopassSyncInit = pkgs.writeShellApplication {
name = "gopass-sync-init";
runtimeInputs = [
- pkgs.bash
+ config.terminal.bash.package
config.development.git.package
];
text =
diff --git a/modules/security/gpg/default.nix b/modules/security/gpg/default.nix
index ccab0dc..6956711 100644
--- a/modules/security/gpg/default.nix
+++ b/modules/security/gpg/default.nix
@@ -9,7 +9,7 @@ let
gpgBackupScript = pkgs.writeShellApplication {
name = "gpg-backup";
runtimeInputs = [
- pkgs.bash
+ config.terminal.bash.package
pkgs.gnupg
pkgs.gnutar
pkgs.coreutils
diff --git a/modules/system/deep-clean/default.nix b/modules/system/deep-clean/default.nix
index 02022fe..99b4617 100644
--- a/modules/system/deep-clean/default.nix
+++ b/modules/system/deep-clean/default.nix
@@ -8,7 +8,7 @@
let
deepCleanScript = pkgs.writeShellApplication {
name = "deep-clean";
- runtimeInputs = [ pkgs.bash ];
+ runtimeInputs = [ config.terminal.bash.package ];
text = builtins.readFile ./deep-clean.sh;
};
in
diff --git a/modules/system/nix-update/default.nix b/modules/system/nix-update/default.nix
index 4d00c77..b597245 100644
--- a/modules/system/nix-update/default.nix
+++ b/modules/system/nix-update/default.nix
@@ -12,7 +12,7 @@ let
pkgs.git
pkgs.nix
config.programs.home-manager.package
- pkgs.bash
+ config.terminal.bash.package
];
text = builtins.readFile ./nix-update.sh;
};
diff --git a/modules/terminal/bash/default.nix b/modules/terminal/bash/default.nix
index 20a0067..7773937 100644
--- a/modules/terminal/bash/default.nix
+++ b/modules/terminal/bash/default.nix
@@ -1,7 +1,16 @@
# GNU Bourne Again SHell
-{ lib, ... }:
+#
+# This module is always enabled — there is no enable option.
+# All modules that need bash should use `config.terminal.bash.package`
+# instead of `pkgs.bash` directly.
+{ lib, pkgs, ... }:
{
options.terminal.bash = {
- enable = lib.mkEnableOption "Enables bash.";
+ package = lib.mkOption {
+ type = lib.types.package;
+ default = pkgs.bash;
+ defaultText = "pkgs.bash";
+ description = "The bash package to use.";
+ };
};
}
diff --git a/modules/terminal/fzf/assertions.nix b/modules/terminal/fzf/assertions.nix
index 9fb24b9..75006fe 100644
--- a/modules/terminal/fzf/assertions.nix
+++ b/modules/terminal/fzf/assertions.nix
@@ -1,13 +1,13 @@
-# Validates zsh or bash is enabled when fzf is enabled
+# fzf shell integration is only provided for zsh. bash is scripting-only
+# (not a login shell), so it does not receive fzf integration.
{ config, ... }:
{
assertions = [
{
- assertion =
- !config.terminal.fzf.enable || config.terminal.zsh.enable || config.terminal.bash.enable;
+ assertion = !config.terminal.fzf.enable || config.terminal.zsh.enable;
message = ''
- terminal.fzf is enabled but neither terminal.zsh.enable nor terminal.bash.enable is set.
- fzf shell integration requires zsh or bash. Please enable at least one.
+ terminal.fzf is enabled but terminal.zsh.enable is not set.
+ fzf shell integration requires zsh. Please enable zsh.
'';
}
];
diff --git a/modules/terminal/fzf/default.nix b/modules/terminal/fzf/default.nix
index 7065d2f..613134e 100644
--- a/modules/terminal/fzf/default.nix
+++ b/modules/terminal/fzf/default.nix
@@ -60,6 +60,5 @@
};
programs.zsh.initContent = lib.mkIf config.terminal.zsh.enable (lib.mkAfter shellIntegration);
- programs.bash.initExtra = lib.mkIf config.terminal.bash.enable (lib.mkAfter shellIntegration);
};
}
diff --git a/modules/terminal/zsh/default.nix b/modules/terminal/zsh/default.nix
index 9848fb8..0f0471c 100644
--- a/modules/terminal/zsh/default.nix
+++ b/modules/terminal/zsh/default.nix
@@ -43,8 +43,6 @@
'';
};
- programs.bash.initExtra = lib.mkIf config.terminal.bash.enable (lib.mkAfter nixCommandWrappers);
-
home.sessionVariables.SHELL = "${lib.getExe config.terminal.zsh.package}";
};
}