refactor: automatic options for overlays, fix build

This commit is contained in:
müde 2026-05-01 23:06:26 +02:00
parent 850d673035
commit 281d763c62
7 changed files with 72 additions and 46 deletions

View file

@ -146,12 +146,13 @@
in in
{ {
overlays = { overlays = {
unstable-packages = final: prev: { unstable = final: prev: {
unstable = import nixpkgs-unstable { unstable = import nixpkgs-unstable {
localSystem = prev.stdenv.hostPlatform; localSystem = prev.stdenv.hostPlatform;
inherit (prev) config; inherit (prev) config;
}; };
}; };
vscodeExtensions = nix-vscode-extensions.overlays.default;
}; };
nixosModules = (importModuleDir ./nixosModules) // { nixosModules = (importModuleDir ./nixosModules) // {
@ -170,12 +171,6 @@
}; };
}; };
}; };
pkgs-unstable = {
nixpkgs.overlays = [ self.overlays.unstable-packages ];
};
pkgs-vscode-extensions = {
nixpkgs.overlays = [ nix-vscode-extensions.overlays.default ];
};
}; };
homeModules = importModuleDir ./homeModules; homeModules = importModuleDir ./homeModules;
@ -208,7 +203,6 @@
lanzaboote.nixosModules.lanzaboote lanzaboote.nixosModules.lanzaboote
nova-shell.nixosModules.default nova-shell.nixosModules.default
self.nixosModules.niri self.nixosModules.niri
self.nixosModules.pkgs-vscode-extensions
servicepoint-cli.nixosModules.default servicepoint-cli.nixosModules.default
servicepoint-simulator.nixosModules.default servicepoint-simulator.nixosModules.default
servicepoint-tanks.nixosModules.default servicepoint-tanks.nixosModules.default
@ -233,15 +227,19 @@
doc.enable = false; doc.enable = false;
}; };
my.autoupdate.enable = true; my = {
my.distributedBuilds.enable = true; autoupdate.enable = true;
my.extraCaches.enable = true; distributedBuilds.enable = true;
my.globalinstalls.enable = true; overlays.unstable.enable = true;
my.lixIsNix.enable = true; overlays.vscodeExtensions.enable = true;
my.openssh.enable = true; extraCaches.enable = true;
my.prometheusNode.enable = true; globalinstalls.enable = true;
my.systemdBoot.enable = true; lixIsNix.enable = true;
my.tailscale.enable = true; openssh.enable = true;
prometheusNode.enable = true;
systemdBoot.enable = true;
tailscale.enable = true;
};
} }
] ]
++ lib.optionals (home-manager-users != { }) [ ++ lib.optionals (home-manager-users != { }) [
@ -272,15 +270,17 @@
daemonIOSchedClass = "idle"; daemonIOSchedClass = "idle";
}; };
my.enDe.enable = true; my = {
my.firmwareUpdates.enable = true; enDe.enable = true;
my.gnome.enable = true; firmwareUpdates.enable = true;
my.kdeconnect.enable = true; gnome.enable = true;
my.modernDesktop.enable = true; kdeconnect.enable = true;
my.niri.enable = true; modernDesktop.enable = true;
my.nixLd.enable = true; niri.enable = true;
my.quietBoot.enable = true; nixLd.enable = true;
my.stylix.enable = true; quietBoot.enable = true;
stylix.enable = true;
};
} }
]; ];
} }

View file

@ -10,11 +10,9 @@
# No one got time for xz compression. # No one got time for xz compression.
#isoImage.squashfsCompression = "zstd"; #isoImage.squashfsCompression = "zstd";
boot.loader = { boot.loader.raspberry-pi.bootloader = "kernel";
raspberry-pi.bootloader = "kernel";
systemd-boot.enable = lib.mkForce false; my.systemdBoot.enable = lib.mkForce false;
#generic-extlinux-compatible.enable = lib.mkForce false;
};
/* /*
fileSystems = { fileSystems = {

View file

@ -1,12 +1,11 @@
{ {
pkgs, pkgs,
self,
lib, lib,
... ...
}: }:
{ {
nixpkgs.overlays = [ self.overlays.unstable-packages ]; my.overlays.unstable.enable = true;
allowedUnfreePackages = [ "claude-code" ]; allowedUnfreePackages = [ "claude-code" ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [

View file

@ -1,6 +1,13 @@
{ ... }: { modulesPath, ... }:
{ {
imports = [ (modulesPath + "/virtualisation/proxmox-lxc.nix") ];
config = { config = {
my.pxvirtGuest.enable = true; my.pxvirtGuest.enable = true;
proxmoxLXC = {
manageNetwork = false;
privileged = false;
};
}; };
} }

View file

@ -18,6 +18,7 @@
./modern-desktop.nix ./modern-desktop.nix
./muede-desktop-settings.nix ./muede-desktop-settings.nix
./nix-ld.nix ./nix-ld.nix
./nixpkgs-overlays.nix
./openssh.nix ./openssh.nix
./podman.nix ./podman.nix
./printing.nix ./printing.nix

View file

@ -0,0 +1,33 @@
{
lib,
config,
self,
...
}:
{
options.my.overlays = {
enableAll = lib.mkEnableOption "all nixpkgs overlays";
}
// lib.mapAttrs (_: _: {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
};
}) self.overlays;
config = lib.mkMerge (
[
{
my.overlays = lib.mapAttrs (_: _: {
enable = lib.mkDefault config.my.overlays.enableAll;
}) self.overlays;
}
]
++ lib.mapAttrsToList (
name: overlay:
lib.mkIf config.my.overlays.${name}.enable {
nixpkgs.overlays = [ overlay ];
}
) self.overlays
);
}

View file

@ -1,24 +1,12 @@
{ {
modulesPath,
lib, lib,
config, config,
... ...
}: }:
{ {
# Import unconditionally — the module only defines options, activating nothing by default.
imports = [ (modulesPath + "/virtualisation/proxmox-lxc.nix") ];
options.my.pxvirtGuest.enable = lib.mkEnableOption "Proxmox LXC guest configuration"; options.my.pxvirtGuest.enable = lib.mkEnableOption "Proxmox LXC guest configuration";
config = lib.mkIf config.my.pxvirtGuest.enable { config = lib.mkIf config.my.pxvirtGuest.enable {
# TODO is this needed?
# nix.settings.sandbox = false;
proxmoxLXC = {
manageNetwork = false;
privileged = false;
};
# Let Proxmox host handle fstrim # Let Proxmox host handle fstrim
services.fstrim.enable = false; services.fstrim.enable = false;