refactor(systemModules:shell): move shell module to reflect changes to how user shell is defined

This commit is contained in:
ooks-io 2024-04-29 18:50:15 +12:00
parent 956ae9448e
commit f2e28fa618
7 changed files with 57 additions and 64 deletions

View file

@ -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;
};

View file

@ -0,0 +1,7 @@
{
imports = [
./fish
./bash
./zsh
];
}

View file

@ -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;
};
};
};
}

View file

@ -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"];
};
}

View file

@ -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'";
};
}

View file

@ -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;
};
};
};
}

View file

@ -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"];
};
}