refactor: move out nixosConfigurations
This commit is contained in:
parent
a7cc61a624
commit
ec5b785a8a
2 changed files with 126 additions and 107 deletions
110
flake.nix
110
flake.nix
|
|
@ -114,10 +114,9 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
devices = import ./devices.nix { inherit self; };
|
|
||||||
inherit (nixpkgs) lib;
|
inherit (nixpkgs) lib;
|
||||||
forDevice = f: lib.mapAttrs (device: value: f (value // { inherit device; })) devices;
|
nixosConfigurations = import ./nixosConfigurations.nix { inherit inputs lib; };
|
||||||
supported-systems = lib.attrsets.mapAttrsToList (k: v: v.system) devices;
|
supported-systems = lib.unique (lib.mapAttrsToList (_: v: v.pkgs.system) nixosConfigurations);
|
||||||
treefmt-config = {
|
treefmt-config = {
|
||||||
projectRootFile = "flake.nix";
|
projectRootFile = "flake.nix";
|
||||||
programs = {
|
programs = {
|
||||||
|
|
@ -164,110 +163,7 @@
|
||||||
ronja = ./homeConfigurations/ronja;
|
ronja = ./homeConfigurations/ronja;
|
||||||
};
|
};
|
||||||
|
|
||||||
nixosConfigurations = forDevice (
|
inherit nixosConfigurations;
|
||||||
{
|
|
||||||
device,
|
|
||||||
system,
|
|
||||||
home-manager-users ? { },
|
|
||||||
nixosSystem ? nixpkgs.lib.nixosSystem,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
specialArgs = inputs // {
|
|
||||||
inherit device home-manager-users devices;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
nixosSystem {
|
|
||||||
inherit specialArgs;
|
|
||||||
modules = [
|
|
||||||
./nixosConfigurations/${device}
|
|
||||||
self.nixosModules.default
|
|
||||||
|
|
||||||
# keep-sorted start
|
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
lanzaboote.nixosModules.lanzaboote
|
|
||||||
nova-shell.nixosModules.default
|
|
||||||
servicepoint-cli.nixosModules.default
|
|
||||||
servicepoint-simulator.nixosModules.default
|
|
||||||
servicepoint-tanks.nixosModules.default
|
|
||||||
stylix.nixosModules.stylix
|
|
||||||
zerforschen-plus.nixosModules.default
|
|
||||||
# keep-sorted end
|
|
||||||
|
|
||||||
# Base config (replaces global-settings.nix)
|
|
||||||
{
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault system;
|
|
||||||
networking.hostName = device;
|
|
||||||
system = {
|
|
||||||
stateVersion = "22.11";
|
|
||||||
autoUpgrade.flake = "git+https://git.berlin.ccc.de/vinzenz/nixos-configuration.git";
|
|
||||||
};
|
|
||||||
nix.settings.experimental-features = [
|
|
||||||
"nix-command"
|
|
||||||
"flakes"
|
|
||||||
];
|
|
||||||
documentation = {
|
|
||||||
info.enable = false;
|
|
||||||
doc.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
my = {
|
|
||||||
autoupdate.enable = true;
|
|
||||||
distributedBuilds.enable = true;
|
|
||||||
overlays.unstable.enable = true;
|
|
||||||
overlays.vscodeExtensions.enable = true;
|
|
||||||
extraCaches.enable = true;
|
|
||||||
globalinstalls.enable = true;
|
|
||||||
lixIsNix.enable = true;
|
|
||||||
openssh.enable = true;
|
|
||||||
# prometheusNode.enable = true;
|
|
||||||
systemdBoot.enable = true;
|
|
||||||
tailscale.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
]
|
|
||||||
++ lib.optionals (home-manager-users != { }) [
|
|
||||||
# Desktop config (replaces global-settings-desktop.nix)
|
|
||||||
{
|
|
||||||
home-manager = {
|
|
||||||
extraSpecialArgs = specialArgs;
|
|
||||||
useGlobalPkgs = true;
|
|
||||||
useUserPackages = true;
|
|
||||||
users = home-manager-users;
|
|
||||||
sharedModules = [
|
|
||||||
{ home.stateVersion = "22.11"; }
|
|
||||||
# keep-sorted start
|
|
||||||
self.homeModules.git
|
|
||||||
self.homeModules.gnome-extensions
|
|
||||||
self.homeModules.nano
|
|
||||||
self.homeModules.templates
|
|
||||||
self.homeModules.zsh-basics
|
|
||||||
# keep-sorted end
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
time.timeZone = "Europe/Berlin";
|
|
||||||
|
|
||||||
# on desktops, keep the device useable interactively during expensive builds
|
|
||||||
nix = {
|
|
||||||
daemonCPUSchedPolicy = "idle";
|
|
||||||
daemonIOSchedClass = "idle";
|
|
||||||
};
|
|
||||||
|
|
||||||
my = {
|
|
||||||
enDe.enable = true;
|
|
||||||
firmwareUpdates.enable = true;
|
|
||||||
gnome.enable = true;
|
|
||||||
kdeconnect.enable = true;
|
|
||||||
modernDesktop.enable = true;
|
|
||||||
nixLd.enable = true;
|
|
||||||
quietBoot.enable = true;
|
|
||||||
stylix.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
formatter = forAllSystems ({ treefmt-eval, ... }: treefmt-eval.config.build.wrapper);
|
formatter = forAllSystems ({ treefmt-eval, ... }: treefmt-eval.config.build.wrapper);
|
||||||
|
|
||||||
|
|
|
||||||
123
nixosConfigurations.nix
Normal file
123
nixosConfigurations.nix
Normal file
|
|
@ -0,0 +1,123 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
devices = import ./devices.nix { inherit (inputs) self; };
|
||||||
|
inherit (inputs)
|
||||||
|
self
|
||||||
|
home-manager
|
||||||
|
lanzaboote
|
||||||
|
nova-shell
|
||||||
|
servicepoint-cli
|
||||||
|
servicepoint-simulator
|
||||||
|
servicepoint-tanks
|
||||||
|
stylix
|
||||||
|
zerforschen-plus
|
||||||
|
;
|
||||||
|
forDevice = f: lib.mapAttrs (device: value: f (value // { inherit device; })) devices;
|
||||||
|
in
|
||||||
|
forDevice (
|
||||||
|
{
|
||||||
|
device,
|
||||||
|
system,
|
||||||
|
home-manager-users ? { },
|
||||||
|
nixosSystem ? inputs.nixpkgs.lib.nixosSystem,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
specialArgs = inputs // {
|
||||||
|
inherit device home-manager-users devices;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
nixosSystem {
|
||||||
|
inherit specialArgs;
|
||||||
|
modules = [
|
||||||
|
./nixosConfigurations/${device}
|
||||||
|
self.nixosModules.default
|
||||||
|
|
||||||
|
# keep-sorted start
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
lanzaboote.nixosModules.lanzaboote
|
||||||
|
nova-shell.nixosModules.default
|
||||||
|
servicepoint-cli.nixosModules.default
|
||||||
|
servicepoint-simulator.nixosModules.default
|
||||||
|
servicepoint-tanks.nixosModules.default
|
||||||
|
stylix.nixosModules.stylix
|
||||||
|
zerforschen-plus.nixosModules.default
|
||||||
|
# keep-sorted end
|
||||||
|
|
||||||
|
# Base config
|
||||||
|
{
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault system;
|
||||||
|
networking.hostName = device;
|
||||||
|
system = {
|
||||||
|
stateVersion = "22.11";
|
||||||
|
autoUpgrade.flake = "git+https://git.berlin.ccc.de/vinzenz/nixos-configuration.git";
|
||||||
|
};
|
||||||
|
nix.settings.experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
|
documentation = {
|
||||||
|
info.enable = false;
|
||||||
|
doc.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
my = {
|
||||||
|
autoupdate.enable = true;
|
||||||
|
distributedBuilds.enable = true;
|
||||||
|
overlays.unstable.enable = true;
|
||||||
|
overlays.vscodeExtensions.enable = true;
|
||||||
|
extraCaches.enable = true;
|
||||||
|
globalinstalls.enable = true;
|
||||||
|
lixIsNix.enable = true;
|
||||||
|
openssh.enable = true;
|
||||||
|
# prometheusNode.enable = true;
|
||||||
|
systemdBoot.enable = true;
|
||||||
|
tailscale.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
]
|
||||||
|
++ lib.optionals (home-manager-users != { }) [
|
||||||
|
# Desktop config
|
||||||
|
{
|
||||||
|
home-manager = {
|
||||||
|
extraSpecialArgs = specialArgs;
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
users = home-manager-users;
|
||||||
|
sharedModules = [
|
||||||
|
{ home.stateVersion = "22.11"; }
|
||||||
|
# keep-sorted start
|
||||||
|
self.homeModules.git
|
||||||
|
self.homeModules.gnome-extensions
|
||||||
|
self.homeModules.nano
|
||||||
|
self.homeModules.templates
|
||||||
|
self.homeModules.zsh-basics
|
||||||
|
# keep-sorted end
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
time.timeZone = "Europe/Berlin";
|
||||||
|
|
||||||
|
# on desktops, keep the device useable interactively during expensive builds
|
||||||
|
nix = {
|
||||||
|
daemonCPUSchedPolicy = "idle";
|
||||||
|
daemonIOSchedClass = "idle";
|
||||||
|
};
|
||||||
|
|
||||||
|
my = {
|
||||||
|
enDe.enable = true;
|
||||||
|
firmwareUpdates.enable = true;
|
||||||
|
gnome.enable = true;
|
||||||
|
kdeconnect.enable = true;
|
||||||
|
modernDesktop.enable = true;
|
||||||
|
nixLd.enable = true;
|
||||||
|
quietBoot.enable = true;
|
||||||
|
stylix.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue