refactor: automatic options for overlays, fix build
This commit is contained in:
parent
850d673035
commit
281d763c62
7 changed files with 72 additions and 46 deletions
52
flake.nix
52
flake.nix
|
|
@ -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;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 = {
|
||||||
|
|
|
||||||
|
|
@ -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; [
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
33
nixosModules/nixpkgs-overlays.nix
Normal file
33
nixosModules/nixpkgs-overlays.nix
Normal 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
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue