1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96{
lib,
config,
inputs,
pkgs,
hostName,
replaceVal,
...
}:
let
inherit (config) user gui;
inherit (user) username;
in
{
imports = [
./services.nix
./packages.nix
./programs.nix
./theme.nix
./common/xdg.nix
./common/fonts.nix
./desktop
./editors
./shells
./tools
./wm
];
virtualisation =
let
hasNvidia = builtins.elem "nvidia" config.boot.initrd.kernelModules;
in
{
docker = {
enable = true;
enableOnBoot = true;
daemon.settings.features.cdi = hasNvidia;
};
libvirtd.enable = gui.enable && hostName == "race4k";
spiceUSBRedirection.enable = gui.enable && hostName == "race4k";
};
users = {
defaultUserShell = pkgs."${config.shell.name}";
groups.libvirtd.members = [ username ];
extraGroups.vboxusers.members = [ username ];
users."${username}" = {
isNormalUser = user.isNormalUser;
name = username;
home = user.homepath;
extraGroups = user.groups;
shell = pkgs."${config.shell.name}";
};
};
home-manager.useGlobalPkgs = user.enableHM;
home-manager.useUserPackages = user.enableHM;
home-manager.users = lib.mkIf user.enableHM {
"${username}" =
{ lib, ... }:
{
programs.home-manager.enable = true;
_module.args = { inherit inputs config; };
home = {
inherit username;
homeDirectory = user.homepath;
stateVersion = user.osVersion;
file = {
".local/bin/wallpaper" = lib.mkIf gui.enable {
executable = true;
source = ../scripts/wallpaper;
};
".cargo/config.toml" = {
executable = false;
text = replaceVal ../.cargo/config.toml {
mold = "${pkgs.mold}";
};
};
".cargo/cargo-generate.toml" = {
executable = false;
source = ../.cargo/cargo-generate.toml;
};
};
};
manual = {
html.enable = false;
json.enable = false;
manpages.enable = false;
};
};
};
}