From 11fbd1121cd58fd2807fb973b43c14a5aabb59ea Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Tue, 8 Sep 2026 19:30:45 +0530 Subject: feat(terminal/bash): added bash module The bash shell is purely for running shell scripts --- modules/terminal/bash/default.nix | 13 +++++++++++-- modules/terminal/fzf/assertions.nix | 10 +++++----- modules/terminal/fzf/default.nix | 1 - modules/terminal/zsh/default.nix | 2 -- 4 files changed, 16 insertions(+), 10 deletions(-) (limited to 'modules/terminal') 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}"; }; } -- cgit v1.2.3