add: more system modules
This commit is contained in:
parent
47eb3e0691
commit
793cc3131c
17 changed files with 291 additions and 56 deletions
14
system/modules/user/default.nix
Normal file
14
system/modules/user/default.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./shell
|
||||
./ooks.nix
|
||||
];
|
||||
|
||||
options.systemModules.user = {
|
||||
ooks = {
|
||||
enable = lib.mkEnableOption "Enable the user ooks";
|
||||
};
|
||||
};
|
||||
}
|
||||
28
system/modules/user/ooks.nix
Normal file
28
system/modules/user/ooks.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
|
||||
let
|
||||
ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups;
|
||||
cfg = config.systemModule.user.ooks;
|
||||
in
|
||||
|
||||
{
|
||||
config = lib.mkIf cfg.enable {
|
||||
users.users.ooks = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"video"
|
||||
"audio"
|
||||
] ++ ifTheyExist [
|
||||
"git"
|
||||
"network"
|
||||
"libvirtd"
|
||||
"deluge"
|
||||
];
|
||||
|
||||
packages = [ pkgs.home-manager ];
|
||||
};
|
||||
|
||||
home-manager.users.ooks = import ../../../../home/user/ooks/${config.networking.hostName};
|
||||
};
|
||||
}
|
||||
40
system/modules/user/shell/default.nix
Normal file
40
system/modules/user/shell/default.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{ lib, config, ... }:
|
||||
|
||||
let
|
||||
cfg = config.systemModules.user.shell;
|
||||
in
|
||||
|
||||
{
|
||||
imports = [
|
||||
./fish
|
||||
# ./bash
|
||||
# ./zsh
|
||||
];
|
||||
|
||||
options.systemModules.user.shell = {
|
||||
fish = {
|
||||
enable = lib.mkEnableOption "Enable fish as the user shell";
|
||||
};
|
||||
zsh = {
|
||||
enable = lib.mkEnableOption "Enable zsh as the user shell";
|
||||
};
|
||||
bash = {
|
||||
enable = lib.mkEnableOption "Enable bash as the user shell";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = {
|
||||
assertions = [
|
||||
{
|
||||
assertion =
|
||||
(lib.length (lib.filter (x: x) [
|
||||
cfg.fish.enable or false
|
||||
cfg.zsh.enable or false
|
||||
cfg.bash.enable or false
|
||||
]) <= 1);
|
||||
message = "Only one user shell can be active in the configuration";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
19
system/modules/user/shell/fish/default.nix
Normal file
19
system/modules/user/shell/fish/default.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
let
|
||||
cfg = config.systemModules.user.shell.fish;
|
||||
in
|
||||
|
||||
{
|
||||
config = lib.mkIf cfg.enable {
|
||||
users.users.ooks.shell = pkgs.fish;
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
vendor = {
|
||||
completions.enable = true;
|
||||
config.enable = true;
|
||||
functions.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue