diff --git a/system/modules/user/shell/bash/default.nix b/system/modules/shell/bash/default.nix similarity index 54% rename from system/modules/user/shell/bash/default.nix rename to system/modules/shell/bash/default.nix index de44c24..e30b028 100644 --- a/system/modules/user/shell/bash/default.nix +++ b/system/modules/shell/bash/default.nix @@ -2,12 +2,12 @@ let inherit (lib) mkIf; - userShell = config.systemModules.user.shell; + adminShell = config.systemModules.host.admin.shell; + cfg = config.systemModules.shell.zsh; in { - config = mkIf (userShell == "bash") { - users.users.ooks.shell = pkgs.bash; + config = mkIf (adminShell == "bash" || cfg.enable) { programs.bash = { enable = true; }; diff --git a/system/modules/shell/default.nix b/system/modules/shell/default.nix new file mode 100644 index 0000000..296c71d --- /dev/null +++ b/system/modules/shell/default.nix @@ -0,0 +1,7 @@ +{ + imports = [ + ./fish + ./bash + ./zsh + ]; +} diff --git a/system/modules/shell/fish/default.nix b/system/modules/shell/fish/default.nix new file mode 100644 index 0000000..b59dcb0 --- /dev/null +++ b/system/modules/shell/fish/default.nix @@ -0,0 +1,22 @@ +{ lib, config, ... }: + +let + inherit (lib) mkIf mkEnableOption; + adminShell = config.systemModules.host.admin.shell; + cfg = config.systemModules.shell.fish; +in + +{ + options.systemModules.shell.fish.enable = mkEnableOption "Enable fish module"; + + config = mkIf (adminShell == "fish" || cfg.enable) { + programs.fish = { + enable = true; + vendor = { + completions.enable = true; + config.enable = true; + functions.enable = true; + }; + }; + }; +} diff --git a/system/modules/shell/zsh/default.nix b/system/modules/shell/zsh/default.nix new file mode 100644 index 0000000..1e5fab0 --- /dev/null +++ b/system/modules/shell/zsh/default.nix @@ -0,0 +1,25 @@ +{ lib, config, ... }: + +let + inherit (lib) mkIf mkEnableOption; + adminShell = config.systemModules.host.admin.shell; + cfg = config.systemModules.shell.zsh; +in + +{ + + options.systemModules.zsh.enable = mkEnableOption "Enable zsh module"; + + config = mkIf (adminShell == "zsh" || cfg.enable) { + programs.zsh = { + enable = true; + enableCompletion = true; + syntaxHighlighting.enable = true; + autosuggestions = { + enable = true; + async = true; + }; + }; + environment.pathsToLink = ["/share/zsh"]; + }; +} diff --git a/system/modules/user/shell/default.nix b/system/modules/user/shell/default.nix deleted file mode 100644 index 13c2bf9..0000000 --- a/system/modules/user/shell/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ lib, ... }: - -let - inherit (lib) types mkOption; -in - -{ - imports = [ - ./fish - ./bash - ./zsh - ]; - - options.systemModules.user.shell = mkOption { - type = types.enum ["fish" "zsh" "bash"]; - default = "zsh"; - description = "The user shell to use. Select from 'zsh' 'bash' 'fish'"; - }; -} diff --git a/system/modules/user/shell/fish/default.nix b/system/modules/user/shell/fish/default.nix deleted file mode 100644 index 37474a2..0000000 --- a/system/modules/user/shell/fish/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ pkgs, lib, config, ... }: - -let - inherit (lib) mkIf; - userShell = config.systemModules.user.shell; -in - -{ - config = mkIf (userShell == "fish") { - users.users.ooks.shell = pkgs.fish; - programs.fish = { - enable = true; - vendor = { - completions.enable = true; - config.enable = true; - functions.enable = true; - }; - }; - }; -} diff --git a/system/modules/user/shell/zsh/default.nix b/system/modules/user/shell/zsh/default.nix deleted file mode 100644 index 50b53c5..0000000 --- a/system/modules/user/shell/zsh/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib, config, pkgs, ... }: - -let - inherit (lib) mkIf; - userShell = config.systemModules.user.shell; -in - -{ - config = mkIf (userShell == "zsh") { - users.users.ooks.shell = pkgs.zsh; - programs.zsh = { - enable = true; - enableCompletion = true; - syntaxHighlighting.enable = true; - autosuggestions = { - enable = true; - async = true; - }; - }; - environment.pathsToLink = ["/share/zsh"]; - }; -}