aboutsummaryrefslogtreecommitdiffstats
path: root/modules/shell
diff options
context:
space:
mode:
authorArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2024-09-28 00:37:34 +0530
committerArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2024-09-28 00:37:34 +0530
commitbdf5331c964e80204caaa7e54a60ef69748f33ed (patch)
tree2dd6d20d307951adc6647d999cc3351646b85f41 /modules/shell
parent4d315448c08f98140229f006898dc408fcb6953e (diff)
downloadhome-manager-config-bdf5331c964e80204caaa7e54a60ef69748f33ed.tar.gz
home-manager-config-bdf5331c964e80204caaa7e54a60ef69748f33ed.zip
Added ability to change the default program if multiple programs for the same purpose are enabled.
Diffstat (limited to 'modules/shell')
-rw-r--r--modules/shell/bash/default.nix12
-rw-r--r--modules/shell/default.nix16
-rw-r--r--modules/shell/zsh/default.nix6
3 files changed, 26 insertions, 8 deletions
diff --git a/modules/shell/bash/default.nix b/modules/shell/bash/default.nix
index ee3b4a8..2e65d60 100644
--- a/modules/shell/bash/default.nix
+++ b/modules/shell/bash/default.nix
@@ -2,10 +2,20 @@
{
options.shell.bash = {
- enable = lib.mkEnableOption "Enables bash.";
+ enable = lib.mkOption {
+ type = lib.types.bool;
+ description = "Enables bash.";
+ default = true;
+ };
};
config = lib.mkIf config.shell.bash.enable {
+ shell.default = lib.mkDefault "bash";
+ shell.command =
+ if config.shell.default == "bash" then
+ lib.mkForce "${pkgs.zsh}/bin/bash"
+ else "";
+
programs.bash.enable = true;
programs.bash.historyFile = "${config.xdg.cacheHome}/bash/history";
programs.bash.shellAliases = config.shell.alias;
diff --git a/modules/shell/default.nix b/modules/shell/default.nix
index 27a919a..c2eada9 100644
--- a/modules/shell/default.nix
+++ b/modules/shell/default.nix
@@ -8,17 +8,21 @@
options.shell = {
default = lib.mkOption {
+ type = lib.types.enum [
+ "bash"
+ "zsh"
+ ];
+ description = "Default shell.";
+ };
+
+ command = lib.mkOption {
type = lib.types.str;
- description = "Path to the default shell program.";
+ description = "Command for the default shell.";
};
+
alias = lib.mkOption {
type = lib.types.attrs;
description = "Shell aliases.";
};
};
-
- config = {
- shell.default = lib.mkDefault "${pkgs.bash}/bin/bash"; # Set bash as default shell
- shell.bash.enable = lib.mkDefault true; # Enable bash by default
- };
}
diff --git a/modules/shell/zsh/default.nix b/modules/shell/zsh/default.nix
index 7d7a261..0c14b8c 100644
--- a/modules/shell/zsh/default.nix
+++ b/modules/shell/zsh/default.nix
@@ -6,7 +6,11 @@
};
config = lib.mkIf config.shell.zsh.enable {
- shell.default = "${pkgs.zsh}/bin/zsh";
+ shell.default = lib.mkDefault "zsh";
+ shell.command =
+ if config.shell.default == "zsh" then
+ lib.mkForce "${pkgs.zsh}/bin/zsh"
+ else "";
programs.zsh.enable = true;
programs.zsh.dotDir = ".config/zsh";