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
|
let
|
||||||
inherit (lib) mkIf;
|
inherit (lib) mkIf;
|
||||||
userShell = config.systemModules.user.shell;
|
adminShell = config.systemModules.host.admin.shell;
|
||||||
|
cfg = config.systemModules.shell.zsh;
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
config = mkIf (userShell == "bash") {
|
config = mkIf (adminShell == "bash" || cfg.enable) {
|
||||||
users.users.ooks.shell = pkgs.bash;
|
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
enable = true;
|
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