Started splitting up user and home manager configuration
This commit is contained in:
parent
b18f1fb4c9
commit
bb7c74da4b
1149
default.nix
1149
default.nix
File diff suppressed because it is too large
Load Diff
1124
merged.nix
Normal file
1124
merged.nix
Normal file
File diff suppressed because it is too large
Load Diff
12
system.nix
Normal file
12
system.nix
Normal file
@ -0,0 +1,12 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
options = {
|
||||
custom.laptop = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
example = true;
|
||||
description = "Whether the current system is a laptop.";
|
||||
};
|
||||
};
|
||||
}
|
11
test.nix
Normal file
11
test.nix
Normal file
@ -0,0 +1,11 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config = {
|
||||
custom.users.jan = {
|
||||
enable = true;
|
||||
sudo = true;
|
||||
configuration = ./users/jan.nix;
|
||||
};
|
||||
};
|
||||
}
|
46
users.nix
Normal file
46
users.nix
Normal file
@ -0,0 +1,46 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
userModule = lib.types.submodule {
|
||||
options = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
example = true;
|
||||
description = "Whether the user is enabled.";
|
||||
};
|
||||
sudo = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
example = true;
|
||||
description = "Whether the user is allowed sudo access.";
|
||||
};
|
||||
configuration = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = ./users/base.nix;
|
||||
description = "What home manager configuration to use for this user.";
|
||||
};
|
||||
};
|
||||
};
|
||||
in {
|
||||
options = {
|
||||
custom.users = lib.mkOption {
|
||||
type = lib.types.attrsOf userModule;
|
||||
default = {};
|
||||
description = "Users configured on this system.";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
users.users = lib.attrsets.concatMapAttrs (name: value: {
|
||||
${name} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = lib.mkIf value.sudo [ "wheel" ];
|
||||
};
|
||||
}) config.custom.users;
|
||||
|
||||
home-manager.users = lib.attrsets.concatMapAttrs (name: value: {
|
||||
${name} = value.configuration;
|
||||
}) config.custom.users;
|
||||
};
|
||||
}
|
8
users/base.nix
Normal file
8
users/base.nix
Normal file
@ -0,0 +1,8 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
# Import all modules
|
||||
./modules/default.nix
|
||||
];
|
||||
}
|
12
users/jan.nix
Normal file
12
users/jan.nix
Normal file
@ -0,0 +1,12 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
# Import base configuration
|
||||
./base.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
modules.zathura.enable = true;
|
||||
};
|
||||
}
|
10
users/modules/default.nix
Normal file
10
users/modules/default.nix
Normal file
@ -0,0 +1,10 @@
|
||||
{ input, pkgs, config, ... }:
|
||||
|
||||
{
|
||||
# Set the state version
|
||||
home.stateVersion = "24.05";
|
||||
|
||||
imports = [
|
||||
./tools/zathura/default.nix
|
||||
];
|
||||
}
|
17
users/modules/tools/zathura/default.nix
Normal file
17
users/modules/tools/zathura/default.nix
Normal file
@ -0,0 +1,17 @@
|
||||
{config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.modules.zathura;
|
||||
in {
|
||||
options.modules.zathura.enable = lib.mkEnableOption "zathura";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.zathura = {
|
||||
enable = true;
|
||||
|
||||
options = {
|
||||
guioptions = "none";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user