refactor(systemModules:shell): move shell module to reflect changes to how user shell is defined
This commit is contained in:
parent
956ae9448e
commit
f2e28fa618
7 changed files with 57 additions and 64 deletions
|
|
@ -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;
|
||||
};
|
||||
7
system/modules/shell/default.nix
Normal file
7
system/modules/shell/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
imports = [
|
||||
./fish
|
||||
./bash
|
||||
./zsh
|
||||
];
|
||||
}
|
||||
22
system/modules/shell/fish/default.nix
Normal file
22
system/modules/shell/fish/default.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
25
system/modules/shell/zsh/default.nix
Normal file
25
system/modules/shell/zsh/default.nix
Normal 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"];
|
||||
};
|
||||
}
|
||||
|
|
@ -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'";
|
||||
};
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -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"];
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue