move user and additional module handling into flake.nix
This commit is contained in:
parent
87062e05c4
commit
8fc672bfcf
15 changed files with 275 additions and 280 deletions
103
flake.nix
103
flake.nix
|
@ -63,23 +63,66 @@
|
|||
}:
|
||||
let
|
||||
devices = {
|
||||
vinzenz-lpt2 = "x86_64-linux";
|
||||
vinzenz-pc2 = "x86_64-linux";
|
||||
ronja-pc = "x86_64-linux";
|
||||
hetzner-vpn2 = "aarch64-linux";
|
||||
forgejo-runner-1 = "aarch64-linux";
|
||||
vinzenz-lpt2 = {
|
||||
system = "x86_64-linux";
|
||||
additional-modules = [
|
||||
self.nixosModules.user-vinzenz
|
||||
|
||||
self.nixosModules.gnome
|
||||
self.nixosModules.wine-gaming
|
||||
self.nixosModules.steam
|
||||
self.nixosModules.printing
|
||||
self.nixosModules.podman
|
||||
self.nixosModules.vinzenz-desktop-settings
|
||||
self.nixosModules.intel-graphics
|
||||
];
|
||||
home-manager-users = {
|
||||
inherit (self.homeConfigurations) vinzenz;
|
||||
};
|
||||
};
|
||||
vinzenz-pc2 = {
|
||||
system = "x86_64-linux";
|
||||
additional-modules = [
|
||||
self.nixosModules.user-vinzenz
|
||||
self.nixosModules.user-ronja
|
||||
|
||||
self.nixosModules.gnome
|
||||
self.nixosModules.wine-gaming
|
||||
self.nixosModules.steam
|
||||
self.nixosModules.printing
|
||||
self.nixosModules.podman
|
||||
self.nixosModules.vinzenz-desktop-settings
|
||||
self.nixosModules.amd-graphics
|
||||
];
|
||||
home-manager-users = {
|
||||
inherit (self.homeConfigurations) vinzenz ronja;
|
||||
};
|
||||
};
|
||||
ronja-pc = {
|
||||
system = "x86_64-linux";
|
||||
additional-modules = [
|
||||
self.nixosModules.user-ronja
|
||||
|
||||
self.nixosModules.gnome
|
||||
self.nixosModules.steam
|
||||
self.nixosModules.wine-gaming
|
||||
self.nixosModules.vinzenz-desktop-settings
|
||||
];
|
||||
home-manager-users = {
|
||||
inherit (self.homeConfigurations) ronja;
|
||||
};
|
||||
};
|
||||
hetzner-vpn2 = {
|
||||
system = "aarch64-linux";
|
||||
};
|
||||
forgejo-runner-1 = {
|
||||
system = "aarch64-linux";
|
||||
additional-modules = [ self.nixosModules.podman ];
|
||||
};
|
||||
};
|
||||
homeDevices = [
|
||||
"vinzenz-lpt2"
|
||||
"vinzenz-pc2"
|
||||
"ronja-pc"
|
||||
];
|
||||
lib = nixpkgs.lib;
|
||||
forDevice = f: lib.mapAttrs f devices;
|
||||
supported-systems = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
];
|
||||
forDevice = f: lib.mapAttrs (device: value: f (value // { inherit device; })) devices;
|
||||
supported-systems = lib.attrsets.mapAttrsToList (k: v: v.system) devices;
|
||||
forAllSystems =
|
||||
f:
|
||||
lib.genAttrs supported-systems (
|
||||
|
@ -101,20 +144,21 @@
|
|||
};
|
||||
|
||||
nixosConfigurations = forDevice (
|
||||
device: system:
|
||||
{
|
||||
device,
|
||||
system,
|
||||
home-manager-users ? { },
|
||||
additional-modules ? [ ],
|
||||
}:
|
||||
let
|
||||
commonSpecialArgs = {
|
||||
specialArgs = {
|
||||
inherit device;
|
||||
vinzenzHomeModules = self.homeModules;
|
||||
vinzenzLib = self.lib;
|
||||
};
|
||||
in
|
||||
nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = commonSpecialArgs // {
|
||||
vinzenzNixosModules = self.nixosModules;
|
||||
vinzenzHomeConfigurations = self.homeConfigurations;
|
||||
};
|
||||
inherit system specialArgs;
|
||||
modules = [
|
||||
{
|
||||
networking.hostName = device;
|
||||
|
@ -134,6 +178,7 @@
|
|||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
"repl-flake"
|
||||
];
|
||||
|
||||
documentation = {
|
||||
|
@ -144,6 +189,7 @@
|
|||
|
||||
./nixosConfigurations/${device}
|
||||
|
||||
self.nixosModules.default
|
||||
self.nixosModules.lix-is-nix
|
||||
self.nixosModules.globalinstalls
|
||||
self.nixosModules.autoupdate
|
||||
|
@ -155,10 +201,10 @@
|
|||
|
||||
zerforschen-plus.nixosModules.default
|
||||
]
|
||||
++ (nixpkgs.lib.optionals (builtins.elem device homeDevices) [
|
||||
++ (nixpkgs.lib.optionals (home-manager-users != { }) [
|
||||
{
|
||||
home-manager = {
|
||||
extraSpecialArgs = commonSpecialArgs;
|
||||
extraSpecialArgs = specialArgs;
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
};
|
||||
|
@ -174,6 +220,8 @@
|
|||
self.homeModules.nano
|
||||
self.homeModules.gnome-extensions
|
||||
];
|
||||
|
||||
home-manager.users = home-manager-users;
|
||||
}
|
||||
|
||||
self.nixosModules.pkgs-unstable
|
||||
|
@ -190,7 +238,8 @@
|
|||
home-manager.nixosModules.home-manager
|
||||
servicepoint-simulator.nixosModules.default
|
||||
servicepoint-cli.nixosModules.default
|
||||
]);
|
||||
])
|
||||
++ additional-modules;
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -214,6 +263,10 @@
|
|||
pkgs-vscode-extensions = {
|
||||
nixpkgs.overlays = [ nix-vscode-extensions.overlays.default ];
|
||||
};
|
||||
# required modules to use other modules, should not do anything on their own
|
||||
default = {
|
||||
imports = [ self.nixosModules.allowed-unfree-list ];
|
||||
};
|
||||
};
|
||||
|
||||
homeModules = self.lib.importDir ./homeModules;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue