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
{
overlays = {
unstable-packages = final: prev: {
unstable = final: prev: {
unstable = import nixpkgs-unstable {
localSystem = prev.stdenv.hostPlatform;
inherit (prev) config;
};
};
vscodeExtensions = nix-vscode-extensions.overlays.default;
};
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;
@ -208,7 +203,6 @@
lanzaboote.nixosModules.lanzaboote
nova-shell.nixosModules.default
self.nixosModules.niri
self.nixosModules.pkgs-vscode-extensions
servicepoint-cli.nixosModules.default
servicepoint-simulator.nixosModules.default
servicepoint-tanks.nixosModules.default
@ -233,15 +227,19 @@
doc.enable = false;
};
my.autoupdate.enable = true;
my.distributedBuilds.enable = true;
my.extraCaches.enable = true;
my.globalinstalls.enable = true;
my.lixIsNix.enable = true;
my.openssh.enable = true;
my.prometheusNode.enable = true;
my.systemdBoot.enable = true;
my.tailscale.enable = true;
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 != { }) [
@ -272,15 +270,17 @@
daemonIOSchedClass = "idle";
};
my.enDe.enable = true;
my.firmwareUpdates.enable = true;
my.gnome.enable = true;
my.kdeconnect.enable = true;
my.modernDesktop.enable = true;
my.niri.enable = true;
my.nixLd.enable = true;
my.quietBoot.enable = true;
my.stylix.enable = true;
my = {
enDe.enable = true;
firmwareUpdates.enable = true;
gnome.enable = true;
kdeconnect.enable = true;
modernDesktop.enable = true;
niri.enable = true;
nixLd.enable = true;
quietBoot.enable = true;
stylix.enable = true;
};
}
];
}

View file

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

View file

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

View file

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

View file

@ -18,6 +18,7 @@
./modern-desktop.nix
./muede-desktop-settings.nix
./nix-ld.nix
./nixpkgs-overlays.nix
./openssh.nix
./podman.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,
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";
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
services.fstrim.enable = false;