tangled
alpha
login
or
join now
quasigod.xyz
/
nixconfig
8
fork
atom
My NixOS and Home Manager configurations
8
fork
atom
overview
issues
pulls
pipelines
add dynamic aspect for adding users to groups
quasigod.xyz
3 months ago
7b03dab6
7cab81f7
verified
This commit was signed with the committer's
known signature
.
quasigod.xyz
SSH Key Fingerprint:
SHA256:IYQIQqk4Il5k+VDa+O4RM4mqCqVtyRilM/eLPbx2jjc=
+73
-102
9 changed files
expand all
collapse all
unified
split
modules
apps
adb.nix
boot.nix
default.nix
den.nix
groups.nix
hacking
default.nix
quasi.nix
toplevel
virtualisation.nix
users.nix
+5
-8
modules/apps/adb.nix
···
0
1
{
2
-
styx.apps.provides.adb =
3
-
{ user, ... }:
4
-
{
5
-
nixos = {
6
-
users.users.${user.userName}.extraGroups = [ "adbusers" ];
7
-
programs.adb.enable = true;
8
-
};
9
-
};
10
}
···
1
+
{ styx, den, ... }:
2
{
3
+
styx.apps.provides.adb = den.lib.parametric {
4
+
includes = [ (styx.groups "adbusers") ];
5
+
nixos.programs.adb.enable = true;
6
+
};
0
0
0
0
7
}
+23
-39
modules/boot.nix
···
1
-
{
2
-
styx,
3
-
lib,
4
-
inputs,
5
-
...
6
-
}:
7
{
8
-
styx = {
9
-
boot = {
10
-
nixos.boot.loader = {
11
-
systemd-boot.enable = lib.mkDefault true; # needs to be overridden for secure boot
12
-
efi.canTouchEfiVariables = true;
13
-
timeout = 3;
14
-
};
15
-
16
-
provides.secure = {
17
-
includes = [ styx.boot ];
18
-
nixos = {
19
-
imports = [ inputs.lanzaboote.nixosModules.lanzaboote ];
20
-
boot = {
21
-
loader.systemd-boot.enable = false;
22
-
lanzaboote = {
23
-
enable = true;
24
-
pkiBundle = "/var/lib/sbctl";
25
-
};
26
-
};
27
};
28
};
0
29
30
-
provides.graphical.nixos.boot = {
31
-
plymouth.enable = true;
32
-
consoleLogLevel = 3;
33
-
initrd.verbose = false;
34
-
initrd.systemd.enable = true;
35
-
kernelParams = [
36
-
"quiet"
37
-
"splash"
38
-
"intremap=on"
39
-
"boot.shell_on_fail"
40
-
"udev.log_priority=3"
41
-
"rd.systemd.show_status=auto"
42
-
];
43
-
};
44
};
45
};
46
}
···
1
+
{ inputs, ... }:
0
0
0
0
0
2
{
3
+
styx.boot.provides = {
4
+
secure.nixos = {
5
+
imports = [ inputs.lanzaboote.nixosModules.lanzaboote ];
6
+
boot = {
7
+
loader.systemd-boot.enable = false;
8
+
lanzaboote = {
9
+
enable = true;
10
+
pkiBundle = "/var/lib/sbctl";
0
0
0
0
0
0
0
0
0
0
0
11
};
12
};
13
+
};
14
15
+
graphical.nixos.boot = {
16
+
plymouth.enable = true;
17
+
consoleLogLevel = 3;
18
+
initrd.verbose = false;
19
+
initrd.systemd.enable = true;
20
+
kernelParams = [
21
+
"quiet"
22
+
"splash"
23
+
"intremap=on"
24
+
"boot.shell_on_fail"
25
+
"udev.log_priority=3"
26
+
"rd.systemd.show_status=auto"
27
+
];
0
28
};
29
};
30
}
+15
-7
modules/default.nix
···
2
{
3
# Some preferred defaults
4
den.default = {
0
0
0
0
0
0
0
0
0
0
0
5
nixos =
6
{ pkgs, lib, ... }:
7
{
8
-
imports = [
9
-
inputs.nixos-facter-modules.nixosModules.facter
10
-
inputs.srvos.nixosModules.desktop
0
11
];
12
13
environment = {
···
34
stateVersion = "22.05";
35
};
36
};
37
-
includes = [
38
-
den.provides.home-manager
39
-
den.provides.define-user
40
-
];
41
};
42
}
···
2
{
3
# Some preferred defaults
4
den.default = {
5
+
includes = [
6
+
den.provides.home-manager
7
+
den.provides.define-user
8
+
(
9
+
{ host, ... }:
10
+
{
11
+
${host.class}.networking.hostName = host.name;
12
+
}
13
+
)
14
+
];
15
+
16
nixos =
17
{ pkgs, lib, ... }:
18
{
19
+
imports = with inputs; [
20
+
nixos-facter-modules.nixosModules.facter
21
+
srvos.nixosModules.desktop
22
+
srvos.nixosModules.mixins-systemd-boot
23
];
24
25
environment = {
···
46
stateVersion = "22.05";
47
};
48
};
0
0
0
0
49
};
50
}
+1
-3
modules/den.nix
···
1
{ inputs, den, ... }:
2
{
0
3
imports = [
4
inputs.den.flakeModule
5
(inputs.den.namespace "styx" true)
6
];
7
-
_module.args.__findFile = den.lib.__findFile;
8
-
den.hosts.x86_64-linux.hades.users.quasi = { };
9
-
den.hosts.x86_64-linux.zagreus.users.quasi = { };
10
}
···
1
{ inputs, den, ... }:
2
{
3
+
_module.args.__findFile = den.lib.__findFile;
4
imports = [
5
inputs.den.flakeModule
6
(inputs.den.namespace "styx" true)
7
];
0
0
0
8
}
+12
modules/groups.nix
···
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
{
2
+
styx.groups =
3
+
groups:
4
+
{ user, ... }:
5
+
{
6
+
nixos =
7
+
{ lib, ... }:
8
+
{
9
+
users.users.${user.userName}.extraGroups = lib.flatten [ groups ];
10
+
};
11
+
};
12
+
}
+9
-8
modules/hacking/default.nix
···
2
inputs,
3
lib,
4
withSystem,
5
-
den,
6
styx,
0
7
...
8
}:
9
{
10
-
styx.hax = {
11
-
includes = [ styx.hax._.subfinder ];
0
0
0
0
0
0
12
nixos = {
13
environment.etc.hosts.mode = "0644";
14
# TODO until exegol supports podman
15
virtualisation.docker.enable = true;
16
programs.wireshark.enable = true;
17
-
users.users.quasi.extraGroups = [
18
-
# TODO
19
-
"wireshark"
20
-
"docker"
21
-
];
22
};
23
homeManager =
24
{ pkgs, config, ... }:
···
2
inputs,
3
lib,
4
withSystem,
0
5
styx,
6
+
den,
7
...
8
}:
9
{
10
+
styx.hax = den.lib.parametric {
11
+
includes = [
12
+
styx.hax._.subfinder
13
+
(styx.groups [
14
+
"wireshark"
15
+
"docker"
16
+
])
17
+
];
18
nixos = {
19
environment.etc.hosts.mode = "0644";
20
# TODO until exegol supports podman
21
virtualisation.docker.enable = true;
22
programs.wireshark.enable = true;
0
0
0
0
0
23
};
24
homeManager =
25
{ pkgs, config, ... }:
+6
modules/quasi.nix
···
0
0
0
0
0
0
···
1
+
{ den, ... }:
2
+
{
3
+
den.aspects.quasi.includes = [ den.provides.primary-user ];
4
+
den.hosts.x86_64-linux.hades.users.quasi = { };
5
+
den.hosts.x86_64-linux.zagreus.users.quasi = { };
6
+
}
+2
-8
modules/toplevel/virtualisation.nix
···
1
{ den, styx, ... }:
2
{
3
styx.virt.provides = {
4
-
qemu = {
5
-
# includes = [ styx.virt._.qemu._.group ];
6
-
provides.group =
7
-
{ user, ... }:
8
-
{
9
-
nixos.users.users.${user.userName}.extraGroups = [ "kvm" ];
10
-
};
11
nixos =
12
{ pkgs, ... }:
13
{
14
-
users.users.quasi.extraGroups = [ "kvm" ];
15
boot.kernelParams = [ "amd_iommu=on" ];
16
programs.virt-manager.enable = true;
17
environment.systemPackages = with pkgs; [
···
1
{ den, styx, ... }:
2
{
3
styx.virt.provides = {
4
+
qemu = den.lib.parametric {
5
+
includes = [ (styx.groups "kvm") ];
0
0
0
0
0
6
nixos =
7
{ pkgs, ... }:
8
{
0
9
boot.kernelParams = [ "amd_iommu=on" ];
10
programs.virt-manager.enable = true;
11
environment.systemPackages = with pkgs; [
-29
modules/users.nix
···
1
-
{ den, styx, ... }:
2
-
{
3
-
den.aspects.quasi = {
4
-
includes = [
5
-
den.provides.primary-user
6
-
styx.groups
7
-
];
8
-
homeManager.services.ssh-agent.enable = true;
9
-
};
10
-
styx.groups =
11
-
{ user, ... }:
12
-
{
13
-
nixos.users = {
14
-
groups.${user.userName} = { };
15
-
users.${user.userName} = {
16
-
isNormalUser = true;
17
-
initialPassword = user.userName;
18
-
extraGroups = [
19
-
"wheel"
20
-
"video"
21
-
"audio"
22
-
"networkmanager"
23
-
"lp"
24
-
"scanner"
25
-
];
26
-
};
27
-
};
28
-
};
29
-
}
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0