From 0caef3e5879e1e95482fb85a678fc9c18c5edc83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20Schwarz=C3=A4ugl?= Date: Sat, 8 Nov 2025 03:45:54 +0100 Subject: [PATCH] feat: use nixos-extra-modules --- .sops.yaml | 81 +- SwarselSystems.org | 863 +++- flake.lock | 3722 ++++++++++------- flake.nix | 4 + hosts/home/treehouse/default.nix | 8 +- hosts/nixos/summers/default.nix | 108 + hosts/nixos/summers/disk-config.nix | 118 + hosts/nixos/summers/guests/guest1/default.nix | 25 + .../nixos/summers/hardware-configuration.nix | 28 + .../nixos/summers/secrets/guest1/pii.nix.enc | 15 + hosts/nixos/summers/secrets/pii.nix.enc | 26 + modules/home/common/settings.nix | 14 +- modules/nixos/common/home-manager.nix | 8 +- modules/nixos/optional/microvm-guest.nix | 55 +- modules/nixos/optional/microvm-host.nix | 7 +- nix/hosts.nix | 60 +- nix/lib.nix | 3 + nix/overlays.nix | 27 +- nix/packages.nix | 27 +- 19 files changed, 3397 insertions(+), 1802 deletions(-) create mode 100644 hosts/nixos/summers/default.nix create mode 100644 hosts/nixos/summers/disk-config.nix create mode 100644 hosts/nixos/summers/guests/guest1/default.nix create mode 100644 hosts/nixos/summers/hardware-configuration.nix create mode 100644 hosts/nixos/summers/secrets/guest1/pii.nix.enc create mode 100644 hosts/nixos/summers/secrets/pii.nix.enc diff --git a/.sops.yaml b/.sops.yaml index a6adc63..2626089 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -49,48 +49,58 @@ creation_rules: - *surface - *winters - *moonside - - path_regex: secrets/pyramid/[^/]+\.(yaml|json|env|ini)$ - key_groups: - - pgp: - - *swarsel - age: - - *nbl - - path_regex: secrets/moonside/secrets.yaml - key_groups: - - pgp: - - *swarsel - age: - - *moonside - - path_regex: secrets/bakery/secrets.yaml - key_groups: - - pgp: - - *swarsel - age: - - *bakery - - path_regex: secrets/winters/[^/]+\.(yaml|json|env|ini)$ - key_groups: - - pgp: - - *swarsel - age: - - *winters - path_regex: secrets/work/[^/]+\.(yaml|json|env|ini)$ key_groups: - pgp: - *swarsel age: - *nbl - - path_regex: secrets/milkywell/[^/]+\.(yaml|json|env|ini)$ + + - path_regex: secrets/pyramid/[^/]+\.(yaml|json|env|ini)$ key_groups: - pgp: - *swarsel age: - - *milkywell + - *nbl - path_regex: hosts/nixos/pyramid/secrets/pii.nix.enc key_groups: - pgp: - *swarsel age: - *nbl + + - path_regex: secrets/moonside/secrets.yaml + key_groups: + - pgp: + - *swarsel + age: + - *moonside + - path_regex: hosts/nixos/moonside/secrets/pii.nix.enc + key_groups: + - pgp: + - *swarsel + age: + - *moonside + + - path_regex: secrets/bakery/secrets.yaml + key_groups: + - pgp: + - *swarsel + age: + - *bakery + - path_regex: hosts/nixos/bakery/secrets/pii.nix.enc + key_groups: + - pgp: + - *swarsel + age: + - *bakery + + - path_regex: secrets/winters/[^/]+\.(yaml|json|env|ini)$ + key_groups: + - pgp: + - *swarsel + age: + - *winters - path_regex: hosts/nixos/winters/secrets/pii.nix.enc key_groups: - pgp: @@ -98,24 +108,25 @@ creation_rules: age: - *winters - *moonside + + - path_regex: secrets/milkywell/[^/]+\.(yaml|json|env|ini)$ + key_groups: + - pgp: + - *swarsel + age: + - *milkywell - path_regex: hosts/nixos/milkywell/secrets/pii.nix.enc key_groups: - pgp: - *swarsel age: - *milkywell - - path_regex: hosts/nixos/bakery/secrets/pii.nix.enc + + - path_regex: hosts/nixos/summers/secrets/ key_groups: - pgp: - *swarsel - age: - - *bakery - - path_regex: hosts/nixos/moonside/secrets/pii.nix.enc - key_groups: - - pgp: - - *swarsel - age: - - *moonside + - path_regex: hosts/darwin/nbm-imba-166/secrets/pii.nix.enc key_groups: - pgp: diff --git a/SwarselSystems.org b/SwarselSystems.org index 38778b4..d5ad46a 100644 --- a/SwarselSystems.org +++ b/SwarselSystems.org @@ -233,16 +233,21 @@ Here I give a brief overview over the hostmachines that I am using. This is held | Name | Hardware | Use | |--------------------|-----------------------------------------------------|------------------------------------------------------| |💻 **pyramid** | Framework Laptop 16, AMD 7940HS, RX 7700S, 64GB RAM | Work laptop | - |💻 **bakery** | Lenovo Ideapad 720S-13IKB | Personal lapto | - |💻 **machpizza** | MacBook Pro 2016 | MacOS sandbox | - |🖥️ **winters** | ASRock J4105-ITX, 32GB RAM | Main homeserver and data storgae | - |🖥️ **milkywell** | Oracle Cloud: VM.Standard.E2.1.Micro | Server for lightweight synchronization tasks | - |🖥️ **moonside** | Oracle Cloud: VM.Standard.A1.Flex, 4 OCPUs, 24GB RAM| Proxy for local services, some lightweight services | + |💻 **bakery** | Lenovo Ideapad 720S-13IKB | Personal laptop | + |💻 **machpizza** | MacBook Pro 2016 | MacOS reference and build sandbox | + |🏠 **treehouse** | NVIDIA DGX Spark | Workstation, AI playground and home-manager reference| + |🖥️ **winters** | ASRock J4105-ITX, 32GB RAM | Secondary homeserver and data storgae | + |🖥️ **summers** | ASUS Z10PA-D8, 2* Intel Xeon E5-2650 v4, 128GB RAM | Main homeserver running microvms, data storage | + |🖥️ **hintbooth** | HUNSN RM02, 8GB RAM | Router | + |☁️ **milkywell** | Oracle Cloud: VM.Standard.E2.1.Micro | Server for lightweight synchronization tasks | + |☁️ **moonside** | Oracle Cloud: VM.Standard.A1.Flex, 4 OCPUs, 24GB RAM| Proxy for local services, some lightweight services | + |☁️ **belchsfactory**| Oracle Cloud: VM.Standard.A1.Flex, 4 OCPUs, 24GB RAM| Hydra builder and nix binary cache | + |☁️ **monkeycave** | Oracle Cloud: VM.Standard.A1.Flex, 4 OCPUs, 24GB RAM| Gaming server | + |☁️ **eagleland** | Hetzner Cloud: CX23 | Mail server | |📱 **magicant** | Samsung Galaxy Z Flip 6 | Phone | |💿 **drugstore** | - | ISO installer configuration | |❔ **chaotheatre** | - | Demo config for checking out my configurtion | |❔ **toto** | - | Helper configuration for bootstrapping a new system | - |🏠 **treehouse** | - | Reference configuration for a home-manager only host | #+end_src ** Programs @@ -510,6 +515,10 @@ A short overview over each input and what it does: url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; + nixos-extra-modules = { + url = "github:oddlama/nixos-extra-modules"; + inputs.nixpkgs.follows = "nixpkgs"; + }; microvm = { url = "github:astro/microvm.nix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -559,7 +568,7 @@ This file is used by [[https://github.com/shlevy/nix-plugins][nix-plugins]]. nix - [[https://github.com/AGWA/git-crypt][git-crypt]] - a separate repo containing my secrets - As for the second approach, I actually used this up to some point (see for example =7e11641: feat: add initial oauth2-proxy and freshrss oidc= as one of the lasts commits still using this system). However, it is quite bothersome to constantly have to keep two repositories up to date and in sync. Also, having a repo that every configuration relied upon that was also a private repo led to the problem that my demo configuration ([[#h:e1498bef-ec67-483d-bf02-76264e30be8e][ChaosTheatre (Demo Physical/VM)]]) would fail to build with that present, and I had to take several extra steps to make it buildable. Ever since deleting that dependency I also got rid of that problem. The whole system is inspired by [[https://oddlama.org/blog/evaluation-time-secrets-in-nix/][this blog article]] and large parts of it are adapted from [[https://github.com/oddlama/nix-config][oddlama's nix-config]]. + As for the second approach, I actually used this up to some point (see for example =7e11641: feat: add initial oauth2-proxy and freshrss oidc= as one of the lasts commits still using this system). However, it is quite bothersome to constantly have to keep two repositories up to date and in sync. Also, having a repo that every configuration relied upon that was also a private repo led to the problem that my demo configuration ([[#h:e1498bef-ec67-483d-bf02-76264e30be8e][Hotel (Demo Physical/VM)]]) would fail to build with that present, and I had to take several extra steps to make it buildable. Ever since deleting that dependency I also got rid of that problem. The whole system is inspired by [[https://oddlama.org/blog/evaluation-time-secrets-in-nix/][this blog article]] and large parts of it are adapted from [[https://github.com/oddlama/nix-config][oddlama's nix-config]]. The builtin that is added is a simple call to the =exec= function that calls a bash script. In order to keep some sanity, we are checking that we are actually calling it no an encryted nix file (even though there is no syntax check inside) and that the path given is a true nix path. Note that a string path will not be accepted, as that can have impurity implications. @@ -731,6 +740,9 @@ Concerning the =flake = _:= part: inherit (inputs.home-manager.lib) hm; inherit swarselsystems; }); + + swarselsystemsLib = swarselsystems; + homeLib = self.outputs.lib; }; } #+end_src @@ -746,8 +758,20 @@ Other nix users can make use of these packages either by installing them directl More information on the actual packages build can be found in [[#h:64a5cc16-6b16-4802-b421-c67ccef853e1][Packages]]. #+begin_src nix-ts :tangle nix/packages.nix -{ self, ... }: +{ self, inputs, ... }: { + imports = [ + ( + { lib, flake-parts-lib, ... }: + flake-parts-lib.mkTransposedPerSystemModule { + name = "pkgs"; + file = ./packages.nix; + option = lib.mkOption { + type = lib.types.unspecified; + }; + } + ) + ]; flake = _: let inherit (self.outputs) lib; @@ -755,6 +779,19 @@ More information on the actual packages build can be found in [[#h:64a5cc16-6b16 { packages = lib.swarselsystems.forEachLinuxSystem (pkgs: import "${self}/pkgs" { inherit self lib pkgs; }); }; + + perSystem = { pkgs, system, ... }: + { + # see https://flake.parts/module-arguments.html?highlight=modulewith#persystem-module-parameters + _module.args.pkgs = import inputs.nixpkgs { + inherit system; + config.allowUnfree = true; + overlays = [ + self.overlays.default + ]; + }; + inherit pkgs; + }; } #+end_src ** Globals @@ -866,12 +903,29 @@ The rest of the outputs either define or help define the actual configurations: flake = { config, ... }: let inherit (self) outputs; - inherit (outputs) lib; + inherit (outputs) lib homeLib; # lib = (inputs.nixpkgs.lib // inputs.home-manager.lib).extend (_: _: { swarselsystems = import "${self}/lib" { inherit self lib inputs outputs; inherit (inputs) systems; }; }); mkNixosHost = { minimal }: configName: - lib.nixosSystem { - specialArgs = { inherit inputs outputs lib self minimal configName; inherit (config) globals nodes; }; + let + sys = "x86_64-linux"; + # lib = config.pkgsPre.${sys}.lib // { + # inherit (inputs.home-manager.lib) hm; + # swarselsystems = self.outputs.swarselsystemsLib; + # }; + + # lib = config.pkgsPre.${sys}.lib // { + # inherit (inputs.home-manager.lib) hm; + # swarselsystems = self.outputs.swarselsystemsLib; + # }; + inherit (config.pkgs.${sys}) lib; + in + inputs.nixpkgs.lib.nixosSystem { + specialArgs = { + inherit inputs outputs self minimal configName; + inherit lib homeLib; + inherit (config) globals nodes; + }; modules = [ inputs.disko.nixosModules.disko inputs.sops-nix.nixosModules.sops @@ -886,6 +940,7 @@ The rest of the outputs either define or help define the actual configurations: inputs.niri-flake.nixosModules.niri inputs.microvm.nixosModules.host inputs.microvm.nixosModules.microvm + (inputs.nixos-extra-modules + "/modules/guests") "${self}/hosts/nixos/${configName}" "${self}/profiles/nixos" "${self}/modules/nixos" @@ -894,7 +949,7 @@ The rest of the outputs either define or help define the actual configurations: microvm.guest.enable = lib.mkDefault false; node = { - name = configName; + name = lib.mkForce configName; secretsDir = ../hosts/nixos/${configName}/secrets; }; @@ -916,7 +971,7 @@ The rest of the outputs either define or help define the actual configurations: mkDarwinHost = { minimal }: configName: inputs.nix-darwin.lib.darwinSystem { specialArgs = { - inherit inputs outputs lib self minimal configName; + inherit inputs lib outputs self minimal configName; inherit (config) globals nodes; }; modules = [ @@ -933,7 +988,7 @@ The rest of the outputs either define or help define the actual configurations: "${self}/modules/nixos/common/meta.nix" "${self}/modules/nixos/common/globals.nix" { - node.name = configName; + node.name = lib.mkForce configName; node.secretsDir = ../hosts/darwin/${configName}/secrets; } @@ -949,7 +1004,7 @@ The rest of the outputs either define or help define the actual configurations: { inherit pkgs; extraSpecialArgs = { - inherit inputs outputs lib self configName; + inherit inputs lib outputs self configName; inherit (config) globals nodes; minimal = false; }; @@ -984,14 +1039,32 @@ The rest of the outputs either define or help define the actual configurations: minimal = true; }); - # TODO: Build these for all architectures - homeConfigurations = mkHalfHostConfigs (lib.swarselsystems.readHosts "home") "home" lib.swarselsystems.pkgsFor.x86_64-linux // mkHalfHostConfigs (lib.swarselsystems.readHosts "home") "home" lib.swarselsystems.pkgsFor.aarch64-linux; - nixOnDroidConfigurations = mkHalfHostConfigs (lib.swarselsystems.readHosts "android") "android" lib.swarselsystems.pkgsFor.aarch64-linux; + homeConfigurations = + let + inherit (lib.swarselsystems) pkgsFor readHosts; + in + mkHalfHostConfigs (readHosts "home") "home" pkgsFor.x86_64-linux + // mkHalfHostConfigs (readHosts "home") "home" pkgsFor.aarch64-linux; + + nixOnDroidConfigurations = + let + inherit (lib.swarselsystems) pkgsFor readHosts; + in + mkHalfHostConfigs (readHosts "android") "android" pkgsFor.aarch64-linux; + + guestConfigurations = lib.flip lib.concatMapAttrs config.nixosConfigurations ( + _: node: + lib.flip lib.mapAttrs' (node.config.microvm.vms or { }) ( + guestName: guestDef: + lib.nameValuePair guestDef.nodeName node.config.microvm.vms.${guestName}.config + ) + ); diskoConfigurations.default = import "${self}/files/templates/hosts/nixos/disk-config.nix"; - nodes = config.nixosConfigurations // config.darwinConfigurations; - + nodes = config.nixosConfigurations + // config.darwinConfigurations + // config.guestConfigurations; }; } #+end_src @@ -1046,11 +1119,11 @@ Another note concerning [[https://flake.parts/][flake-parts]]: (mkConnection "milkywell" "wan") (mkConnection "magicant" "wifi") (mkConnection "toto" "bootstrapper") - (mkConnection "chaostheatre" "demo host") + (mkConnection "hotel" "demo host") ]; }; - chaostheatre.interfaces."demo host" = { }; + hotel.interfaces."demo host" = { }; toto.interfaces."bootstrapper" = { }; milkywell.interfaces.wan = { }; moonside.interfaces.wan = { }; @@ -1549,6 +1622,11 @@ On the structure of overlays: as you notice, all of the attributes within overla # withSystemVencord = true; # }; + lib = prev.lib // { + swarselsystems = self.outputs.swarselsystemsLib; + hm = self.outputs.homeLib; + }; + firefox = prev.firefox.override { nativeMessagingHosts = [ prev.tridactyl-native @@ -1599,15 +1677,19 @@ On the structure of overlays: as you notice, all of the attributes within overla (builtins.attrNames nixpkgsInputs)); in - (additions final prev) - // (modifications final prev) - // (nixpkgs-stable-versions final prev) - // (inputs.niri-flake.overlays.niri final prev) - // (inputs.vbc-nix.overlays.default final prev) - // (inputs.nur.overlays.default final prev) - // (inputs.emacs-overlay.overlay final prev) - // (inputs.nix-topology.overlays.default final prev) - // (inputs.nixgl.overlay final prev); + lib.recursiveUpdate + ( + (additions final prev) + // (nixpkgs-stable-versions final prev) + // (inputs.niri-flake.overlays.niri final prev) + // (inputs.vbc-nix.overlays.default final prev) + // (inputs.nur.overlays.default final prev) + // (inputs.emacs-overlay.overlay final prev) + // (inputs.nix-topology.overlays.default final prev) + // (inputs.nixgl.overlay final prev) + // (inputs.nixos-extra-modules.overlays.default final prev) + ) + (modifications final prev); }; }; } @@ -2392,7 +2474,7 @@ My personal laptop. Closely follows the =pyramid= config, but leaves out some se } #+end_src -**** Winters (Server) +**** Winters (Server: ASRock J4105-ITX) :PROPERTIES: :CUSTOM_ID: h:932ef6b0-4c14-4200-8e3f-2e208e748746 :END: @@ -2435,6 +2517,14 @@ This is my main server that I run at home. It handles most tasks that require bi isBtrfs = false; isLinux = true; isNixos = true; + server.garage = { + data_dir = [ + { + capacity = "200G"; + path = "/Vault/data/garage/main"; + } + ]; + }; }; } // lib.optionalAttrs (!minimal) { @@ -2473,6 +2563,7 @@ This is my main server that I run at home. It handles most tasks that require bi # snipeit = lib.mkDefault false; homebox = lib.mkDefault true; opkssh = lib.mkDefault true; + garage = lib.mkDefault false; }; } @@ -2530,6 +2621,305 @@ This is my main server that I run at home. It handles most tasks that require bi hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } #+end_src +**** Summers (Server: ASUS Z10PA-D8) + +***** Main Configuration +#+begin_src nix-ts :tangle hosts/nixos/summers/default.nix + { inputs, lib, config, configName, minimal, nodes, globals, ... }: + { + + imports = [ + ./hardware-configuration.nix + ./disk-config.nix + ]; + + boot = { + loader.systemd-boot.enable = true; + loader.efi.canTouchEfiVariables = true; + }; + + # globals.hosts.${config.node.name}.ipv4 = config.repo.secrets.local.ipv4; + + networking = { + inherit (config.repo.secrets.local) hostId; + hostName = configName; + firewall.enable = true; + enableIPv6 = true; + }; + + swarselsystems = { + info = "ASUS Z10PA-D8, 2* Intel Xeon E5-2650 v4, 128GB RAM"; + flakePath = "/root/.dotfiles"; + isImpermanence = true; + isSecureBoot = true; + isCrypted = true; + isBtrfs = true; + isLinux = true; + isNixos = true; + withMicroVMs = false; + }; + + } // lib.optionalAttrs (!minimal) { + + swarselprofiles = { + server = true; + }; + + swarselmodules = { + optional = { + microvmHost = true; + }; + server = { + nfs = false; + nginx = false; + kavita = false; + restic = false; + jellyfin = false; + navidrome = false; + spotifyd = false; + mpd = false; + postgresql = false; + matrix = false; + nextcloud = false; + immich = false; + paperless = false; + transmission = false; + syncthing = false; + grafana = false; + emacs = false; + freshrss = false; + jenkins = false; + kanidm = false; + firefly-iii = false; + koillection = false; + radicale = false; + atuin = false; + forgejo = false; + ankisync = false; + homebox = false; + opkssh = false; + garage = false; + }; + }; + + microvm.vms = + let + mkMicrovm = guestName: { + ${guestName} = { + backend = "microvm"; + autostart = true; + modules = [ + ./guests/${guestName}.nix + { + node.secretsDir = ./secrets/${guestName}; + } + ]; + microvm = { + system = "x86_64-linux"; + # baseMac = config.repo.secrets.local.networking.interfaces.lan.mac; + # interfaces.vlan-services = { }; + }; + specialArgs = { + inherit (config) nodes globals; + inherit lib; + inherit inputs minimal; + }; + }; + }; + in + lib.mkIf (!minimal && config.swarselsystems.withMicroVMs) ( + { } + // mkMicrovm "guest1" + ); + + } + +#+end_src + +***** hardware-configuration +#+begin_src nix-ts :tangle hosts/nixos/summers/hardware-configuration.nix + { config, lib, modulesPath, ... }: + + { + imports = + [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot = { + initrd.availableKernelModules = [ "ahci" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ]; + initrd.kernelModules = [ ]; + kernelModules = [ "kvm-intel" ]; + extraModulePackages = [ ]; + + supportedFilesystems = [ "zfs" ]; + zfs.extraPools = [ "Vault" ]; + }; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp3s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + } +#+end_src +***** disko + +#+begin_src nix-ts :tangle hosts/nixos/summers/disk-config.nix + { lib, config, ... }: + let + type = "btrfs"; + extraArgs = [ "-L" "nixos" "-f" ]; # force overwrite + subvolumes = { + "/root" = { + mountpoint = "/"; + mountOptions = [ + "subvol=root" + "compress=zstd" + "noatime" + ]; + }; + "/home" = lib.mkIf config.swarselsystems.isImpermanence { + mountpoint = "/home"; + mountOptions = [ + "subvol=home" + "compress=zstd" + "noatime" + ]; + }; + "/persist" = lib.mkIf config.swarselsystems.isImpermanence { + mountpoint = "/persist"; + mountOptions = [ + "subvol=persist" + "compress=zstd" + "noatime" + ]; + }; + "/log" = lib.mkIf config.swarselsystems.isImpermanence { + mountpoint = "/var/log"; + mountOptions = [ + "subvol=log" + "compress=zstd" + "noatime" + ]; + }; + "/nix" = { + mountpoint = "/nix"; + mountOptions = [ + "subvol=nix" + "compress=zstd" + "noatime" + ]; + }; + "/swap" = lib.mkIf config.swarselsystems.isSwap { + mountpoint = "/.swapvol"; + swap.swapfile.size = config.swarselsystems.swapSize; + }; + }; + in + { + disko.devices = { + disk = { + disk0 = { + type = "disk"; + device = config.swarselsystems.rootDisk; + content = { + type = "gpt"; + partitions = { + ESP = { + priority = 1; + name = "ESP"; + size = "512M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = [ "defaults" ]; + }; + }; + root = lib.mkIf (!config.swarselsystems.isCrypted) { + size = "100%"; + content = { + inherit type subvolumes extraArgs; + postCreateHook = lib.mkIf config.swarselsystems.isImpermanence '' + MNTPOINT=$(mktemp -d) + mount "/dev/disk/by-label/nixos" "$MNTPOINT" -o subvolid=5 + trap 'umount $MNTPOINT; rm -rf $MNTPOINT' EXIT + btrfs subvolume snapshot -r $MNTPOINT/root $MNTPOINT/root-blank + ''; + }; + }; + luks = lib.mkIf config.swarselsystems.isCrypted { + size = "100%"; + content = { + type = "luks"; + name = "cryptroot"; + passwordFile = "/tmp/disko-password"; # this is populated by bootstrap.sh + settings = { + allowDiscards = true; + # https://github.com/hmajid2301/dotfiles/blob/a0b511c79b11d9b4afe2a5e2b7eedb2af23e288f/systems/x86_64-linux/framework/disks.nix#L36 + crypttabExtraOpts = [ + "fido2-device=auto" + "token-timeout=10" + ]; + }; + content = { + inherit type subvolumes extraArgs; + postCreateHook = lib.mkIf config.swarselsystems.isImpermanence '' + MNTPOINT=$(mktemp -d) + mount "/dev/mapper/cryptroot" "$MNTPOINT" -o subvolid=5 + trap 'umount $MNTPOINT; rm -rf $MNTPOINT' EXIT + btrfs subvolume snapshot -r $MNTPOINT/root $MNTPOINT/root-blank + ''; + }; + }; + }; + }; + }; + }; + }; + }; + + fileSystems."/persist".neededForBoot = lib.mkIf config.swarselsystems.isImpermanence true; + fileSystems."/home".neededForBoot = lib.mkIf config.swarselsystems.isImpermanence true; + } +#+end_src +***** Guests +****** Guest 1 +#+begin_src nix-ts :tangle hosts/nixos/summers/guests/guest1/default.nix + { lib, minimal, ... }: + { + + swarselsystems = { + info = "ASUS Z10PA-D8, 2* Intel Xeon E5-2650 v4, 128GB RAM"; + }; + + } // lib.optionalAttrs (!minimal) { + + swarselprofiles = { + server = false; + }; + + swarselmodules = { + optional = { + microvmGuest = false; + }; + }; + + microvm = { + mem = 1024 * 4; + vcpu = 2; + }; + + } + +#+end_src + **** machpizza (MacBook Pro) :PROPERTIES: :CUSTOM_ID: h:28e1a7eb-356b-4015-83f7-9c552c8c0e9d @@ -2623,7 +3013,7 @@ My phone. I use only a minimal config for remote debugging here. **** Treehouse (DGX Spark) #+begin_src nix-ts :tangle hosts/home/treehouse/default.nix - { self, outputs, ... }: + { self, ... }: { imports = [ @@ -2633,12 +3023,6 @@ My phone. I use only a minimal config for remote debugging here. "${self}/modules/nixos/common/meta.nix" ]; - nixpkgs = { - overlays = [ outputs.overlays.default ]; - config = { - allowUnfree = true; - }; - }; services.xcape = { enable = true; @@ -3427,7 +3811,7 @@ TODO: cleanup this mess file = { ".bash_history" = { text = '' - swarsel-install -n chaostheatre + swarsel-install -n hotel ''; }; }; @@ -3444,7 +3828,7 @@ TODO: cleanup this mess file = { ".bash_history" = { text = '' - swarsel-install -n chaostheatre + swarsel-install -n hotel ''; }; }; @@ -3586,7 +3970,7 @@ TODO: cleanup this mess #+end_src -**** ChaosTheatre (Demo Physical/VM) +**** Hotel (Demo Physical/VM) :PROPERTIES: :CUSTOM_ID: h:e1498bef-ec67-483d-bf02-76264e30be8e :END: @@ -3599,7 +3983,7 @@ I also set the =WLR_RENDERER_ALLOW_SOFTWARE=1= to allow this configuration to ru :CUSTOM_ID: h:9f1f3439-b0af-4dcd-a96f-b6aa7b6cd2ab :END: -#+begin_src nix-ts :tangle hosts/nixos/chaostheatre/default.nix +#+begin_src nix-ts :tangle hosts/nixos/hotel/default.nix { self, config, pkgs, lib, minimal, ... }: let mainUser = "demo"; @@ -3627,7 +4011,7 @@ I also set the =WLR_RENDERER_ALLOW_SOFTWARE=1= to allow this configuration to ru }; networking = { - hostName = "chaostheatre"; + hostName = "hotel"; firewall.enable = true; }; @@ -3649,7 +4033,7 @@ I also set the =WLR_RENDERER_ALLOW_SOFTWARE=1= to allow this configuration to ru } // lib.optionalAttrs (!minimal) { swarselprofiles = { - chaostheatre = true; + hotel = true; minimal = true; }; } @@ -3662,7 +4046,7 @@ I also set the =WLR_RENDERER_ALLOW_SOFTWARE=1= to allow this configuration to ru :CUSTOM_ID: h:849e4233-ba40-4fec-acfe-0d76e1e4371b :END: -#+begin_src nix-ts :tangle hosts/nixos/chaostheatre/disk-config.nix +#+begin_src nix-ts :tangle hosts/nixos/hotel/disk-config.nix # NOTE: ... is needed because dikso passes diskoFile { lib , pkgs @@ -3798,7 +4182,7 @@ I also set the =WLR_RENDERER_ALLOW_SOFTWARE=1= to allow this configuration to ru :CUSTOM_ID: h:6f9c1a3b-452e-4944-86e8-cb17603cc3f9 :END: -#+begin_src nix-ts :tangle hosts/nixos/chaostheatre/options.nix +#+begin_src nix-ts :tangle hosts/nixos/hotel/options.nix _: { } @@ -3809,7 +4193,7 @@ I also set the =WLR_RENDERER_ALLOW_SOFTWARE=1= to allow this configuration to ru :CUSTOM_ID: h:88ccb198-74b9-4269-8e22-af1277f44667 :END: -#+begin_src nix-ts :tangle hosts/nixos/chaostheatre/options-home.nix +#+begin_src nix-ts :tangle hosts/nixos/hotel/options-home.nix _: { } @@ -4265,7 +4649,7 @@ A breakdown of the flags being set: We enable the use of =home-manager= as a NixoS module. A nice trick here is the =extraSpecialArgs = inputs= line, which enables the use of =seflf= in most parts of the configuration. This is useful to refer to the root of the flake (which is otherwise quite hard while maintaining flake purity). #+begin_src nix-ts :tangle modules/nixos/common/home-manager.nix - { self, inputs, config, lib, outputs, globals, nodes, minimal, configName, ... }: + { self, inputs, config, lib, homeLib, outputs, globals, nodes, minimal, configName, ... }: { options.swarselmodules.home-manager = lib.mkEnableOption "home-manager"; config = lib.mkIf config.swarselmodules.home-manager { @@ -4296,7 +4680,11 @@ We enable the use of =home-manager= as a NixoS module. A nice trick here is the home.stateVersion = lib.mkDefault config.system.stateVersion; } ]; - extraSpecialArgs = { inherit (inputs) self nixgl; inherit inputs outputs globals nodes minimal configName; }; + extraSpecialArgs = { + inherit (inputs) self nixgl; + inherit inputs outputs globals nodes minimal configName; + lib = homeLib; + }; }; }; } @@ -10417,6 +10805,114 @@ Deployment notes: } #+end_src +**** Garage + +Generate the admin token using =openssl rand -base64 32=. +Generate the rpc token using =openssl rand -hex 32=. + +#+begin_src nix-ts :tangle modules/nixos/server/garage.nix + { self, lib, pkgs, config, configName, globals, ... }: + let + sopsFile = self + /secrets/${configName}/secrets2.yaml; + + serviceName = "garage"; + servicePort = 3900; + serviceDomain = config.repo.secrets.common.services.domains."${serviceName}-${configName}"; + serviceAddress = globals.hosts.${configName}.ipv4; + + cfg = config.services.${serviceName}; + metadata_dir = "/var/lib/garage/meta"; + in + { + options = { + swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + swarselsystems.server.${serviceName} = { + data_dir = lib.mkOption { + type = lib.types.either lib.types.path (lib.types.listOf lib.types.attrs); + default = "/var/lib/garage/data"; + }; + }; + }; + config = lib.mkIf config.swarselmodules.server.${serviceName} { + + sops = { + secrets.garage-admin-token = { inherit sopsFile; }; + secrets.garage-rpc-secret = { inherit sopsFile; }; + }; + + environment = { + persistence."/persist".directories = lib.mkIf config.swarselsystems.isImpermanence [ + { directory = metadata_dir; } + ]; + systemPackages = [ + cfg.package + ]; + }; + + systemd.services.${serviceName}.serviceConfig = { + DynamicUser = false; + ProtectHome = lib.mkForce false; + }; + + services.${serviceName} = { + enable = true; + package = pkgs.garage_2; + settings = { + inherit (config.swarselsystems.${serviceName}) data_dir; + inherit metadata_dir; + db_engine = "lmdb"; + block_size = "1MiB"; + use_local_tz = false; + + replication_factor = 2; # Number of copies of data + + rpc_bind_addr = "[::]:3901"; + rpc_public_addr = "${config.repo.secrets.local.ipv4}:4317"; + rpc_secret_file = config.sops.secrets.garage-rpc-secret.path; + + s3_api = { + s3_region = "swarsel"; + api_bind_addr = "0.0.0.0:${builtins.toString servicePort}"; + root_domain = ".s3.garage.localhost"; + }; + + admin = { + api_bind_addr = "0.0.0.0:3903"; + admin_token_file = config.sops.secrets.garage-admin-token.path; + }; + + k2v_api = { + api_bind_addr = "[::]:3904"; + }; + }; + }; + + nodes.moonside.services.nginx = { + upstreams = { + ${serviceName} = { + servers = { + "${serviceAddress}:${builtins.toString servicePort}" = { }; + }; + }; + }; + virtualHosts = { + "${serviceDomain}" = { + enableACME = true; + forceSSL = true; + acmeRoot = null; + oauth2.enable = false; + locations = { + "/" = { + proxyPass = "http://${serviceName}"; + }; + }; + }; + }; + }; + + }; + } +#+end_src *** Darwin :PROPERTIES: :CUSTOM_ID: h:ac0cd8b3-06cf-4dca-ba73-6100c8fedb47 @@ -11021,18 +11517,19 @@ Some standard options that should be set for every microvm host. #+begin_src nix-ts :tangle modules/nixos/optional/microvm-host.nix { lib, config, ... }: { - options.swarselmodules.optional.microvmHost = lib.mkEnableOption "optional microvmHost settings"; - # imports = [ - # inputs.microvm.nixosModules.host - # ]; + options = { + swarselmodules.optional.microvmHost = lib.mkEnableOption "optional microvmHost settings"; + }; + # imports = [ + # inputs.microvm.nixosModules.host + # ]; - config = lib.mkIf (config.swarselmodules.optional.microvmHost && config.swarselsystems.withMicroVMs) { + config = lib.mkIf (config.guests != {}) { microvm = { hypervisor = lib.mkDefault "qemu"; }; }; - } #+end_src @@ -11051,58 +11548,6 @@ Some standard options that should be set vor every microvm guest. We set the def # ]; config = lib.mkIf config.swarselmodules.optional.microvmGuest { - # imports = [ - # inputs.microvm.nixosModules.microvm - - # "${self}/profiles/nixos" - # "${self}/modules/nixos" - # ]; - - boot.kernelParams = [ "systemd.hostname=${config.networking.hostName}" ]; - - node.name = config; - documentation.enable = lib.mkForce false; - - microvm = { - guest.enable = lib.mkForce true; - hypervisor = lib.mkDefault "qemu"; - mem = lib.mkDefault 1024 * 4; - vcpu = lib.mkDefault 4; - optimize.enable = false; - writableStoreOverlay = "/nix/.rw-store"; - - # interfaces = flip lib.mapAttrsToList guestCfg.microvm.interfaces ( - # _: { mac, hostLink, ...}: - # { - # type = "macvtap"; - # id = "vm-${replaceStrings [ ":" ] [ "" ] mac}"; - # inherit mac; - # macvtap = { - # link = hostLink; - # mode = "bridge"; - # }; - # } - # ); - shares = - [ - { - source = "/nix/store"; - mountPoint = "/nix/.ro-store"; - tag = "ro-store"; - proto = "virtiofs"; - } - ]; - }; - # systemd.network.networks = lib.flip lib.concatMapAttrs guestCfg.microvm.interfaces ( - # name: - # { mac, ... }: - # { - # "10-${name}".matchConfig = mkForce { - # MACAddress = mac; - # }; - # } - # ); - }; } @@ -11200,95 +11645,101 @@ This section sets up all the imports that are used in the home-manager section. Again, we adapt =nix= to our needs, enable the home-manager command for non-NixOS machines (NixOS machines are using it as a module) and setting user information that I always keep the same. #+begin_src nix-ts :tangle modules/home/common/settings.nix - { self, lib, pkgs, config, ... }: + { self, outputs, lib, pkgs, config, ... }: let inherit (config.swarselsystems) mainUser flakePath isNixos isLinux; in - { - options.swarselmodules.general = lib.mkEnableOption "general nix settings"; - config = - let - nix-version = "2_30"; - in - lib.mkIf config.swarselmodules.general { - nix = lib.mkIf (!config.swarselsystems.isNixos) { - package = lib.mkForce pkgs.nixVersions."nix_${nix-version}"; - # extraOptions = '' - # plugin-files = ${pkgs.dev.nix-plugins}/lib/nix/plugins - # extra-builtins-file = ${self + /nix/extra-builtins.nix} - # ''; - extraOptions = - let - nix-plugins = pkgs.nix-plugins.override { - nixComponents = pkgs.nixVersions."nixComponents_${nix-version}"; - }; - in - '' - plugin-files = ${nix-plugins}/lib/nix/plugins + { + options.swarselmodules.general = lib.mkEnableOption "general nix settings"; + config = + let + nix-version = "2_30"; + in + lib.mkIf config.swarselmodules.general { + nix = lib.mkIf (!config.swarselsystems.isNixos) { + package = lib.mkForce pkgs.nixVersions."nix_${nix-version}"; + # extraOptions = '' + # plugin-files = ${pkgs.dev.nix-plugins}/lib/nix/plugins + # extra-builtins-file = ${self + /nix/extra-builtins.nix} + # ''; + extraOptions = + let + nix-plugins = pkgs.nix-plugins.override { + nixComponents = pkgs.nixVersions."nixComponents_${nix-version}"; + }; + in + '' + plugin-files = ${nix-plugins}/lib/nix/plugins extra-builtins-file = ${self + /nix/extra-builtins.nix} - ''; - settings = { - experimental-features = [ - "nix-command" - "flakes" - "ca-derivations" - "cgroups" - "pipe-operators" - ]; - trusted-users = [ "@wheel" "${mainUser}" ]; - connect-timeout = 5; - bash-prompt-prefix = "$SHLVL:\\w "; - bash-prompt = "$(if [[ $? -gt 0 ]]; then printf \"\"; else printf \"\"; fi)λ "; - fallback = true; - min-free = 128000000; - max-free = 1000000000; - auto-optimise-store = true; - warn-dirty = false; - max-jobs = 1; - use-cgroups = lib.mkIf isLinux true; - }; - }; + ''; + settings = { + experimental-features = [ + "nix-command" + "flakes" + "ca-derivations" + "cgroups" + "pipe-operators" + ]; + trusted-users = [ "@wheel" "${mainUser}" ]; + connect-timeout = 5; + bash-prompt-prefix = "$SHLVL:\\w "; + bash-prompt = "$(if [[ $? -gt 0 ]]; then printf \"\"; else printf \"\"; fi)λ "; + fallback = true; + min-free = 128000000; + max-free = 1000000000; + auto-optimise-store = true; + warn-dirty = false; + max-jobs = 1; + use-cgroups = lib.mkIf isLinux true; + }; + }; - nixpkgs.overlays = lib.mkIf isNixos (lib.mkForce null); + # nixpkgs.overlays = lib.mkIf isNixos (lib.mkForce null); + nixpkgs = lib.mkIf (!isNixos) { + overlays = [ outputs.overlays.default ]; + config = { + allowUnfree = true; + }; + }; - programs = { - # home-manager.enable = lib.mkIf (!isNixos) true; - man = { - enable = true; - generateCaches = true; - }; - }; + programs = { + # home-manager.enable = lib.mkIf (!isNixos) true; + man = { + enable = true; + generateCaches = true; + }; + }; - targets.genericLinux.enable = lib.mkIf (!isNixos) true; + targets.genericLinux.enable = lib.mkIf (!isNixos) true; - home = { - username = lib.mkDefault mainUser; - homeDirectory = lib.mkDefault "/home/${mainUser}"; - stateVersion = lib.mkDefault "23.05"; - keyboard.layout = "us"; - sessionVariables = { - FLAKE = "/home/${mainUser}/.dotfiles"; - }; - extraOutputsToInstall = [ - "doc" - "info" - "devdoc" - ]; - packages = lib.mkIf (!isNixos) [ - (pkgs.symlinkJoin { - name = "home-manager"; - buildInputs = [ pkgs.makeWrapper ]; - paths = [ pkgs.home-manager ]; - postBuild = '' - wrapProgram $out/bin/home-manager \ + home = { + username = lib.mkDefault mainUser; + homeDirectory = lib.mkDefault "/home/${mainUser}"; + stateVersion = lib.mkDefault "23.05"; + keyboard.layout = "us"; + sessionVariables = { + FLAKE = "/home/${mainUser}/.dotfiles"; + }; + extraOutputsToInstall = [ + "doc" + "info" + "devdoc" + ]; + packages = lib.mkIf (!isNixos) [ + (pkgs.symlinkJoin { + name = "home-manager"; + buildInputs = [ pkgs.makeWrapper ]; + paths = [ pkgs.home-manager ]; + postBuild = '' + wrapProgram $out/bin/home-manager \ --append-flags '--flake ${flakePath}#$(hostname)' - ''; - }) - ]; - }; - }; + ''; + }) + ]; + }; + }; - } + } #+end_src **** nixGL @@ -17614,7 +18065,7 @@ This program sets up a new NixOS host remotely. It also takes care of secret man #+begin_src shell :tangle files/scripts/swarsel-rebuild.sh set -eo pipefail - target_config="chaostheatre" + target_config="hotel" target_user="swarsel" function help_and_exit() { @@ -17625,7 +18076,7 @@ This program sets up a new NixOS host remotely. It also takes care of secret man echo echo "ARGS:" echo " -n specify nixos config to build." - echo " Default: chaostheatre" + echo " Default: hotel" echo " -u specify user to deploy for." echo " Default: swarsel" echo " -h | --help Print this help." @@ -17734,8 +18185,8 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f #+begin_src shell :tangle files/scripts/swarsel-install.sh set -eo pipefail - target_config="chaostheatre" - target_hostname="chaostheatre" + target_config="hotel" + target_hostname="hotel" target_user="swarsel" persist_dir="" target_disk="/dev/vda" @@ -17749,7 +18200,7 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f echo echo "ARGS:" echo " -n specify the nixos config to deploy." - echo " Default: chaostheatre" + echo " Default: hotel" echo " -d specify disk to install on." echo " Default: /dev/vda" echo " -u specify user to deploy for." @@ -17886,7 +18337,7 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f fi green "Setting up disk ..." - if [[ $target_config == "chaostheatre" ]]; then + if [[ $target_config == "hotel" ]]; then sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/v1.10.0 -- --mode destroy,format,mount --flake .#"$target_config" --yes-wipe-all-disks --arg diskDevice "$target_disk" else sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount --flake .#"$target_config" --yes-wipe-all-disks @@ -17935,7 +18386,7 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f #+begin_src shell :tangle files/scripts/swarsel-postinstall.sh set -eo pipefail - target_config="chaostheatre" + target_config="hotel" target_user="swarsel" function help_and_exit() { @@ -17947,8 +18398,8 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f echo "ARGS:" echo " -d specify disk to install on." echo " -n specify the nixos config to deploy." - echo " Default: chaostheatre" - echo " Default: chaostheatre" + echo " Default: hotel" + echo " Default: hotel" echo " -u specify user to deploy for." echo " Default: swarsel" echo " -h | --help Print this help." @@ -18726,16 +19177,16 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a } #+end_src -**** Chaostheatre +**** Hotel :PROPERTIES: :CUSTOM_ID: h:b79fbb59-9cf2-48eb-b469-2589223dda95 :END: -#+begin_src nix-ts :tangle profiles/nixos/chaostheatre/default.nix :mkdirp yes +#+begin_src nix-ts :tangle profiles/nixos/hotel/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselprofiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host"; - config = lib.mkIf config.swarselprofiles.chaostheatre { + options.swarselprofiles.hotel = lib.mkEnableOption "is this a hotel host"; + config = lib.mkIf config.swarselprofiles.hotel { swarselmodules = { packages = lib.mkForce true; general = lib.mkForce true; @@ -19109,16 +19560,16 @@ This holds modules that are to be used on most hosts. These are also the most im #+end_src -**** Chaostheatre +**** Hotel :PROPERTIES: :CUSTOM_ID: h:36a0209f-2c17-4808-a1d0-a9e1920c307a :END: -#+begin_src nix-ts :tangle profiles/home/chaostheatre/default.nix :mkdirp yes +#+begin_src nix-ts :tangle profiles/home/hotel/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselprofiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host"; - config = lib.mkIf config.swarselprofiles.chaostheatre { + options.swarselprofiles.hotel = lib.mkEnableOption "is this a hotel host"; + config = lib.mkIf config.swarselprofiles.hotel { swarselmodules = { packages = lib.mkForce true; ownpackages = lib.mkForce true; @@ -24965,7 +25416,7 @@ Here lies defined the readme for GitHub and Forgejo: nix run --experimental-features 'nix-command flakes' github:Swarsel/.dotfiles#swarsel-rebuild -- -u ``` - This will activate the `chaostheatre` configuration on your system, which is a de-facto mirror of my main configuration with secret-based settings removed. + This will activate the `hotel` configuration on your system, which is a de-facto mirror of my main configuration with secret-based settings removed. Please keep in mind that this limited installer will make local changes to the cloned repository in order to be able to install it (otherwise the builder would fail at fetching my private secrets repository). As such, this should only be used to evaluate the system - if you want to use it longterm, you will need to create a fork and make some changes. @@ -25213,7 +25664,7 @@ builtins.listToAttrs converts a list of name-value pairs into an attribute set. #+end_src #+RESULTS: -: { bakery = "directory"; chaostheatre = "directory"; milkywell = "directory"; moonside = "directory"; pyramid = "directory"; toto = "directory"; winters = "directory"; } +: { bakery = "directory"; hotel= "directory"; milkywell = "directory"; moonside = "directory"; pyramid = "directory"; toto = "directory"; winters = "directory"; } ** nixpkgs.lib.recursiveUpdate :PROPERTIES: :CUSTOM_ID: h:2227ba24-e3a1-40ba-8fb8-4cab5210692a diff --git a/flake.lock b/flake.lock index b90a12e..b045d34 100644 --- a/flake.lock +++ b/flake.lock @@ -538,6 +538,21 @@ "type": "github" } }, + "blank": { + "locked": { + "lastModified": 1625557891, + "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", + "owner": "divnix", + "repo": "blank", + "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "blank", + "type": "github" + } + }, "crane": { "locked": { "lastModified": 1754269165, @@ -585,11 +600,11 @@ }, "crane_12": { "locked": { - "lastModified": 1754269165, - "narHash": "sha256-0tcS8FHd4QjbCVoxN9jI+PjHgA4vc/IjkUSp+N3zy0U=", + "lastModified": 1750266157, + "narHash": "sha256-tL42YoNg9y30u7zAqtoGDNdTyXTi8EALDeCB13FtbQA=", "owner": "ipetkov", "repo": "crane", - "rev": "444e81206df3f7d92780680e45858e31d2f07a08", + "rev": "e37c943371b73ed87faf33f7583860f81f1d5a48", "type": "github" }, "original": { @@ -658,7 +673,7 @@ "type": "github" } }, - "crane_2": { + "crane_17": { "locked": { "lastModified": 1754269165, "narHash": "sha256-0tcS8FHd4QjbCVoxN9jI+PjHgA4vc/IjkUSp+N3zy0U=", @@ -673,6 +688,33 @@ "type": "github" } }, + "crane_2": { + "inputs": { + "flake-compat": "flake-compat_4", + "flake-utils": "flake-utils_5", + "nixpkgs": [ + "nixos-extra-modules", + "nixt", + "std", + "paisano-mdbook-preprocessor", + "nixpkgs" + ], + "rust-overlay": "rust-overlay_2" + }, + "locked": { + "lastModified": 1676162383, + "narHash": "sha256-krUCKdz7ebHlFYm/A7IbKDnj2ZmMMm3yIEQcooqm7+E=", + "owner": "ipetkov", + "repo": "crane", + "rev": "6fb400ec631b22ccdbc7090b38207f7fb5cfb5f2", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, "crane_3": { "locked": { "lastModified": 1754269165, @@ -735,11 +777,11 @@ }, "crane_7": { "locked": { - "lastModified": 1750266157, - "narHash": "sha256-tL42YoNg9y30u7zAqtoGDNdTyXTi8EALDeCB13FtbQA=", + "lastModified": 1754269165, + "narHash": "sha256-0tcS8FHd4QjbCVoxN9jI+PjHgA4vc/IjkUSp+N3zy0U=", "owner": "ipetkov", "repo": "crane", - "rev": "e37c943371b73ed87faf33f7583860f81f1d5a48", + "rev": "444e81206df3f7d92780680e45858e31d2f07a08", "type": "github" }, "original": { @@ -804,7 +846,6 @@ "swarsel", "swarsel", "swarsel", - "swarsel", "nix-topology", "nixpkgs" ] @@ -830,7 +871,6 @@ "swarsel", "swarsel", "swarsel", - "swarsel", "nixpkgs" ] }, @@ -855,7 +895,6 @@ "swarsel", "swarsel", "swarsel", - "swarsel", "nix-topology", "nixpkgs" ] @@ -882,7 +921,6 @@ "swarsel", "swarsel", "swarsel", - "swarsel", "nixpkgs" ] }, @@ -908,7 +946,6 @@ "swarsel", "swarsel", "swarsel", - "swarsel", "nix-topology", "nixpkgs" ] @@ -936,7 +973,6 @@ "swarsel", "swarsel", "swarsel", - "swarsel", "nixpkgs" ] }, @@ -955,6 +991,60 @@ } }, "devshell_16": { + "inputs": { + "nixpkgs": [ + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "nix-topology", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1728330715, + "narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=", + "owner": "numtide", + "repo": "devshell", + "rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "devshell_17": { + "inputs": { + "nixpkgs": [ + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1741473158, + "narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=", + "owner": "numtide", + "repo": "devshell", + "rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "devshell_18": { "inputs": { "nixpkgs": [ "swarsel", @@ -1006,16 +1096,16 @@ "devshell_3": { "inputs": { "nixpkgs": [ - "swarsel", + "nixos-extra-modules", "nixpkgs" ] }, "locked": { - "lastModified": 1741473158, - "narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=", + "lastModified": 1735644329, + "narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=", "owner": "numtide", "repo": "devshell", - "rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0", + "rev": "f7795ede5b02664b57035b3b757876703e2c3eac", "type": "github" }, "original": { @@ -1026,18 +1116,25 @@ }, "devshell_4": { "inputs": { + "flake-utils": [ + "nixos-extra-modules", + "nixt", + "std", + "flake-utils" + ], "nixpkgs": [ - "swarsel", - "nix-topology", + "nixos-extra-modules", + "nixt", + "std", "nixpkgs" ] }, "locked": { - "lastModified": 1728330715, - "narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=", + "lastModified": 1682700442, + "narHash": "sha256-qjaAAcCYgp1pBBG7mY9z95ODUBZMtUpf0Qp3Gt/Wha0=", "owner": "numtide", "repo": "devshell", - "rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef", + "rev": "fb6673fe9fe4409e3f43ca86968261e970918a83", "type": "github" }, "original": { @@ -1049,7 +1146,6 @@ "devshell_5": { "inputs": { "nixpkgs": [ - "swarsel", "swarsel", "nixpkgs" ] @@ -1071,7 +1167,6 @@ "devshell_6": { "inputs": { "nixpkgs": [ - "swarsel", "swarsel", "nix-topology", "nixpkgs" @@ -1094,7 +1189,6 @@ "devshell_7": { "inputs": { "nixpkgs": [ - "swarsel", "swarsel", "swarsel", "nixpkgs" @@ -1117,7 +1211,6 @@ "devshell_8": { "inputs": { "nixpkgs": [ - "swarsel", "swarsel", "swarsel", "nix-topology", @@ -1144,7 +1237,6 @@ "swarsel", "swarsel", "swarsel", - "swarsel", "nixpkgs" ] }, @@ -1350,6 +1442,38 @@ "type": "github" } }, + "dmerge": { + "inputs": { + "haumea": "haumea", + "namaka": "namaka", + "nixlib": [ + "nixos-extra-modules", + "nixt", + "std", + "nixpkgs" + ], + "yants": [ + "nixos-extra-modules", + "nixt", + "std", + "yants" + ] + }, + "locked": { + "lastModified": 1684178600, + "narHash": "sha256-EtSQcCHRQUBBEj4vbYU0vgPUYiKP261ero5k1QfQ3Bc=", + "owner": "divnix", + "repo": "dmerge", + "rev": "ac9932f26325afac5baa59cf6478432d17762a4e", + "type": "github" + }, + "original": { + "owner": "divnix", + "ref": "0.2.0", + "repo": "dmerge", + "type": "github" + } + }, "emacs-overlay": { "inputs": { "nixpkgs": [ @@ -1548,6 +1672,25 @@ "type": "github" } }, + "fenix": { + "inputs": { + "nixpkgs": "nixpkgs_4", + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1677306201, + "narHash": "sha256-VZ9x7qdTosFvVsrpgFHrtYfT6PU3yMIs7NRYn9ELapI=", + "owner": "nix-community", + "repo": "fenix", + "rev": "0923f0c162f65ae40261ec940406049726cfeab4", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, "firefox-gnome-theme": { "flake": false, "locked": { @@ -1695,11 +1838,11 @@ "flake-compat_10": { "flake": false, "locked": { - "lastModified": 1733328505, - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -1711,11 +1854,11 @@ "flake-compat_11": { "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "owner": "edolstra", "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { @@ -1727,11 +1870,11 @@ "flake-compat_12": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -1741,22 +1884,6 @@ } }, "flake-compat_13": { - "flake": false, - "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_14": { "flake": false, "locked": { "lastModified": 1733328505, @@ -1772,7 +1899,7 @@ "type": "github" } }, - "flake-compat_15": { + "flake-compat_14": { "flake": false, "locked": { "lastModified": 1747046372, @@ -1788,7 +1915,7 @@ "type": "github" } }, - "flake-compat_16": { + "flake-compat_15": { "flake": false, "locked": { "lastModified": 1696426674, @@ -1804,7 +1931,7 @@ "type": "github" } }, - "flake-compat_17": { + "flake-compat_16": { "flake": false, "locked": { "lastModified": 1747046372, @@ -1820,7 +1947,7 @@ "type": "github" } }, - "flake-compat_18": { + "flake-compat_17": { "flake": false, "locked": { "lastModified": 1733328505, @@ -1836,7 +1963,7 @@ "type": "github" } }, - "flake-compat_19": { + "flake-compat_18": { "flake": false, "locked": { "lastModified": 1747046372, @@ -1852,6 +1979,22 @@ "type": "github" } }, + "flake-compat_19": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-compat_2": { "flake": false, "locked": { @@ -1871,11 +2014,11 @@ "flake-compat_20": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -1887,11 +2030,11 @@ "flake-compat_21": { "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "owner": "edolstra", "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "type": "github" }, "original": { @@ -1903,11 +2046,11 @@ "flake-compat_22": { "flake": false, "locked": { - "lastModified": 1733328505, - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -1917,6 +2060,22 @@ } }, "flake-compat_23": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_24": { "flake": false, "locked": { "lastModified": 1747046372, @@ -1932,39 +2091,7 @@ "type": "github" } }, - "flake-compat_24": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, "flake-compat_25": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_26": { "flake": false, "locked": { "lastModified": 1733328505, @@ -1980,7 +2107,7 @@ "type": "github" } }, - "flake-compat_27": { + "flake-compat_26": { "flake": false, "locked": { "lastModified": 1747046372, @@ -1996,6 +2123,22 @@ "type": "github" } }, + "flake-compat_27": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-compat_28": { "flake": false, "locked": { @@ -2013,6 +2156,54 @@ } }, "flake-compat_29": { + "flake": false, + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_30": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_31": { "flake": false, "locked": { "lastModified": 1696426674, @@ -2028,14 +2219,14 @@ "type": "github" } }, - "flake-compat_3": { + "flake-compat_32": { "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "owner": "edolstra", "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { @@ -2047,11 +2238,11 @@ "flake-compat_4": { "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", "owner": "edolstra", "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { @@ -2159,6 +2350,28 @@ } }, "flake-parts_10": { + "inputs": { + "nixpkgs-lib": [ + "swarsel", + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_11": { "inputs": { "nixpkgs-lib": [ "swarsel", @@ -2180,9 +2393,9 @@ "type": "github" } }, - "flake-parts_11": { + "flake-parts_12": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_5" + "nixpkgs-lib": "nixpkgs-lib_6" }, "locked": { "lastModified": 1759362264, @@ -2198,7 +2411,7 @@ "type": "github" } }, - "flake-parts_12": { + "flake-parts_13": { "inputs": { "nixpkgs-lib": [ "swarsel", @@ -2221,9 +2434,9 @@ "type": "github" } }, - "flake-parts_13": { + "flake-parts_14": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_6" + "nixpkgs-lib": "nixpkgs-lib_7" }, "locked": { "lastModified": 1719994518, @@ -2238,7 +2451,7 @@ "type": "indirect" } }, - "flake-parts_14": { + "flake-parts_15": { "inputs": { "nixpkgs-lib": [ "swarsel", @@ -2261,7 +2474,7 @@ "type": "github" } }, - "flake-parts_15": { + "flake-parts_16": { "inputs": { "nixpkgs-lib": [ "swarsel", @@ -2284,25 +2497,25 @@ "type": "github" } }, - "flake-parts_16": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_7" - }, - "locked": { - "lastModified": 1756770412, - "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "4524271976b625a4a605beefd893f270620fd751", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, "flake-parts_17": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_8" + }, + "locked": { + "lastModified": 1756770412, + "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "4524271976b625a4a605beefd893f270620fd751", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_18": { "inputs": { "nixpkgs-lib": [ "swarsel", @@ -2326,9 +2539,9 @@ "type": "github" } }, - "flake-parts_18": { + "flake-parts_19": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_8" + "nixpkgs-lib": "nixpkgs-lib_9" }, "locked": { "lastModified": 1719994518, @@ -2343,30 +2556,6 @@ "type": "indirect" } }, - "flake-parts_19": { - "inputs": { - "nixpkgs-lib": [ - "swarsel", - "swarsel", - "swarsel", - "nur", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, "flake-parts_2": { "inputs": { "nixpkgs-lib": [ @@ -2394,16 +2583,16 @@ "swarsel", "swarsel", "swarsel", - "stylix", + "nur", "nixpkgs" ] }, "locked": { - "lastModified": 1756770412, - "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "4524271976b625a4a605beefd893f270620fd751", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", "type": "github" }, "original": { @@ -2414,7 +2603,13 @@ }, "flake-parts_21": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_9" + "nixpkgs-lib": [ + "swarsel", + "swarsel", + "swarsel", + "stylix", + "nixpkgs" + ] }, "locked": { "lastModified": 1756770412, @@ -2431,6 +2626,24 @@ } }, "flake-parts_22": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_10" + }, + "locked": { + "lastModified": 1756770412, + "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "4524271976b625a4a605beefd893f270620fd751", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_23": { "inputs": { "nixpkgs-lib": [ "swarsel", @@ -2455,9 +2668,9 @@ "type": "github" } }, - "flake-parts_23": { + "flake-parts_24": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_10" + "nixpkgs-lib": "nixpkgs-lib_11" }, "locked": { "lastModified": 1719994518, @@ -2472,7 +2685,7 @@ "type": "indirect" } }, - "flake-parts_24": { + "flake-parts_25": { "inputs": { "nixpkgs-lib": [ "swarsel", @@ -2497,7 +2710,7 @@ "type": "github" } }, - "flake-parts_25": { + "flake-parts_26": { "inputs": { "nixpkgs-lib": [ "swarsel", @@ -2522,9 +2735,9 @@ "type": "github" } }, - "flake-parts_26": { + "flake-parts_27": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_11" + "nixpkgs-lib": "nixpkgs-lib_12" }, "locked": { "lastModified": 1754487366, @@ -2540,7 +2753,7 @@ "type": "github" } }, - "flake-parts_27": { + "flake-parts_28": { "inputs": { "nixpkgs-lib": [ "swarsel", @@ -2566,9 +2779,9 @@ "type": "github" } }, - "flake-parts_28": { + "flake-parts_29": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_12" + "nixpkgs-lib": "nixpkgs-lib_13" }, "locked": { "lastModified": 1719994518, @@ -2583,7 +2796,25 @@ "type": "indirect" } }, - "flake-parts_29": { + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_2" + }, + "locked": { + "lastModified": 1738453229, + "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_30": { "inputs": { "nixpkgs-lib": [ "swarsel", @@ -2609,24 +2840,7 @@ "type": "github" } }, - "flake-parts_3": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_2" - }, - "locked": { - "lastModified": 1719994518, - "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", - "type": "github" - }, - "original": { - "id": "flake-parts", - "type": "indirect" - } - }, - "flake-parts_30": { + "flake-parts_31": { "inputs": { "nixpkgs-lib": [ "swarsel", @@ -2652,126 +2866,10 @@ "type": "github" } }, - "flake-parts_31": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_13" - }, - "locked": { - "lastModified": 1751413152, - "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, "flake-parts_32": { - "inputs": { - "nixpkgs-lib": [ - "swarsel", - "swarsel", - "swarsel", - "swarsel", - "swarsel", - "swarsel", - "lanzaboote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1749398372, - "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_33": { "inputs": { "nixpkgs-lib": "nixpkgs-lib_14" }, - "locked": { - "lastModified": 1719994518, - "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", - "type": "github" - }, - "original": { - "id": "flake-parts", - "type": "indirect" - } - }, - "flake-parts_34": { - "inputs": { - "nixpkgs-lib": [ - "swarsel", - "swarsel", - "swarsel", - "swarsel", - "swarsel", - "swarsel", - "nur", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_35": { - "inputs": { - "nixpkgs-lib": [ - "swarsel", - "swarsel", - "swarsel", - "swarsel", - "swarsel", - "swarsel", - "stylix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1743550720, - "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "c621e8422220273271f52058f618c94e405bb0f5", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_36": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_15" - }, "locked": { "lastModified": 1751413152, "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", @@ -2786,7 +2884,123 @@ "type": "github" } }, + "flake-parts_33": { + "inputs": { + "nixpkgs-lib": [ + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "lanzaboote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1749398372, + "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_34": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_15" + }, + "locked": { + "lastModified": 1719994518, + "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", + "type": "github" + }, + "original": { + "id": "flake-parts", + "type": "indirect" + } + }, + "flake-parts_35": { + "inputs": { + "nixpkgs-lib": [ + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_36": { + "inputs": { + "nixpkgs-lib": [ + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1743550720, + "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "c621e8422220273271f52058f618c94e405bb0f5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-parts_37": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_16" + }, + "locked": { + "lastModified": 1751413152, + "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_38": { "inputs": { "nixpkgs-lib": [ "swarsel", @@ -2814,9 +3028,9 @@ "type": "github" } }, - "flake-parts_38": { + "flake-parts_39": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_16" + "nixpkgs-lib": "nixpkgs-lib_17" }, "locked": { "lastModified": 1719994518, @@ -2831,56 +3045,52 @@ "type": "indirect" } }, - "flake-parts_39": { - "inputs": { - "nixpkgs-lib": [ - "swarsel", - "swarsel", - "swarsel", - "swarsel", - "swarsel", - "swarsel", - "swarsel", - "nur", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, "flake-parts_4": { "inputs": { - "nixpkgs-lib": [ - "nur", - "nixpkgs" - ] + "nixpkgs-lib": "nixpkgs-lib_3" }, "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "lastModified": 1719994518, + "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" + "id": "flake-parts", + "type": "indirect" } }, "flake-parts_40": { + "inputs": { + "nixpkgs-lib": [ + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_41": { "inputs": { "nixpkgs-lib": [ "swarsel", @@ -2908,9 +3118,9 @@ "type": "github" } }, - "flake-parts_41": { + "flake-parts_42": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_17" + "nixpkgs-lib": "nixpkgs-lib_18" }, "locked": { "lastModified": 1754487366, @@ -2926,24 +3136,6 @@ "type": "github" } }, - "flake-parts_42": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_18" - }, - "locked": { - "lastModified": 1756770412, - "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "4524271976b625a4a605beefd893f270620fd751", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, "flake-parts_43": { "inputs": { "nixpkgs-lib": "nixpkgs-lib_19" @@ -2967,11 +3159,11 @@ "nixpkgs-lib": "nixpkgs-lib_20" }, "locked": { - "lastModified": 1759362264, - "narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=", + "lastModified": 1756770412, + "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "758cf7296bee11f1706a574c77d072b8a7baa881", + "rev": "4524271976b625a4a605beefd893f270620fd751", "type": "github" }, "original": { @@ -3038,6 +3230,24 @@ "inputs": { "nixpkgs-lib": "nixpkgs-lib_24" }, + "locked": { + "lastModified": 1759362264, + "narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "758cf7296bee11f1706a574c77d072b8a7baa881", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_49": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_25" + }, "locked": { "lastModified": 1760948891, "narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=", @@ -3052,9 +3262,30 @@ "type": "github" } }, - "flake-parts_49": { + "flake-parts_5": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_25" + "nixpkgs-lib": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_50": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_26" }, "locked": { "lastModified": 1759362264, @@ -3070,7 +3301,7 @@ "type": "github" } }, - "flake-parts_5": { + "flake-parts_6": { "inputs": { "nixpkgs-lib": [ "stylix", @@ -3091,9 +3322,9 @@ "type": "github" } }, - "flake-parts_6": { + "flake-parts_7": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_3" + "nixpkgs-lib": "nixpkgs-lib_4" }, "locked": { "lastModified": 1759362264, @@ -3109,7 +3340,7 @@ "type": "github" } }, - "flake-parts_7": { + "flake-parts_8": { "inputs": { "nixpkgs-lib": [ "swarsel", @@ -3131,9 +3362,9 @@ "type": "github" } }, - "flake-parts_8": { + "flake-parts_9": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_4" + "nixpkgs-lib": "nixpkgs-lib_5" }, "locked": { "lastModified": 1719994518, @@ -3148,28 +3379,6 @@ "type": "indirect" } }, - "flake-parts_9": { - "inputs": { - "nixpkgs-lib": [ - "swarsel", - "nur", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, "flake-utils": { "inputs": { "systems": "systems" @@ -3190,7 +3399,7 @@ }, "flake-utils_10": { "inputs": { - "systems": "systems_16" + "systems": "systems_12" }, "locked": { "lastModified": 1726560853, @@ -3208,7 +3417,7 @@ }, "flake-utils_11": { "inputs": { - "systems": "systems_17" + "systems": "systems_13" }, "locked": { "lastModified": 1731533236, @@ -3226,7 +3435,7 @@ }, "flake-utils_12": { "inputs": { - "systems": "systems_20" + "systems": "systems_16" }, "locked": { "lastModified": 1726560853, @@ -3244,7 +3453,7 @@ }, "flake-utils_13": { "inputs": { - "systems": "systems_21" + "systems": "systems_17" }, "locked": { "lastModified": 1731533236, @@ -3262,7 +3471,7 @@ }, "flake-utils_14": { "inputs": { - "systems": "systems_24" + "systems": "systems_20" }, "locked": { "lastModified": 1726560853, @@ -3280,7 +3489,7 @@ }, "flake-utils_15": { "inputs": { - "systems": "systems_25" + "systems": "systems_21" }, "locked": { "lastModified": 1731533236, @@ -3298,7 +3507,7 @@ }, "flake-utils_16": { "inputs": { - "systems": "systems_28" + "systems": "systems_24" }, "locked": { "lastModified": 1726560853, @@ -3316,7 +3525,7 @@ }, "flake-utils_17": { "inputs": { - "systems": "systems_29" + "systems": "systems_25" }, "locked": { "lastModified": 1731533236, @@ -3334,7 +3543,7 @@ }, "flake-utils_18": { "inputs": { - "systems": "systems_31" + "systems": "systems_28" }, "locked": { "lastModified": 1726560853, @@ -3352,7 +3561,7 @@ }, "flake-utils_19": { "inputs": { - "systems": "systems_32" + "systems": "systems_29" }, "locked": { "lastModified": 1731533236, @@ -3388,14 +3597,14 @@ }, "flake-utils_20": { "inputs": { - "systems": "systems_36" + "systems": "systems_31" }, "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "type": "github" }, "original": { @@ -3406,7 +3615,7 @@ }, "flake-utils_21": { "inputs": { - "systems": "systems_39" + "systems": "systems_32" }, "locked": { "lastModified": 1731533236, @@ -3424,7 +3633,7 @@ }, "flake-utils_22": { "inputs": { - "systems": "systems_43" + "systems": "systems_36" }, "locked": { "lastModified": 1731533236, @@ -3442,7 +3651,7 @@ }, "flake-utils_23": { "inputs": { - "systems": "systems_47" + "systems": "systems_39" }, "locked": { "lastModified": 1731533236, @@ -3460,7 +3669,7 @@ }, "flake-utils_24": { "inputs": { - "systems": "systems_51" + "systems": "systems_43" }, "locked": { "lastModified": 1731533236, @@ -3478,7 +3687,7 @@ }, "flake-utils_25": { "inputs": { - "systems": "systems_56" + "systems": "systems_47" }, "locked": { "lastModified": 1731533236, @@ -3496,7 +3705,7 @@ }, "flake-utils_26": { "inputs": { - "systems": "systems_61" + "systems": "systems_51" }, "locked": { "lastModified": 1731533236, @@ -3513,6 +3722,42 @@ } }, "flake-utils_27": { + "inputs": { + "systems": "systems_56" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_28": { + "inputs": { + "systems": "systems_61" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_29": { "inputs": { "systems": "systems_66" }, @@ -3549,6 +3794,36 @@ } }, "flake-utils_4": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_5": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_6": { "inputs": { "systems": "systems_6" }, @@ -3566,7 +3841,7 @@ "type": "github" } }, - "flake-utils_5": { + "flake-utils_7": { "inputs": { "systems": "systems_7" }, @@ -3584,7 +3859,7 @@ "type": "github" } }, - "flake-utils_6": { + "flake-utils_8": { "inputs": { "systems": "systems_8" }, @@ -3602,45 +3877,9 @@ "type": "github" } }, - "flake-utils_7": { - "inputs": { - "systems": "systems_11" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_8": { - "inputs": { - "systems": "systems_12" - }, - "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "flake-utils_9": { "inputs": { - "systems": "systems_13" + "systems": "systems_11" }, "locked": { "lastModified": 1731533236, @@ -3786,7 +4025,7 @@ }, "fw-fanctrl": { "inputs": { - "flake-compat": "flake-compat_10", + "flake-compat": "flake-compat_13", "nixpkgs": [ "swarsel", "swarsel", @@ -3811,7 +4050,7 @@ }, "fw-fanctrl_2": { "inputs": { - "flake-compat": "flake-compat_14", + "flake-compat": "flake-compat_17", "nixpkgs": [ "swarsel", "swarsel", @@ -3837,7 +4076,7 @@ }, "fw-fanctrl_3": { "inputs": { - "flake-compat": "flake-compat_18", + "flake-compat": "flake-compat_21", "nixpkgs": [ "swarsel", "swarsel", @@ -3864,7 +4103,7 @@ }, "fw-fanctrl_4": { "inputs": { - "flake-compat": "flake-compat_22", + "flake-compat": "flake-compat_25", "nixpkgs": [ "swarsel", "swarsel", @@ -3892,7 +4131,7 @@ }, "fw-fanctrl_5": { "inputs": { - "flake-compat": "flake-compat_26", + "flake-compat": "flake-compat_29", "nixpkgs": [ "swarsel", "swarsel", @@ -3946,9 +4185,7 @@ "nixpkgs": [ "swarsel", "swarsel", - "swarsel", - "lanzaboote", - "pre-commit-hooks-nix", + "pre-commit-hooks", "nixpkgs" ] }, @@ -3972,8 +4209,8 @@ "swarsel", "swarsel", "swarsel", - "nix-topology", - "pre-commit-hooks", + "lanzaboote", + "pre-commit-hooks-nix", "nixpkgs" ] }, @@ -3997,6 +4234,7 @@ "swarsel", "swarsel", "swarsel", + "nix-topology", "pre-commit-hooks", "nixpkgs" ] @@ -4021,9 +4259,7 @@ "swarsel", "swarsel", "swarsel", - "swarsel", - "lanzaboote", - "pre-commit-hooks-nix", + "pre-commit-hooks", "nixpkgs" ] }, @@ -4048,8 +4284,8 @@ "swarsel", "swarsel", "swarsel", - "nix-topology", - "pre-commit-hooks", + "lanzaboote", + "pre-commit-hooks-nix", "nixpkgs" ] }, @@ -4074,6 +4310,7 @@ "swarsel", "swarsel", "swarsel", + "nix-topology", "pre-commit-hooks", "nixpkgs" ] @@ -4099,9 +4336,7 @@ "swarsel", "swarsel", "swarsel", - "swarsel", - "lanzaboote", - "pre-commit-hooks-nix", + "pre-commit-hooks", "nixpkgs" ] }, @@ -4127,8 +4362,8 @@ "swarsel", "swarsel", "swarsel", - "nix-topology", - "pre-commit-hooks", + "lanzaboote", + "pre-commit-hooks-nix", "nixpkgs" ] }, @@ -4154,6 +4389,7 @@ "swarsel", "swarsel", "swarsel", + "nix-topology", "pre-commit-hooks", "nixpkgs" ] @@ -4180,9 +4416,7 @@ "swarsel", "swarsel", "swarsel", - "swarsel", - "lanzaboote", - "pre-commit-hooks-nix", + "pre-commit-hooks", "nixpkgs" ] }, @@ -4231,8 +4465,8 @@ "swarsel", "swarsel", "swarsel", - "nix-topology", - "pre-commit-hooks", + "lanzaboote", + "pre-commit-hooks-nix", "nixpkgs" ] }, @@ -4259,6 +4493,7 @@ "swarsel", "swarsel", "swarsel", + "nix-topology", "pre-commit-hooks", "nixpkgs" ] @@ -4278,6 +4513,33 @@ } }, "gitignore_22": { + "inputs": { + "nixpkgs": [ + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_23": { "inputs": { "nixpkgs": [ "swarsel", @@ -4306,7 +4568,7 @@ "type": "github" } }, - "gitignore_23": { + "gitignore_24": { "inputs": { "nixpkgs": [ "swarsel", @@ -4335,7 +4597,7 @@ "type": "github" } }, - "gitignore_24": { + "gitignore_25": { "inputs": { "nixpkgs": [ "swarsel", @@ -4366,6 +4628,7 @@ "gitignore_3": { "inputs": { "nixpkgs": [ + "nixos-extra-modules", "pre-commit-hooks", "nixpkgs" ] @@ -4385,6 +4648,27 @@ } }, "gitignore_4": { + "inputs": { + "nixpkgs": [ + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_5": { "inputs": { "nixpkgs": [ "swarsel", @@ -4407,33 +4691,11 @@ "type": "github" } }, - "gitignore_5": { - "inputs": { - "nixpkgs": [ - "swarsel", - "nix-topology", - "pre-commit-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, "gitignore_6": { "inputs": { "nixpkgs": [ "swarsel", + "nix-topology", "pre-commit-hooks", "nixpkgs" ] @@ -4456,9 +4718,7 @@ "inputs": { "nixpkgs": [ "swarsel", - "swarsel", - "lanzaboote", - "pre-commit-hooks-nix", + "pre-commit-hooks", "nixpkgs" ] }, @@ -4481,8 +4741,8 @@ "nixpkgs": [ "swarsel", "swarsel", - "nix-topology", - "pre-commit-hooks", + "lanzaboote", + "pre-commit-hooks-nix", "nixpkgs" ] }, @@ -4505,6 +4765,7 @@ "nixpkgs": [ "swarsel", "swarsel", + "nix-topology", "pre-commit-hooks", "nixpkgs" ] @@ -4659,6 +4920,30 @@ "type": "github" } }, + "haumea": { + "inputs": { + "nixpkgs": [ + "nixos-extra-modules", + "nixt", + "std", + "dmerge", + "nixlib" + ] + }, + "locked": { + "lastModified": 1681176209, + "narHash": "sha256-bJLDun6esIyWtwRVXcsgzGbh4UKu8wJDrPgykqPyzmg=", + "owner": "nix-community", + "repo": "haumea", + "rev": "b915b66b27da3a595d77b139e945bb0a2fcac926", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "haumea", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -5165,6 +5450,29 @@ "type": "github" } }, + "incl": { + "inputs": { + "nixlib": [ + "nixos-extra-modules", + "nixt", + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1669263024, + "narHash": "sha256-E/+23NKtxAqYG/0ydYgxlgarKnxmDbg6rCMWnOBqn9Q=", + "owner": "divnix", + "repo": "incl", + "rev": "ce7bebaee048e4cd7ebdb4cee7885e00c4e2abca", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "incl", + "type": "github" + } + }, "lanzaboote": { "inputs": { "crane": "crane", @@ -5190,12 +5498,12 @@ }, "lanzaboote_2": { "inputs": { - "crane": "crane_2", - "flake-compat": "flake-compat_4", - "flake-parts": "flake-parts_7", - "nixpkgs": "nixpkgs_9", + "crane": "crane_3", + "flake-compat": "flake-compat_7", + "flake-parts": "flake-parts_8", + "nixpkgs": "nixpkgs_10", "pre-commit-hooks-nix": "pre-commit-hooks-nix_2", - "rust-overlay": "rust-overlay_2" + "rust-overlay": "rust-overlay_3" }, "locked": { "lastModified": 1756744479, @@ -5213,12 +5521,12 @@ }, "lanzaboote_3": { "inputs": { - "crane": "crane_3", - "flake-compat": "flake-compat_7", - "flake-parts": "flake-parts_12", - "nixpkgs": "nixpkgs_17", + "crane": "crane_4", + "flake-compat": "flake-compat_10", + "flake-parts": "flake-parts_13", + "nixpkgs": "nixpkgs_18", "pre-commit-hooks-nix": "pre-commit-hooks-nix_3", - "rust-overlay": "rust-overlay_3" + "rust-overlay": "rust-overlay_4" }, "locked": { "lastModified": 1756744479, @@ -5236,12 +5544,12 @@ }, "lanzaboote_4": { "inputs": { - "crane": "crane_4", - "flake-compat": "flake-compat_11", - "flake-parts": "flake-parts_17", - "nixpkgs": "nixpkgs_25", + "crane": "crane_5", + "flake-compat": "flake-compat_14", + "flake-parts": "flake-parts_18", + "nixpkgs": "nixpkgs_26", "pre-commit-hooks-nix": "pre-commit-hooks-nix_4", - "rust-overlay": "rust-overlay_4" + "rust-overlay": "rust-overlay_5" }, "locked": { "lastModified": 1756744479, @@ -5259,12 +5567,12 @@ }, "lanzaboote_5": { "inputs": { - "crane": "crane_5", - "flake-compat": "flake-compat_15", - "flake-parts": "flake-parts_22", - "nixpkgs": "nixpkgs_33", + "crane": "crane_6", + "flake-compat": "flake-compat_18", + "flake-parts": "flake-parts_23", + "nixpkgs": "nixpkgs_34", "pre-commit-hooks-nix": "pre-commit-hooks-nix_5", - "rust-overlay": "rust-overlay_5" + "rust-overlay": "rust-overlay_6" }, "locked": { "lastModified": 1756744479, @@ -5282,12 +5590,12 @@ }, "lanzaboote_6": { "inputs": { - "crane": "crane_6", - "flake-compat": "flake-compat_19", - "flake-parts": "flake-parts_27", - "nixpkgs": "nixpkgs_41", + "crane": "crane_7", + "flake-compat": "flake-compat_22", + "flake-parts": "flake-parts_28", + "nixpkgs": "nixpkgs_42", "pre-commit-hooks-nix": "pre-commit-hooks-nix_6", - "rust-overlay": "rust-overlay_6" + "rust-overlay": "rust-overlay_7" }, "locked": { "lastModified": 1754297745, @@ -5305,12 +5613,12 @@ }, "lanzaboote_7": { "inputs": { - "crane": "crane_7", - "flake-compat": "flake-compat_23", - "flake-parts": "flake-parts_32", - "nixpkgs": "nixpkgs_49", + "crane": "crane_8", + "flake-compat": "flake-compat_26", + "flake-parts": "flake-parts_33", + "nixpkgs": "nixpkgs_50", "pre-commit-hooks-nix": "pre-commit-hooks-nix_7", - "rust-overlay": "rust-overlay_7" + "rust-overlay": "rust-overlay_8" }, "locked": { "lastModified": 1751381593, @@ -5328,12 +5636,12 @@ }, "lanzaboote_8": { "inputs": { - "crane": "crane_8", - "flake-compat": "flake-compat_27", - "flake-parts": "flake-parts_37", - "nixpkgs": "nixpkgs_57", + "crane": "crane_9", + "flake-compat": "flake-compat_30", + "flake-parts": "flake-parts_38", + "nixpkgs": "nixpkgs_58", "pre-commit-hooks-nix": "pre-commit-hooks-nix_8", - "rust-overlay": "rust-overlay_8" + "rust-overlay": "rust-overlay_9" }, "locked": { "lastModified": 1751381593, @@ -5373,7 +5681,7 @@ }, "microvm_2": { "inputs": { - "flake-utils": "flake-utils_4", + "flake-utils": "flake-utils_6", "nixpkgs": [ "swarsel", "nixpkgs" @@ -5396,7 +5704,7 @@ }, "microvm_3": { "inputs": { - "flake-utils": "flake-utils_7", + "flake-utils": "flake-utils_9", "nixpkgs": [ "swarsel", "swarsel", @@ -5418,6 +5726,67 @@ "type": "github" } }, + "n2c": { + "inputs": { + "flake-utils": [ + "nixos-extra-modules", + "nixt", + "std", + "flake-utils" + ], + "nixpkgs": [ + "nixos-extra-modules", + "nixt", + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1677330646, + "narHash": "sha256-hUYCwJneMjnxTvj30Fjow6UMJUITqHlpUGpXMPXUJsU=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "ebca8f58d450cae1a19c07701a5a8ae40afc9efc", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, + "namaka": { + "inputs": { + "haumea": [ + "nixos-extra-modules", + "nixt", + "std", + "dmerge", + "haumea" + ], + "nixpkgs": [ + "nixos-extra-modules", + "nixt", + "std", + "dmerge", + "nixlib" + ] + }, + "locked": { + "lastModified": 1683059428, + "narHash": "sha256-ZTMqleCWmuNWhZE375gtF1j1JRkaKEUFN1AM43e7h4Y=", + "owner": "nix-community", + "repo": "namaka", + "rev": "2deba2f416454aec770bc1cc7365e39c73e6b1d7", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "v0.1.1", + "repo": "namaka", + "type": "github" + } + }, "niri-flake": { "inputs": { "niri-stable": "niri-stable", @@ -6628,10 +6997,10 @@ }, "nix-topology_2": { "inputs": { - "devshell": "devshell_4", - "flake-utils": "flake-utils_5", - "nixpkgs": "nixpkgs_10", - "pre-commit-hooks": "pre-commit-hooks_3" + "devshell": "devshell_6", + "flake-utils": "flake-utils_7", + "nixpkgs": "nixpkgs_11", + "pre-commit-hooks": "pre-commit-hooks_4" }, "locked": { "lastModified": 1752093877, @@ -6649,10 +7018,10 @@ }, "nix-topology_3": { "inputs": { - "devshell": "devshell_6", - "flake-utils": "flake-utils_8", - "nixpkgs": "nixpkgs_18", - "pre-commit-hooks": "pre-commit-hooks_5" + "devshell": "devshell_8", + "flake-utils": "flake-utils_10", + "nixpkgs": "nixpkgs_19", + "pre-commit-hooks": "pre-commit-hooks_6" }, "locked": { "lastModified": 1752093877, @@ -6670,10 +7039,10 @@ }, "nix-topology_4": { "inputs": { - "devshell": "devshell_8", - "flake-utils": "flake-utils_10", - "nixpkgs": "nixpkgs_26", - "pre-commit-hooks": "pre-commit-hooks_7" + "devshell": "devshell_10", + "flake-utils": "flake-utils_12", + "nixpkgs": "nixpkgs_27", + "pre-commit-hooks": "pre-commit-hooks_8" }, "locked": { "lastModified": 1752093877, @@ -6691,10 +7060,10 @@ }, "nix-topology_5": { "inputs": { - "devshell": "devshell_10", - "flake-utils": "flake-utils_12", - "nixpkgs": "nixpkgs_34", - "pre-commit-hooks": "pre-commit-hooks_9" + "devshell": "devshell_12", + "flake-utils": "flake-utils_14", + "nixpkgs": "nixpkgs_35", + "pre-commit-hooks": "pre-commit-hooks_10" }, "locked": { "lastModified": 1752093877, @@ -6712,10 +7081,10 @@ }, "nix-topology_6": { "inputs": { - "devshell": "devshell_12", - "flake-utils": "flake-utils_14", - "nixpkgs": "nixpkgs_42", - "pre-commit-hooks": "pre-commit-hooks_11" + "devshell": "devshell_14", + "flake-utils": "flake-utils_16", + "nixpkgs": "nixpkgs_43", + "pre-commit-hooks": "pre-commit-hooks_12" }, "locked": { "lastModified": 1752093877, @@ -6733,10 +7102,10 @@ }, "nix-topology_7": { "inputs": { - "devshell": "devshell_14", - "flake-utils": "flake-utils_16", - "nixpkgs": "nixpkgs_50", - "pre-commit-hooks": "pre-commit-hooks_13" + "devshell": "devshell_16", + "flake-utils": "flake-utils_18", + "nixpkgs": "nixpkgs_51", + "pre-commit-hooks": "pre-commit-hooks_14" }, "locked": { "lastModified": 1744142264, @@ -6754,10 +7123,10 @@ }, "nix-topology_8": { "inputs": { - "devshell": "devshell_16", - "flake-utils": "flake-utils_18", - "nixpkgs": "nixpkgs_58", - "pre-commit-hooks": "pre-commit-hooks_15" + "devshell": "devshell_18", + "flake-utils": "flake-utils_20", + "nixpkgs": "nixpkgs_59", + "pre-commit-hooks": "pre-commit-hooks_16" }, "locked": { "lastModified": 1744142264, @@ -6773,6 +7142,41 @@ "type": "github" } }, + "nixago": { + "inputs": { + "flake-utils": [ + "nixos-extra-modules", + "nixt", + "std", + "flake-utils" + ], + "nixago-exts": [ + "nixos-extra-modules", + "nixt", + "std", + "blank" + ], + "nixpkgs": [ + "nixos-extra-modules", + "nixt", + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1683210100, + "narHash": "sha256-bhGDOlkWtlhVECpoOog4fWiFJmLCpVEg09a40aTjCbw=", + "owner": "nix-community", + "repo": "nixago", + "rev": "1da60ad9412135f9ed7a004669fdcf3d378ec630", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixago", + "type": "github" + } + }, "nixgl": { "inputs": { "flake-utils": "flake-utils_3", @@ -6794,8 +7198,8 @@ }, "nixgl_2": { "inputs": { - "flake-utils": "flake-utils_6", - "nixpkgs": "nixpkgs_11" + "flake-utils": "flake-utils_8", + "nixpkgs": "nixpkgs_12" }, "locked": { "lastModified": 1752054764, @@ -6813,8 +7217,8 @@ }, "nixgl_3": { "inputs": { - "flake-utils": "flake-utils_9", - "nixpkgs": "nixpkgs_19" + "flake-utils": "flake-utils_11", + "nixpkgs": "nixpkgs_20" }, "locked": { "lastModified": 1752054764, @@ -6832,8 +7236,8 @@ }, "nixgl_4": { "inputs": { - "flake-utils": "flake-utils_11", - "nixpkgs": "nixpkgs_27" + "flake-utils": "flake-utils_13", + "nixpkgs": "nixpkgs_28" }, "locked": { "lastModified": 1752054764, @@ -6851,8 +7255,8 @@ }, "nixgl_5": { "inputs": { - "flake-utils": "flake-utils_13", - "nixpkgs": "nixpkgs_35" + "flake-utils": "flake-utils_15", + "nixpkgs": "nixpkgs_36" }, "locked": { "lastModified": 1752054764, @@ -6870,8 +7274,8 @@ }, "nixgl_6": { "inputs": { - "flake-utils": "flake-utils_15", - "nixpkgs": "nixpkgs_43" + "flake-utils": "flake-utils_17", + "nixpkgs": "nixpkgs_44" }, "locked": { "lastModified": 1752054764, @@ -6889,8 +7293,8 @@ }, "nixgl_7": { "inputs": { - "flake-utils": "flake-utils_17", - "nixpkgs": "nixpkgs_51" + "flake-utils": "flake-utils_19", + "nixpkgs": "nixpkgs_52" }, "locked": { "lastModified": 1751696036, @@ -6908,8 +7312,8 @@ }, "nixgl_8": { "inputs": { - "flake-utils": "flake-utils_19", - "nixpkgs": "nixpkgs_59" + "flake-utils": "flake-utils_21", + "nixpkgs": "nixpkgs_60" }, "locked": { "lastModified": 1751696036, @@ -7045,6 +7449,30 @@ "type": "github" } }, + "nixos-extra-modules": { + "inputs": { + "devshell": "devshell_3", + "flake-parts": "flake-parts_3", + "nixpkgs": [ + "nixpkgs" + ], + "nixt": "nixt", + "pre-commit-hooks": "pre-commit-hooks_2" + }, + "locked": { + "lastModified": 1757854196, + "narHash": "sha256-RDr3/JTpRyXSR1OOg+wzdOUmDL1Ke05OLV/xctbuQOw=", + "owner": "oddlama", + "repo": "nixos-extra-modules", + "rev": "a584a970a05d0410dcb00e0ade684a0c0ce00c4b", + "type": "github" + }, + "original": { + "owner": "oddlama", + "repo": "nixos-extra-modules", + "type": "github" + } + }, "nixos-generators": { "inputs": { "nixlib": "nixlib", @@ -7921,114 +8349,6 @@ } }, "nixpkgs-lib_10": { - "locked": { - "lastModified": 1719876945, - "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" - } - }, - "nixpkgs-lib_11": { - "locked": { - "lastModified": 1753579242, - "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-lib_12": { - "locked": { - "lastModified": 1719876945, - "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" - } - }, - "nixpkgs-lib_13": { - "locked": { - "lastModified": 1751159883, - "narHash": "sha256-urW/Ylk9FIfvXfliA1ywh75yszAbiTEVgpPeinFyVZo=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "14a40a1d7fb9afa4739275ac642ed7301a9ba1ab", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-lib_14": { - "locked": { - "lastModified": 1719876945, - "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" - } - }, - "nixpkgs-lib_15": { - "locked": { - "lastModified": 1751159883, - "narHash": "sha256-urW/Ylk9FIfvXfliA1ywh75yszAbiTEVgpPeinFyVZo=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "14a40a1d7fb9afa4739275ac642ed7301a9ba1ab", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-lib_16": { - "locked": { - "lastModified": 1719876945, - "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" - } - }, - "nixpkgs-lib_17": { - "locked": { - "lastModified": 1753579242, - "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-lib_18": { "locked": { "lastModified": 1754788789, "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=", @@ -8043,6 +8363,114 @@ "type": "github" } }, + "nixpkgs-lib_11": { + "locked": { + "lastModified": 1719876945, + "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + } + }, + "nixpkgs-lib_12": { + "locked": { + "lastModified": 1753579242, + "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs-lib_13": { + "locked": { + "lastModified": 1719876945, + "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + } + }, + "nixpkgs-lib_14": { + "locked": { + "lastModified": 1751159883, + "narHash": "sha256-urW/Ylk9FIfvXfliA1ywh75yszAbiTEVgpPeinFyVZo=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "14a40a1d7fb9afa4739275ac642ed7301a9ba1ab", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs-lib_15": { + "locked": { + "lastModified": 1719876945, + "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + } + }, + "nixpkgs-lib_16": { + "locked": { + "lastModified": 1751159883, + "narHash": "sha256-urW/Ylk9FIfvXfliA1ywh75yszAbiTEVgpPeinFyVZo=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "14a40a1d7fb9afa4739275ac642ed7301a9ba1ab", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs-lib_17": { + "locked": { + "lastModified": 1719876945, + "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + } + }, + "nixpkgs-lib_18": { + "locked": { + "lastModified": 1753579242, + "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, "nixpkgs-lib_19": { "locked": { "lastModified": 1754788789, @@ -8060,14 +8488,14 @@ }, "nixpkgs-lib_2": { "locked": { - "lastModified": 1719876945, - "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", + "lastModified": 1738452942, + "narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" } }, "nixpkgs-lib_20": { @@ -8160,7 +8588,7 @@ "type": "github" } }, - "nixpkgs-lib_3": { + "nixpkgs-lib_26": { "locked": { "lastModified": 1754788789, "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=", @@ -8175,61 +8603,61 @@ "type": "github" } }, + "nixpkgs-lib_3": { + "locked": { + "lastModified": 1719876945, + "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + } + }, "nixpkgs-lib_4": { "locked": { - "lastModified": 1719876945, - "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + "lastModified": 1754788789, + "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "a73b9c743612e4244d865a2fdee11865283c04e6", + "type": "github" }, "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" } }, "nixpkgs-lib_5": { "locked": { - "lastModified": 1754788789, - "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "a73b9c743612e4244d865a2fdee11865283c04e6", - "type": "github" + "lastModified": 1719876945, + "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" }, "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" } }, "nixpkgs-lib_6": { "locked": { - "lastModified": 1719876945, - "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + "lastModified": 1754788789, + "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "a73b9c743612e4244d865a2fdee11865283c04e6", + "type": "github" }, "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" } }, "nixpkgs-lib_7": { - "locked": { - "lastModified": 1754788789, - "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "a73b9c743612e4244d865a2fdee11865283c04e6", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-lib_8": { "locked": { "lastModified": 1719876945, "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", @@ -8241,7 +8669,7 @@ "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" } }, - "nixpkgs-lib_9": { + "nixpkgs-lib_8": { "locked": { "lastModified": 1754788789, "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=", @@ -8256,6 +8684,18 @@ "type": "github" } }, + "nixpkgs-lib_9": { + "locked": { + "lastModified": 1719876945, + "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + } + }, "nixpkgs-stable": { "locked": { "lastModified": 1760139962, @@ -8881,6 +9321,22 @@ } }, "nixpkgs_10": { + "locked": { + "lastModified": 1754243818, + "narHash": "sha256-sEPw2W01UPf0xNGnMGNZIaE1XHkk7O+lLLetYEXVZHk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c460617dfb709a67d18bb31e15e455390ee4ee1c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_11": { "locked": { "lastModified": 1730531603, "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", @@ -8896,7 +9352,7 @@ "type": "github" } }, - "nixpkgs_11": { + "nixpkgs_12": { "locked": { "lastModified": 1746378225, "narHash": "sha256-OeRSuL8PUjIfL3Q0fTbNJD/fmv1R+K2JAOqWJd3Oceg=", @@ -8911,7 +9367,7 @@ "type": "github" } }, - "nixpkgs_12": { + "nixpkgs_13": { "locked": { "lastModified": 1760284886, "narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=", @@ -8927,7 +9383,7 @@ "type": "github" } }, - "nixpkgs_13": { + "nixpkgs_14": { "locked": { "lastModified": 1720957393, "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=", @@ -8943,7 +9399,7 @@ "type": "github" } }, - "nixpkgs_14": { + "nixpkgs_15": { "locked": { "lastModified": 1760284886, "narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=", @@ -8959,7 +9415,7 @@ "type": "github" } }, - "nixpkgs_15": { + "nixpkgs_16": { "locked": { "lastModified": 1760164275, "narHash": "sha256-gKl2Gtro/LNf8P+4L3S2RsZ0G390ccd5MyXYrTdMCFE=", @@ -8975,7 +9431,7 @@ "type": "github" } }, - "nixpkgs_16": { + "nixpkgs_17": { "locked": { "lastModified": 1758690382, "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=", @@ -8991,7 +9447,7 @@ "type": "github" } }, - "nixpkgs_17": { + "nixpkgs_18": { "locked": { "lastModified": 1754243818, "narHash": "sha256-sEPw2W01UPf0xNGnMGNZIaE1XHkk7O+lLLetYEXVZHk=", @@ -9007,7 +9463,7 @@ "type": "github" } }, - "nixpkgs_18": { + "nixpkgs_19": { "locked": { "lastModified": 1730531603, "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", @@ -9023,21 +9479,6 @@ "type": "github" } }, - "nixpkgs_19": { - "locked": { - "lastModified": 1746378225, - "narHash": "sha256-OeRSuL8PUjIfL3Q0fTbNJD/fmv1R+K2JAOqWJd3Oceg=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "93e8cdce7afc64297cfec447c311470788131cd9", - "type": "github" - }, - "original": { - "owner": "nixos", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_2": { "locked": { "lastModified": 1730531603, @@ -9055,6 +9496,21 @@ } }, "nixpkgs_20": { + "locked": { + "lastModified": 1746378225, + "narHash": "sha256-OeRSuL8PUjIfL3Q0fTbNJD/fmv1R+K2JAOqWJd3Oceg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "93e8cdce7afc64297cfec447c311470788131cd9", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_21": { "locked": { "lastModified": 1759381078, "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", @@ -9070,7 +9526,7 @@ "type": "github" } }, - "nixpkgs_21": { + "nixpkgs_22": { "locked": { "lastModified": 1720957393, "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=", @@ -9086,7 +9542,7 @@ "type": "github" } }, - "nixpkgs_22": { + "nixpkgs_23": { "locked": { "lastModified": 1759381078, "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", @@ -9102,7 +9558,7 @@ "type": "github" } }, - "nixpkgs_23": { + "nixpkgs_24": { "locked": { "lastModified": 1759570798, "narHash": "sha256-kbkzsUKYzKhuvMOuxt/aTwWU2mnrwoY964yN3Y4dE98=", @@ -9118,7 +9574,7 @@ "type": "github" } }, - "nixpkgs_24": { + "nixpkgs_25": { "locked": { "lastModified": 1758690382, "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=", @@ -9134,7 +9590,7 @@ "type": "github" } }, - "nixpkgs_25": { + "nixpkgs_26": { "locked": { "lastModified": 1754243818, "narHash": "sha256-sEPw2W01UPf0xNGnMGNZIaE1XHkk7O+lLLetYEXVZHk=", @@ -9150,7 +9606,7 @@ "type": "github" } }, - "nixpkgs_26": { + "nixpkgs_27": { "locked": { "lastModified": 1730531603, "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", @@ -9166,7 +9622,7 @@ "type": "github" } }, - "nixpkgs_27": { + "nixpkgs_28": { "locked": { "lastModified": 1746378225, "narHash": "sha256-OeRSuL8PUjIfL3Q0fTbNJD/fmv1R+K2JAOqWJd3Oceg=", @@ -9181,7 +9637,7 @@ "type": "github" } }, - "nixpkgs_28": { + "nixpkgs_29": { "locked": { "lastModified": 1758427187, "narHash": "sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc=", @@ -9197,22 +9653,6 @@ "type": "github" } }, - "nixpkgs_29": { - "locked": { - "lastModified": 1720957393, - "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_3": { "locked": { "lastModified": 1746378225, @@ -9229,6 +9669,22 @@ } }, "nixpkgs_30": { + "locked": { + "lastModified": 1720957393, + "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_31": { "locked": { "lastModified": 1758427187, "narHash": "sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc=", @@ -9244,7 +9700,7 @@ "type": "github" } }, - "nixpkgs_31": { + "nixpkgs_32": { "locked": { "lastModified": 1758262103, "narHash": "sha256-aBGl3XEOsjWw6W3AHiKibN7FeoG73dutQQEqnd/etR8=", @@ -9260,7 +9716,7 @@ "type": "github" } }, - "nixpkgs_32": { + "nixpkgs_33": { "locked": { "lastModified": 1756819007, "narHash": "sha256-12V64nKG/O/guxSYnr5/nq1EfqwJCdD2+cIGmhz3nrE=", @@ -9276,7 +9732,7 @@ "type": "github" } }, - "nixpkgs_33": { + "nixpkgs_34": { "locked": { "lastModified": 1754243818, "narHash": "sha256-sEPw2W01UPf0xNGnMGNZIaE1XHkk7O+lLLetYEXVZHk=", @@ -9292,7 +9748,7 @@ "type": "github" } }, - "nixpkgs_34": { + "nixpkgs_35": { "locked": { "lastModified": 1730531603, "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", @@ -9308,7 +9764,7 @@ "type": "github" } }, - "nixpkgs_35": { + "nixpkgs_36": { "locked": { "lastModified": 1746378225, "narHash": "sha256-OeRSuL8PUjIfL3Q0fTbNJD/fmv1R+K2JAOqWJd3Oceg=", @@ -9323,7 +9779,7 @@ "type": "github" } }, - "nixpkgs_36": { + "nixpkgs_37": { "locked": { "lastModified": 1757745802, "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=", @@ -9339,7 +9795,7 @@ "type": "github" } }, - "nixpkgs_37": { + "nixpkgs_38": { "locked": { "lastModified": 1720957393, "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=", @@ -9355,7 +9811,7 @@ "type": "github" } }, - "nixpkgs_38": { + "nixpkgs_39": { "locked": { "lastModified": 1757745802, "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=", @@ -9371,7 +9827,23 @@ "type": "github" } }, - "nixpkgs_39": { + "nixpkgs_4": { + "locked": { + "lastModified": 1677063315, + "narHash": "sha256-qiB4ajTeAOVnVSAwCNEEkoybrAlA+cpeiBxLobHndE8=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "988cc958c57ce4350ec248d2d53087777f9e1949", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_40": { "locked": { "lastModified": 1757746433, "narHash": "sha256-fEvTiU4s9lWgW7mYEU/1QUPirgkn+odUBTaindgiziY=", @@ -9387,23 +9859,7 @@ "type": "github" } }, - "nixpkgs_4": { - "locked": { - "lastModified": 1761907660, - "narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_40": { + "nixpkgs_41": { "locked": { "lastModified": 1756819007, "narHash": "sha256-12V64nKG/O/guxSYnr5/nq1EfqwJCdD2+cIGmhz3nrE=", @@ -9419,7 +9875,7 @@ "type": "github" } }, - "nixpkgs_41": { + "nixpkgs_42": { "locked": { "lastModified": 1754243818, "narHash": "sha256-sEPw2W01UPf0xNGnMGNZIaE1XHkk7O+lLLetYEXVZHk=", @@ -9435,7 +9891,7 @@ "type": "github" } }, - "nixpkgs_42": { + "nixpkgs_43": { "locked": { "lastModified": 1730531603, "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", @@ -9451,7 +9907,7 @@ "type": "github" } }, - "nixpkgs_43": { + "nixpkgs_44": { "locked": { "lastModified": 1746378225, "narHash": "sha256-OeRSuL8PUjIfL3Q0fTbNJD/fmv1R+K2JAOqWJd3Oceg=", @@ -9466,7 +9922,7 @@ "type": "github" } }, - "nixpkgs_44": { + "nixpkgs_45": { "locked": { "lastModified": 1754498491, "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", @@ -9482,23 +9938,23 @@ "type": "github" } }, - "nixpkgs_45": { - "locked": { - "lastModified": 1720957393, - "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_46": { + "locked": { + "lastModified": 1720957393, + "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_47": { "locked": { "lastModified": 1754498491, "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", @@ -9514,7 +9970,7 @@ "type": "github" } }, - "nixpkgs_47": { + "nixpkgs_48": { "locked": { "lastModified": 1744868846, "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", @@ -9530,213 +9986,23 @@ "type": "github" } }, - "nixpkgs_48": { - "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_49": { "locked": { - "lastModified": 1751203939, - "narHash": "sha256-omYD+H5LlSihz2DRfv90I8Oeo7JNEwvcHPHX+6nMIM4=", + "lastModified": 1751792365, + "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "650e71cbf76de8dd16f5648a96981b726c4ef8fe", + "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable-small", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_5": { - "locked": { - "lastModified": 1720957393, - "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_50": { - "locked": { - "lastModified": 1730531603, - "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_51": { - "locked": { - "lastModified": 1746378225, - "narHash": "sha256-OeRSuL8PUjIfL3Q0fTbNJD/fmv1R+K2JAOqWJd3Oceg=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "93e8cdce7afc64297cfec447c311470788131cd9", - "type": "github" - }, - "original": { - "owner": "nixos", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_52": { - "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_53": { - "locked": { - "lastModified": 1720957393, - "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_54": { - "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_55": { - "locked": { - "lastModified": 1744868846, - "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_56": { - "locked": { - "lastModified": 1748460289, - "narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "96ec055edbe5ee227f28cdbc3f1ddf1df5965102", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_57": { - "locked": { - "lastModified": 1751203939, - "narHash": "sha256-omYD+H5LlSihz2DRfv90I8Oeo7JNEwvcHPHX+6nMIM4=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "650e71cbf76de8dd16f5648a96981b726c4ef8fe", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable-small", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_58": { - "locked": { - "lastModified": 1730531603, - "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_59": { - "locked": { - "lastModified": 1746378225, - "narHash": "sha256-OeRSuL8PUjIfL3Q0fTbNJD/fmv1R+K2JAOqWJd3Oceg=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "93e8cdce7afc64297cfec447c311470788131cd9", - "type": "github" - }, - "original": { - "owner": "nixos", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { "locked": { "lastModified": 1761907660, "narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=", @@ -9752,7 +10018,54 @@ "type": "github" } }, - "nixpkgs_60": { + "nixpkgs_50": { + "locked": { + "lastModified": 1751203939, + "narHash": "sha256-omYD+H5LlSihz2DRfv90I8Oeo7JNEwvcHPHX+6nMIM4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "650e71cbf76de8dd16f5648a96981b726c4ef8fe", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_51": { + "locked": { + "lastModified": 1730531603, + "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_52": { + "locked": { + "lastModified": 1746378225, + "narHash": "sha256-OeRSuL8PUjIfL3Q0fTbNJD/fmv1R+K2JAOqWJd3Oceg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "93e8cdce7afc64297cfec447c311470788131cd9", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_53": { "locked": { "lastModified": 1751792365, "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", @@ -9768,7 +10081,7 @@ "type": "github" } }, - "nixpkgs_61": { + "nixpkgs_54": { "locked": { "lastModified": 1720957393, "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=", @@ -9784,7 +10097,7 @@ "type": "github" } }, - "nixpkgs_62": { + "nixpkgs_55": { "locked": { "lastModified": 1751792365, "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", @@ -9800,7 +10113,7 @@ "type": "github" } }, - "nixpkgs_63": { + "nixpkgs_56": { "locked": { "lastModified": 1744868846, "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", @@ -9816,7 +10129,7 @@ "type": "github" } }, - "nixpkgs_64": { + "nixpkgs_57": { "locked": { "lastModified": 1748460289, "narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=", @@ -9832,13 +10145,124 @@ "type": "github" } }, - "nixpkgs_65": { + "nixpkgs_58": { "locked": { - "lastModified": 1750865895, - "narHash": "sha256-p2dWAQcLVzquy9LxYCZPwyUdugw78Qv3ChvnX755qHA=", + "lastModified": 1751203939, + "narHash": "sha256-omYD+H5LlSihz2DRfv90I8Oeo7JNEwvcHPHX+6nMIM4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "61c0f513911459945e2cb8bf333dc849f1b976ff", + "rev": "650e71cbf76de8dd16f5648a96981b726c4ef8fe", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_59": { + "locked": { + "lastModified": 1730531603, + "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1720957393, + "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_60": { + "locked": { + "lastModified": 1746378225, + "narHash": "sha256-OeRSuL8PUjIfL3Q0fTbNJD/fmv1R+K2JAOqWJd3Oceg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "93e8cdce7afc64297cfec447c311470788131cd9", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_61": { + "locked": { + "lastModified": 1751792365, + "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_62": { + "locked": { + "lastModified": 1720957393, + "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_63": { + "locked": { + "lastModified": 1751792365, + "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_64": { + "locked": { + "lastModified": 1744868846, + "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", "type": "github" }, "original": { @@ -9848,6 +10272,22 @@ "type": "github" } }, + "nixpkgs_65": { + "locked": { + "lastModified": 1748460289, + "narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "96ec055edbe5ee227f28cdbc3f1ddf1df5965102", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_66": { "locked": { "lastModified": 1750865895, @@ -9865,6 +10305,22 @@ } }, "nixpkgs_67": { + "locked": { + "lastModified": 1750865895, + "narHash": "sha256-p2dWAQcLVzquy9LxYCZPwyUdugw78Qv3ChvnX755qHA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "61c0f513911459945e2cb8bf333dc849f1b976ff", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_68": { "locked": { "lastModified": 1755615617, "narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=", @@ -9880,7 +10336,7 @@ "type": "github" } }, - "nixpkgs_68": { + "nixpkgs_69": { "locked": { "lastModified": 1750865895, "narHash": "sha256-p2dWAQcLVzquy9LxYCZPwyUdugw78Qv3ChvnX755qHA=", @@ -9896,183 +10352,7 @@ "type": "github" } }, - "nixpkgs_69": { - "locked": { - "lastModified": 1757745802, - "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_7": { - "locked": { - "lastModified": 1760596604, - "narHash": "sha256-J/i5K6AAz/y5dBePHQOuzC7MbhyTOKsd/GLezSbEFiM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "3cbe716e2346710d6e1f7c559363d14e11c32a43", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_70": { - "locked": { - "lastModified": 1754800730, - "narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "641d909c4a7538f1539da9240dedb1755c907e40", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_71": { - "locked": { - "lastModified": 1758427187, - "narHash": "sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "554be6495561ff07b6c724047bdd7e0716aa7b46", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_72": { - "locked": { - "lastModified": 1754800730, - "narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "641d909c4a7538f1539da9240dedb1755c907e40", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_73": { - "locked": { - "lastModified": 1759381078, - "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_74": { - "locked": { - "lastModified": 1759733170, - "narHash": "sha256-TXnlsVb5Z8HXZ6mZoeOAIwxmvGHp1g4Dw89eLvIwKVI=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "8913c168d1c56dc49a7718685968f38752171c3b", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_75": { - "locked": { - "lastModified": 1754800730, - "narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "641d909c4a7538f1539da9240dedb1755c907e40", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_76": { - "locked": { - "lastModified": 1760284886, - "narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_77": { - "locked": { - "lastModified": 1759733170, - "narHash": "sha256-TXnlsVb5Z8HXZ6mZoeOAIwxmvGHp1g4Dw89eLvIwKVI=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "8913c168d1c56dc49a7718685968f38752171c3b", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_78": { - "locked": { - "lastModified": 1754800730, - "narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "641d909c4a7538f1539da9240dedb1755c907e40", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_79": { "locked": { "lastModified": 1761907660, "narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=", @@ -10088,23 +10368,87 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_70": { "locked": { - "lastModified": 1758690382, - "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=", - "owner": "NixOS", + "lastModified": 1757745802, + "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "e643668fd71b949c53f8626614b21ff71a07379d", + "rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_80": { + "nixpkgs_71": { + "locked": { + "lastModified": 1754800730, + "narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "641d909c4a7538f1539da9240dedb1755c907e40", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_72": { + "locked": { + "lastModified": 1758427187, + "narHash": "sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "554be6495561ff07b6c724047bdd7e0716aa7b46", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_73": { + "locked": { + "lastModified": 1754800730, + "narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "641d909c4a7538f1539da9240dedb1755c907e40", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_74": { + "locked": { + "lastModified": 1759381078, + "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_75": { "locked": { "lastModified": 1759733170, "narHash": "sha256-TXnlsVb5Z8HXZ6mZoeOAIwxmvGHp1g4Dw89eLvIwKVI=", @@ -10120,7 +10464,119 @@ "type": "github" } }, + "nixpkgs_76": { + "locked": { + "lastModified": 1754800730, + "narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "641d909c4a7538f1539da9240dedb1755c907e40", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_77": { + "locked": { + "lastModified": 1760284886, + "narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_78": { + "locked": { + "lastModified": 1759733170, + "narHash": "sha256-TXnlsVb5Z8HXZ6mZoeOAIwxmvGHp1g4Dw89eLvIwKVI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "8913c168d1c56dc49a7718685968f38752171c3b", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_79": { + "locked": { + "lastModified": 1754800730, + "narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "641d909c4a7538f1539da9240dedb1755c907e40", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_8": { + "locked": { + "lastModified": 1760596604, + "narHash": "sha256-J/i5K6AAz/y5dBePHQOuzC7MbhyTOKsd/GLezSbEFiM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3cbe716e2346710d6e1f7c559363d14e11c32a43", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_80": { + "locked": { + "lastModified": 1761907660, + "narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_81": { + "locked": { + "lastModified": 1759733170, + "narHash": "sha256-TXnlsVb5Z8HXZ6mZoeOAIwxmvGHp1g4Dw89eLvIwKVI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "8913c168d1c56dc49a7718685968f38752171c3b", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_82": { "locked": { "lastModified": 1754800730, "narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=", @@ -10138,20 +10594,44 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1754243818, - "narHash": "sha256-sEPw2W01UPf0xNGnMGNZIaE1XHkk7O+lLLetYEXVZHk=", + "lastModified": 1758690382, + "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c460617dfb709a67d18bb31e15e455390ee4ee1c", + "rev": "e643668fd71b949c53f8626614b21ff71a07379d", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable-small", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, + "nixt": { + "inputs": { + "flake-compat": "flake-compat_3", + "nixpkgs": [ + "nixos-extra-modules", + "nixpkgs" + ], + "std": "std", + "std-data-collection": "std-data-collection" + }, + "locked": { + "lastModified": 1729273076, + "narHash": "sha256-h2Y+5bikSXS8MPYpxyZpd+VX9H5uuCS/csMMxZCoS3c=", + "owner": "nix-community", + "repo": "nixt", + "rev": "ad8863c9f9e5a166d663f2f1f0eef74ab913a883", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixt", + "type": "github" + } + }, "nmd": { "flake": false, "locked": { @@ -10612,10 +11092,25 @@ "type": "gitlab" } }, + "nosys": { + "locked": { + "lastModified": 1668010795, + "narHash": "sha256-JBDVBnos8g0toU7EhIIqQ1If5m/nyBqtHhL3sicdPwI=", + "owner": "divnix", + "repo": "nosys", + "rev": "feade0141487801c71ff55623b421ed535dbdefa", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "nosys", + "type": "github" + } + }, "nswitch-rcm-nix": { "inputs": { - "flake-parts": "flake-parts_3", - "nixpkgs": "nixpkgs_5" + "flake-parts": "flake-parts_4", + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1721304043, @@ -10633,8 +11128,8 @@ }, "nswitch-rcm-nix_2": { "inputs": { - "flake-parts": "flake-parts_8", - "nixpkgs": "nixpkgs_13" + "flake-parts": "flake-parts_9", + "nixpkgs": "nixpkgs_14" }, "locked": { "lastModified": 1721304043, @@ -10652,8 +11147,8 @@ }, "nswitch-rcm-nix_3": { "inputs": { - "flake-parts": "flake-parts_13", - "nixpkgs": "nixpkgs_21" + "flake-parts": "flake-parts_14", + "nixpkgs": "nixpkgs_22" }, "locked": { "lastModified": 1721304043, @@ -10671,8 +11166,8 @@ }, "nswitch-rcm-nix_4": { "inputs": { - "flake-parts": "flake-parts_18", - "nixpkgs": "nixpkgs_29" + "flake-parts": "flake-parts_19", + "nixpkgs": "nixpkgs_30" }, "locked": { "lastModified": 1721304043, @@ -10690,8 +11185,8 @@ }, "nswitch-rcm-nix_5": { "inputs": { - "flake-parts": "flake-parts_23", - "nixpkgs": "nixpkgs_37" + "flake-parts": "flake-parts_24", + "nixpkgs": "nixpkgs_38" }, "locked": { "lastModified": 1721304043, @@ -10709,8 +11204,8 @@ }, "nswitch-rcm-nix_6": { "inputs": { - "flake-parts": "flake-parts_28", - "nixpkgs": "nixpkgs_45" + "flake-parts": "flake-parts_29", + "nixpkgs": "nixpkgs_46" }, "locked": { "lastModified": 1721304043, @@ -10728,8 +11223,8 @@ }, "nswitch-rcm-nix_7": { "inputs": { - "flake-parts": "flake-parts_33", - "nixpkgs": "nixpkgs_53" + "flake-parts": "flake-parts_34", + "nixpkgs": "nixpkgs_54" }, "locked": { "lastModified": 1721304043, @@ -10747,8 +11242,8 @@ }, "nswitch-rcm-nix_8": { "inputs": { - "flake-parts": "flake-parts_38", - "nixpkgs": "nixpkgs_61" + "flake-parts": "flake-parts_39", + "nixpkgs": "nixpkgs_62" }, "locked": { "lastModified": 1721304043, @@ -10766,8 +11261,8 @@ }, "nur": { "inputs": { - "flake-parts": "flake-parts_4", - "nixpkgs": "nixpkgs_6" + "flake-parts": "flake-parts_5", + "nixpkgs": "nixpkgs_7" }, "locked": { "lastModified": 1762033460, @@ -10818,8 +11313,8 @@ }, "nur_11": { "inputs": { - "flake-parts": "flake-parts_29", - "nixpkgs": "nixpkgs_46" + "flake-parts": "flake-parts_30", + "nixpkgs": "nixpkgs_47" }, "locked": { "lastModified": 1754726338, @@ -10872,8 +11367,8 @@ }, "nur_13": { "inputs": { - "flake-parts": "flake-parts_34", - "nixpkgs": "nixpkgs_54" + "flake-parts": "flake-parts_35", + "nixpkgs": "nixpkgs_55" }, "locked": { "lastModified": 1751906969, @@ -10929,8 +11424,8 @@ }, "nur_15": { "inputs": { - "flake-parts": "flake-parts_39", - "nixpkgs": "nixpkgs_62" + "flake-parts": "flake-parts_40", + "nixpkgs": "nixpkgs_63" }, "locked": { "lastModified": 1751906969, @@ -11013,8 +11508,8 @@ }, "nur_3": { "inputs": { - "flake-parts": "flake-parts_9", - "nixpkgs": "nixpkgs_14" + "flake-parts": "flake-parts_10", + "nixpkgs": "nixpkgs_15" }, "locked": { "lastModified": 1760434122, @@ -11059,8 +11554,8 @@ }, "nur_5": { "inputs": { - "flake-parts": "flake-parts_14", - "nixpkgs": "nixpkgs_22" + "flake-parts": "flake-parts_15", + "nixpkgs": "nixpkgs_23" }, "locked": { "lastModified": 1759783224, @@ -11107,8 +11602,8 @@ }, "nur_7": { "inputs": { - "flake-parts": "flake-parts_19", - "nixpkgs": "nixpkgs_30" + "flake-parts": "flake-parts_20", + "nixpkgs": "nixpkgs_31" }, "locked": { "lastModified": 1758706012, @@ -11157,8 +11652,8 @@ }, "nur_9": { "inputs": { - "flake-parts": "flake-parts_24", - "nixpkgs": "nixpkgs_38" + "flake-parts": "flake-parts_25", + "nixpkgs": "nixpkgs_39" }, "locked": { "lastModified": 1757935448, @@ -11174,6 +11669,120 @@ "type": "github" } }, + "paisano": { + "inputs": { + "nixpkgs": [ + "nixos-extra-modules", + "nixt", + "std", + "nixpkgs" + ], + "nosys": "nosys", + "yants": [ + "nixos-extra-modules", + "nixt", + "std", + "yants" + ] + }, + "locked": { + "lastModified": 1678949904, + "narHash": "sha256-oAoF66hYYz1RPh3lEwb9/4e4iyBAfTbQKZRRQ8gP0Ds=", + "owner": "paisano-nix", + "repo": "core", + "rev": "88f2aff10a5064551d1d4cb86800d17084489ce3", + "type": "github" + }, + "original": { + "owner": "paisano-nix", + "repo": "core", + "type": "github" + } + }, + "paisano-actions": { + "inputs": { + "nixpkgs": [ + "nixos-extra-modules", + "nixt", + "std", + "paisano-mdbook-preprocessor", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1677306424, + "narHash": "sha256-H9/dI2rGEbKo4KEisqbRPHFG2ajF8Tm111NPdKGIf28=", + "owner": "paisano-nix", + "repo": "actions", + "rev": "65ec4e080b3480167fc1a748c89a05901eea9a9b", + "type": "github" + }, + "original": { + "owner": "paisano-nix", + "repo": "actions", + "type": "github" + } + }, + "paisano-mdbook-preprocessor": { + "inputs": { + "crane": "crane_2", + "fenix": "fenix", + "nixpkgs": [ + "nixos-extra-modules", + "nixt", + "std", + "nixpkgs" + ], + "paisano-actions": "paisano-actions", + "std": [ + "nixos-extra-modules", + "nixt", + "std" + ] + }, + "locked": { + "lastModified": 1680654400, + "narHash": "sha256-Qdpio+ldhUK3zfl22Mhf8HUULdUOJXDWDdO7MIK69OU=", + "owner": "paisano-nix", + "repo": "mdbook-paisano-preprocessor", + "rev": "11a8fc47f574f194a7ae7b8b98001f6143ba4cf1", + "type": "github" + }, + "original": { + "owner": "paisano-nix", + "repo": "mdbook-paisano-preprocessor", + "type": "github" + } + }, + "paisano-tui": { + "inputs": { + "nixpkgs": [ + "nixos-extra-modules", + "nixt", + "std", + "blank" + ], + "std": [ + "nixos-extra-modules", + "nixt", + "std" + ] + }, + "locked": { + "lastModified": 1681847764, + "narHash": "sha256-mdd7PJW1BZvxy0cIKsPfAO+ohVl/V7heE5ZTAHzTdv8=", + "owner": "paisano-nix", + "repo": "tui", + "rev": "3096bad91cae73ab8ab3367d31f8a143d248a244", + "type": "github" + }, + "original": { + "owner": "paisano-nix", + "ref": "0.1.1", + "repo": "tui", + "type": "github" + } + }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat_2", @@ -11234,7 +11843,7 @@ "lanzaboote", "flake-compat" ], - "gitignore": "gitignore_4", + "gitignore": "gitignore_5", "nixpkgs": [ "swarsel", "lanzaboote", @@ -11263,7 +11872,7 @@ "lanzaboote", "flake-compat" ], - "gitignore": "gitignore_7", + "gitignore": "gitignore_8", "nixpkgs": [ "swarsel", "swarsel", @@ -11294,7 +11903,7 @@ "lanzaboote", "flake-compat" ], - "gitignore": "gitignore_10", + "gitignore": "gitignore_11", "nixpkgs": [ "swarsel", "swarsel", @@ -11327,7 +11936,7 @@ "lanzaboote", "flake-compat" ], - "gitignore": "gitignore_13", + "gitignore": "gitignore_14", "nixpkgs": [ "swarsel", "swarsel", @@ -11362,7 +11971,7 @@ "lanzaboote", "flake-compat" ], - "gitignore": "gitignore_16", + "gitignore": "gitignore_17", "nixpkgs": [ "swarsel", "swarsel", @@ -11399,7 +12008,7 @@ "lanzaboote", "flake-compat" ], - "gitignore": "gitignore_19", + "gitignore": "gitignore_20", "nixpkgs": [ "swarsel", "swarsel", @@ -11438,7 +12047,7 @@ "lanzaboote", "flake-compat" ], - "gitignore": "gitignore_22", + "gitignore": "gitignore_23", "nixpkgs": [ "swarsel", "swarsel", @@ -11467,8 +12076,43 @@ }, "pre-commit-hooks_10": { "inputs": { - "flake-compat": "flake-compat_17", + "flake-compat": "flake-compat_19", "gitignore": "gitignore_15", + "nixpkgs": [ + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "nix-topology", + "nixpkgs" + ], + "nixpkgs-stable": [ + "swarsel", + "swarsel", + "swarsel", + "swarsel", + "nix-topology", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1730797577, + "narHash": "sha256-SrID5yVpyUfknUTGWgYkTyvdr9J1LxUym4om3SVGPkg=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "1864030ed24a2b8b4e4d386a5eeaf0c5369e50a9", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_11": { + "inputs": { + "flake-compat": "flake-compat_20", + "gitignore": "gitignore_16", "nixpkgs": [ "swarsel", "swarsel", @@ -11491,10 +12135,10 @@ "type": "github" } }, - "pre-commit-hooks_11": { + "pre-commit-hooks_12": { "inputs": { - "flake-compat": "flake-compat_20", - "gitignore": "gitignore_17", + "flake-compat": "flake-compat_23", + "gitignore": "gitignore_18", "nixpkgs": [ "swarsel", "swarsel", @@ -11528,10 +12172,10 @@ "type": "github" } }, - "pre-commit-hooks_12": { + "pre-commit-hooks_13": { "inputs": { - "flake-compat": "flake-compat_21", - "gitignore": "gitignore_18", + "flake-compat": "flake-compat_24", + "gitignore": "gitignore_19", "nixpkgs": [ "swarsel", "swarsel", @@ -11555,10 +12199,10 @@ "type": "github" } }, - "pre-commit-hooks_13": { + "pre-commit-hooks_14": { "inputs": { - "flake-compat": "flake-compat_24", - "gitignore": "gitignore_20", + "flake-compat": "flake-compat_27", + "gitignore": "gitignore_21", "nixpkgs": [ "swarsel", "swarsel", @@ -11594,10 +12238,10 @@ "type": "github" } }, - "pre-commit-hooks_14": { + "pre-commit-hooks_15": { "inputs": { - "flake-compat": "flake-compat_25", - "gitignore": "gitignore_21", + "flake-compat": "flake-compat_28", + "gitignore": "gitignore_22", "nixpkgs": [ "swarsel", "swarsel", @@ -11622,10 +12266,10 @@ "type": "github" } }, - "pre-commit-hooks_15": { + "pre-commit-hooks_16": { "inputs": { - "flake-compat": "flake-compat_28", - "gitignore": "gitignore_23", + "flake-compat": "flake-compat_31", + "gitignore": "gitignore_24", "nixpkgs": [ "swarsel", "swarsel", @@ -11663,10 +12307,10 @@ "type": "github" } }, - "pre-commit-hooks_16": { + "pre-commit-hooks_17": { "inputs": { - "flake-compat": "flake-compat_29", - "gitignore": "gitignore_24", + "flake-compat": "flake-compat_32", + "gitignore": "gitignore_25", "nixpkgs": [ "swarsel", "swarsel", @@ -11694,8 +12338,31 @@ }, "pre-commit-hooks_2": { "inputs": { - "flake-compat": "flake-compat_3", + "flake-compat": "flake-compat_5", "gitignore": "gitignore_3", + "nixpkgs": [ + "nixos-extra-modules", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1737465171, + "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_3": { + "inputs": { + "flake-compat": "flake-compat_6", + "gitignore": "gitignore_4", "nixpkgs": [ "nixpkgs" ] @@ -11714,10 +12381,10 @@ "type": "github" } }, - "pre-commit-hooks_3": { + "pre-commit-hooks_4": { "inputs": { - "flake-compat": "flake-compat_5", - "gitignore": "gitignore_5", + "flake-compat": "flake-compat_8", + "gitignore": "gitignore_6", "nixpkgs": [ "swarsel", "nix-topology", @@ -11743,10 +12410,10 @@ "type": "github" } }, - "pre-commit-hooks_4": { + "pre-commit-hooks_5": { "inputs": { - "flake-compat": "flake-compat_6", - "gitignore": "gitignore_6", + "flake-compat": "flake-compat_9", + "gitignore": "gitignore_7", "nixpkgs": [ "swarsel", "nixpkgs" @@ -11766,10 +12433,10 @@ "type": "github" } }, - "pre-commit-hooks_5": { + "pre-commit-hooks_6": { "inputs": { - "flake-compat": "flake-compat_8", - "gitignore": "gitignore_8", + "flake-compat": "flake-compat_11", + "gitignore": "gitignore_9", "nixpkgs": [ "swarsel", "swarsel", @@ -11797,10 +12464,10 @@ "type": "github" } }, - "pre-commit-hooks_6": { + "pre-commit-hooks_7": { "inputs": { - "flake-compat": "flake-compat_9", - "gitignore": "gitignore_9", + "flake-compat": "flake-compat_12", + "gitignore": "gitignore_10", "nixpkgs": [ "swarsel", "swarsel", @@ -11821,10 +12488,10 @@ "type": "github" } }, - "pre-commit-hooks_7": { + "pre-commit-hooks_8": { "inputs": { - "flake-compat": "flake-compat_12", - "gitignore": "gitignore_11", + "flake-compat": "flake-compat_15", + "gitignore": "gitignore_12", "nixpkgs": [ "swarsel", "swarsel", @@ -11854,10 +12521,10 @@ "type": "github" } }, - "pre-commit-hooks_8": { + "pre-commit-hooks_9": { "inputs": { - "flake-compat": "flake-compat_13", - "gitignore": "gitignore_12", + "flake-compat": "flake-compat_16", + "gitignore": "gitignore_13", "nixpkgs": [ "swarsel", "swarsel", @@ -11879,41 +12546,6 @@ "type": "github" } }, - "pre-commit-hooks_9": { - "inputs": { - "flake-compat": "flake-compat_16", - "gitignore": "gitignore_14", - "nixpkgs": [ - "swarsel", - "swarsel", - "swarsel", - "swarsel", - "nix-topology", - "nixpkgs" - ], - "nixpkgs-stable": [ - "swarsel", - "swarsel", - "swarsel", - "swarsel", - "nix-topology", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1730797577, - "narHash": "sha256-SrID5yVpyUfknUTGWgYkTyvdr9J1LxUym4om3SVGPkg=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "1864030ed24a2b8b4e4d386a5eeaf0c5369e50a9", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, "root": { "inputs": { "devshell": "devshell", @@ -11930,9 +12562,10 @@ "nix-on-droid": "nix-on-droid", "nix-topology": "nix-topology", "nixgl": "nixgl", + "nixos-extra-modules": "nixos-extra-modules", "nixos-generators": "nixos-generators", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "nixpkgs-dev": "nixpkgs-dev", "nixpkgs-kernel": "nixpkgs-kernel", "nixpkgs-stable": "nixpkgs-stable_3", @@ -11941,7 +12574,7 @@ "nixpkgs-stable25_05": "nixpkgs-stable25_05", "nswitch-rcm-nix": "nswitch-rcm-nix", "nur": "nur", - "pre-commit-hooks": "pre-commit-hooks_2", + "pre-commit-hooks": "pre-commit-hooks_3", "sops-nix": "sops-nix", "spicetify-nix": "spicetify-nix", "stylix": "stylix", @@ -11953,6 +12586,23 @@ "zjstatus": "zjstatus_8" } }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1677221702, + "narHash": "sha256-1M+58rC4eTCWNmmX0hQVZP20t3tfYNunl9D/PrGUyGE=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "f5401f620699b26ed9d47a1d2e838143a18dbe3b", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, "rust-overlay": { "inputs": { "nixpkgs": [ @@ -11983,6 +12633,7 @@ "swarsel", "swarsel", "swarsel", + "swarsel", "zjstatus", "nixpkgs" ] @@ -12009,6 +12660,7 @@ "swarsel", "swarsel", "swarsel", + "swarsel", "zjstatus", "nixpkgs" ] @@ -12034,16 +12686,17 @@ "swarsel", "swarsel", "swarsel", + "swarsel", "zjstatus", "nixpkgs" ] }, "locked": { - "lastModified": 1754880555, - "narHash": "sha256-tG6l0wiX8V8IvG4HFYY8IYN5vpNAxQ+UWunjjpE6SqU=", + "lastModified": 1750905536, + "narHash": "sha256-Mo7yXM5IvMGNvJPiNkFsVT2UERmnvjsKgnY6UyDdySQ=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "17c591a44e4eb77f05f27cd37e1cfc3f219c7fc4", + "rev": "2fa7c0aabd15fa0ccc1dc7e675a4fcf0272ad9a1", "type": "github" }, "original": { @@ -12058,6 +12711,7 @@ "swarsel", "swarsel", "swarsel", + "swarsel", "zjstatus", "nixpkgs" ] @@ -12079,6 +12733,7 @@ "rust-overlay_14": { "inputs": { "nixpkgs": [ + "swarsel", "swarsel", "swarsel", "zjstatus", @@ -12102,6 +12757,7 @@ "rust-overlay_15": { "inputs": { "nixpkgs": [ + "swarsel", "swarsel", "zjstatus", "nixpkgs" @@ -12122,6 +12778,28 @@ } }, "rust-overlay_16": { + "inputs": { + "nixpkgs": [ + "swarsel", + "zjstatus", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1754880555, + "narHash": "sha256-tG6l0wiX8V8IvG4HFYY8IYN5vpNAxQ+UWunjjpE6SqU=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "17c591a44e4eb77f05f27cd37e1cfc3f219c7fc4", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_17": { "inputs": { "nixpkgs": [ "zjstatus", @@ -12144,18 +12822,29 @@ }, "rust-overlay_2": { "inputs": { + "flake-utils": [ + "nixos-extra-modules", + "nixt", + "std", + "paisano-mdbook-preprocessor", + "crane", + "flake-utils" + ], "nixpkgs": [ - "swarsel", - "lanzaboote", + "nixos-extra-modules", + "nixt", + "std", + "paisano-mdbook-preprocessor", + "crane", "nixpkgs" ] }, "locked": { - "lastModified": 1754189623, - "narHash": "sha256-fstu5eb30UYwsxow0aQqkzxNxGn80UZjyehQVNVHuBk=", + "lastModified": 1675391458, + "narHash": "sha256-ukDKZw922BnK5ohL9LhwtaDAdCsJL7L6ScNEyF1lO9w=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "c582ff7f0d8a7ea689ae836dfb1773f1814f472a", + "rev": "383a4acfd11d778d5c2efcf28376cbd845eeaedf", "type": "github" }, "original": { @@ -12167,7 +12856,6 @@ "rust-overlay_3": { "inputs": { "nixpkgs": [ - "swarsel", "swarsel", "lanzaboote", "nixpkgs" @@ -12190,7 +12878,6 @@ "rust-overlay_4": { "inputs": { "nixpkgs": [ - "swarsel", "swarsel", "swarsel", "lanzaboote", @@ -12217,7 +12904,6 @@ "swarsel", "swarsel", "swarsel", - "swarsel", "lanzaboote", "nixpkgs" ] @@ -12243,7 +12929,6 @@ "swarsel", "swarsel", "swarsel", - "swarsel", "lanzaboote", "nixpkgs" ] @@ -12270,17 +12955,16 @@ "swarsel", "swarsel", "swarsel", - "swarsel", "lanzaboote", "nixpkgs" ] }, "locked": { - "lastModified": 1751165203, - "narHash": "sha256-3QhlpAk2yn+ExwvRLtaixWsVW1q3OX3KXXe0l8VMLl4=", + "lastModified": 1754189623, + "narHash": "sha256-fstu5eb30UYwsxow0aQqkzxNxGn80UZjyehQVNVHuBk=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "90f547b90e73d3c6025e66c5b742d6db51c418c3", + "rev": "c582ff7f0d8a7ea689ae836dfb1773f1814f472a", "type": "github" }, "original": { @@ -12298,7 +12982,6 @@ "swarsel", "swarsel", "swarsel", - "swarsel", "lanzaboote", "nixpkgs" ] @@ -12327,16 +13010,16 @@ "swarsel", "swarsel", "swarsel", - "zjstatus", + "lanzaboote", "nixpkgs" ] }, "locked": { - "lastModified": 1750905536, - "narHash": "sha256-Mo7yXM5IvMGNvJPiNkFsVT2UERmnvjsKgnY6UyDdySQ=", + "lastModified": 1751165203, + "narHash": "sha256-3QhlpAk2yn+ExwvRLtaixWsVW1q3OX3KXXe0l8VMLl4=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "2fa7c0aabd15fa0ccc1dc7e675a4fcf0272ad9a1", + "rev": "90f547b90e73d3c6025e66c5b742d6db51c418c3", "type": "github" }, "original": { @@ -12475,7 +13158,7 @@ }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_8" }, "locked": { "lastModified": 1760998189, @@ -12493,7 +13176,7 @@ }, "sops-nix_2": { "inputs": { - "nixpkgs": "nixpkgs_15" + "nixpkgs": "nixpkgs_16" }, "locked": { "lastModified": 1760393368, @@ -12511,7 +13194,7 @@ }, "sops-nix_3": { "inputs": { - "nixpkgs": "nixpkgs_23" + "nixpkgs": "nixpkgs_24" }, "locked": { "lastModified": 1759635238, @@ -12529,7 +13212,7 @@ }, "sops-nix_4": { "inputs": { - "nixpkgs": "nixpkgs_31" + "nixpkgs": "nixpkgs_32" }, "locked": { "lastModified": 1758425756, @@ -12547,7 +13230,7 @@ }, "sops-nix_5": { "inputs": { - "nixpkgs": "nixpkgs_39" + "nixpkgs": "nixpkgs_40" }, "locked": { "lastModified": 1757847158, @@ -12565,7 +13248,7 @@ }, "sops-nix_6": { "inputs": { - "nixpkgs": "nixpkgs_47" + "nixpkgs": "nixpkgs_48" }, "locked": { "lastModified": 1754328224, @@ -12583,7 +13266,7 @@ }, "sops-nix_7": { "inputs": { - "nixpkgs": "nixpkgs_55" + "nixpkgs": "nixpkgs_56" }, "locked": { "lastModified": 1751606940, @@ -12601,7 +13284,7 @@ }, "sops-nix_8": { "inputs": { - "nixpkgs": "nixpkgs_63" + "nixpkgs": "nixpkgs_64" }, "locked": { "lastModified": 1751606940, @@ -12806,6 +13489,84 @@ "type": "github" } }, + "std": { + "inputs": { + "arion": [ + "nixos-extra-modules", + "nixt", + "std", + "blank" + ], + "blank": "blank", + "devshell": "devshell_4", + "dmerge": "dmerge", + "flake-utils": "flake-utils_4", + "incl": "incl", + "makes": [ + "nixos-extra-modules", + "nixt", + "std", + "blank" + ], + "microvm": [ + "nixos-extra-modules", + "nixt", + "std", + "blank" + ], + "n2c": "n2c", + "nixago": "nixago", + "nixpkgs": [ + "nixos-extra-modules", + "nixt", + "nixpkgs" + ], + "paisano": "paisano", + "paisano-mdbook-preprocessor": "paisano-mdbook-preprocessor", + "paisano-tui": "paisano-tui", + "yants": "yants" + }, + "locked": { + "lastModified": 1684180498, + "narHash": "sha256-kA58ms4yunOVPhe3r7V0IIKeWUV+vl4r2GTcfFfYW5o=", + "owner": "divnix", + "repo": "std", + "rev": "45b431ae09df98e046bcc8271aa209bdfc87444d", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "std", + "type": "github" + } + }, + "std-data-collection": { + "inputs": { + "nixpkgs": [ + "nixos-extra-modules", + "nixt", + "nixpkgs" + ], + "std": [ + "nixos-extra-modules", + "nixt", + "std" + ] + }, + "locked": { + "lastModified": 1676163535, + "narHash": "sha256-xofkWLBqU4zj5vzJhWor2Z9CyPGKt7UGkTchsCT48Po=", + "owner": "divnix", + "repo": "std-data-collection", + "rev": "f713d81a6197e1b0854fb201cc7acde5ef9e93d4", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "std-data-collection", + "type": "github" + } + }, "stylix": { "inputs": { "base16": "base16", @@ -12813,9 +13574,9 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-parts": "flake-parts_5", + "flake-parts": "flake-parts_6", "gnome-shell": "gnome-shell", - "nixpkgs": "nixpkgs_8", + "nixpkgs": "nixpkgs_9", "nur": "nur_2", "systems": "systems_5", "tinted-foot": "tinted-foot", @@ -12845,9 +13606,9 @@ "base16-helix": "base16-helix_2", "base16-vim": "base16-vim_2", "firefox-gnome-theme": "firefox-gnome-theme_2", - "flake-parts": "flake-parts_10", + "flake-parts": "flake-parts_11", "gnome-shell": "gnome-shell_2", - "nixpkgs": "nixpkgs_16", + "nixpkgs": "nixpkgs_17", "nur": "nur_4", "systems": "systems_10", "tinted-foot": "tinted-foot_2", @@ -12877,9 +13638,9 @@ "base16-helix": "base16-helix_3", "base16-vim": "base16-vim_3", "firefox-gnome-theme": "firefox-gnome-theme_3", - "flake-parts": "flake-parts_15", + "flake-parts": "flake-parts_16", "gnome-shell": "gnome-shell_3", - "nixpkgs": "nixpkgs_24", + "nixpkgs": "nixpkgs_25", "nur": "nur_6", "systems": "systems_15", "tinted-foot": "tinted-foot_3", @@ -12909,9 +13670,9 @@ "base16-helix": "base16-helix_4", "base16-vim": "base16-vim_4", "firefox-gnome-theme": "firefox-gnome-theme_4", - "flake-parts": "flake-parts_20", + "flake-parts": "flake-parts_21", "gnome-shell": "gnome-shell_4", - "nixpkgs": "nixpkgs_32", + "nixpkgs": "nixpkgs_33", "nur": "nur_8", "systems": "systems_19", "tinted-foot": "tinted-foot_4", @@ -12941,9 +13702,9 @@ "base16-helix": "base16-helix_5", "base16-vim": "base16-vim_5", "firefox-gnome-theme": "firefox-gnome-theme_5", - "flake-parts": "flake-parts_25", + "flake-parts": "flake-parts_26", "gnome-shell": "gnome-shell_5", - "nixpkgs": "nixpkgs_40", + "nixpkgs": "nixpkgs_41", "nur": "nur_10", "systems": "systems_23", "tinted-foot": "tinted-foot_5", @@ -12973,9 +13734,9 @@ "base16-helix": "base16-helix_6", "base16-vim": "base16-vim_6", "firefox-gnome-theme": "firefox-gnome-theme_6", - "flake-parts": "flake-parts_30", + "flake-parts": "flake-parts_31", "gnome-shell": "gnome-shell_6", - "nixpkgs": "nixpkgs_48", + "nixpkgs": "nixpkgs_49", "nur": "nur_12", "systems": "systems_27", "tinted-foot": "tinted-foot_6", @@ -13005,9 +13766,9 @@ "base16-helix": "base16-helix_7", "base16-vim": "base16-vim_7", "firefox-gnome-theme": "firefox-gnome-theme_7", - "flake-parts": "flake-parts_35", + "flake-parts": "flake-parts_36", "gnome-shell": "gnome-shell_7", - "nixpkgs": "nixpkgs_56", + "nixpkgs": "nixpkgs_57", "nur": "nur_14", "systems": "systems_30", "tinted-foot": "tinted-foot_7", @@ -13037,9 +13798,9 @@ "base16-helix": "base16-helix_8", "base16-vim": "base16-vim_8", "firefox-gnome-theme": "firefox-gnome-theme_8", - "flake-parts": "flake-parts_40", + "flake-parts": "flake-parts_41", "gnome-shell": "gnome-shell_8", - "nixpkgs": "nixpkgs_64", + "nixpkgs": "nixpkgs_65", "nur": "nur_16", "systems": "systems_33", "tinted-foot": "tinted-foot_8", @@ -13064,10 +13825,10 @@ }, "swarsel": { "inputs": { - "devshell": "devshell_3", + "devshell": "devshell_5", "disko": "disko_2", "emacs-overlay": "emacs-overlay_2", - "flake-parts": "flake-parts_6", + "flake-parts": "flake-parts_7", "home-manager": "home-manager_3", "impermanence": "impermanence_2", "lanzaboote": "lanzaboote_2", @@ -13080,7 +13841,7 @@ "nixgl": "nixgl_2", "nixos-generators": "nixos-generators_2", "nixos-hardware": "nixos-hardware_2", - "nixpkgs": "nixpkgs_12", + "nixpkgs": "nixpkgs_13", "nixpkgs-dev": "nixpkgs-dev_2", "nixpkgs-kernel": "nixpkgs-kernel_2", "nixpkgs-stable": "nixpkgs-stable_6", @@ -13088,7 +13849,7 @@ "nixpkgs-stable24_11": "nixpkgs-stable24_11_2", "nswitch-rcm-nix": "nswitch-rcm-nix_2", "nur": "nur_3", - "pre-commit-hooks": "pre-commit-hooks_4", + "pre-commit-hooks": "pre-commit-hooks_5", "sops-nix": "sops-nix_2", "spicetify-nix": "spicetify-nix_2", "stylix": "stylix_2", @@ -13115,8 +13876,8 @@ }, "swarsel-modules": { "inputs": { - "flake-parts": "flake-parts_41", - "nixpkgs": "nixpkgs_67", + "flake-parts": "flake-parts_42", + "nixpkgs": "nixpkgs_68", "systems": "systems_40" }, "locked": { @@ -13136,8 +13897,8 @@ }, "swarsel-modules_2": { "inputs": { - "flake-parts": "flake-parts_42", - "nixpkgs": "nixpkgs_69", + "flake-parts": "flake-parts_43", + "nixpkgs": "nixpkgs_70", "systems": "systems_44" }, "locked": { @@ -13157,8 +13918,8 @@ }, "swarsel-modules_3": { "inputs": { - "flake-parts": "flake-parts_43", - "nixpkgs": "nixpkgs_71", + "flake-parts": "flake-parts_44", + "nixpkgs": "nixpkgs_72", "systems": "systems_48" }, "locked": { @@ -13178,8 +13939,8 @@ }, "swarsel-modules_4": { "inputs": { - "flake-parts": "flake-parts_44", - "nixpkgs": "nixpkgs_73", + "flake-parts": "flake-parts_45", + "nixpkgs": "nixpkgs_74", "systems": "systems_52" }, "locked": { @@ -13199,8 +13960,8 @@ }, "swarsel-modules_5": { "inputs": { - "flake-parts": "flake-parts_46", - "nixpkgs": "nixpkgs_76", + "flake-parts": "flake-parts_47", + "nixpkgs": "nixpkgs_77", "systems": "systems_57" }, "locked": { @@ -13220,8 +13981,8 @@ }, "swarsel-modules_6": { "inputs": { - "flake-parts": "flake-parts_48", - "nixpkgs": "nixpkgs_79", + "flake-parts": "flake-parts_49", + "nixpkgs": "nixpkgs_80", "systems": "systems_62" }, "locked": { @@ -13241,8 +14002,8 @@ }, "swarsel-nix": { "inputs": { - "flake-parts": "flake-parts_45", - "nixpkgs": "nixpkgs_74", + "flake-parts": "flake-parts_46", + "nixpkgs": "nixpkgs_75", "systems": "systems_53" }, "locked": { @@ -13262,8 +14023,8 @@ }, "swarsel-nix_2": { "inputs": { - "flake-parts": "flake-parts_47", - "nixpkgs": "nixpkgs_77", + "flake-parts": "flake-parts_48", + "nixpkgs": "nixpkgs_78", "systems": "systems_58" }, "locked": { @@ -13283,8 +14044,8 @@ }, "swarsel-nix_3": { "inputs": { - "flake-parts": "flake-parts_49", - "nixpkgs": "nixpkgs_80", + "flake-parts": "flake-parts_50", + "nixpkgs": "nixpkgs_81", "systems": "systems_63" }, "locked": { @@ -13304,10 +14065,10 @@ }, "swarsel_2": { "inputs": { - "devshell": "devshell_5", + "devshell": "devshell_7", "disko": "disko_3", "emacs-overlay": "emacs-overlay_3", - "flake-parts": "flake-parts_11", + "flake-parts": "flake-parts_12", "home-manager": "home-manager_5", "impermanence": "impermanence_3", "lanzaboote": "lanzaboote_3", @@ -13320,7 +14081,7 @@ "nixgl": "nixgl_3", "nixos-generators": "nixos-generators_3", "nixos-hardware": "nixos-hardware_3", - "nixpkgs": "nixpkgs_20", + "nixpkgs": "nixpkgs_21", "nixpkgs-dev": "nixpkgs-dev_3", "nixpkgs-kernel": "nixpkgs-kernel_3", "nixpkgs-stable": "nixpkgs-stable_9", @@ -13328,7 +14089,7 @@ "nixpkgs-stable24_11": "nixpkgs-stable24_11_3", "nswitch-rcm-nix": "nswitch-rcm-nix_3", "nur": "nur_5", - "pre-commit-hooks": "pre-commit-hooks_6", + "pre-commit-hooks": "pre-commit-hooks_7", "sops-nix": "sops-nix_3", "spicetify-nix": "spicetify-nix_3", "stylix": "stylix_3", @@ -13355,10 +14116,10 @@ }, "swarsel_3": { "inputs": { - "devshell": "devshell_7", + "devshell": "devshell_9", "disko": "disko_4", "emacs-overlay": "emacs-overlay_4", - "flake-parts": "flake-parts_16", + "flake-parts": "flake-parts_17", "fw-fanctrl": "fw-fanctrl", "home-manager": "home-manager_7", "impermanence": "impermanence_4", @@ -13371,7 +14132,7 @@ "nixgl": "nixgl_4", "nixos-generators": "nixos-generators_4", "nixos-hardware": "nixos-hardware_4", - "nixpkgs": "nixpkgs_28", + "nixpkgs": "nixpkgs_29", "nixpkgs-dev": "nixpkgs-dev_4", "nixpkgs-kernel": "nixpkgs-kernel_4", "nixpkgs-stable": "nixpkgs-stable_12", @@ -13379,7 +14140,7 @@ "nixpkgs-stable24_11": "nixpkgs-stable24_11_4", "nswitch-rcm-nix": "nswitch-rcm-nix_4", "nur": "nur_7", - "pre-commit-hooks": "pre-commit-hooks_8", + "pre-commit-hooks": "pre-commit-hooks_9", "sops-nix": "sops-nix_4", "spicetify-nix": "spicetify-nix_4", "stylix": "stylix_4", @@ -13405,10 +14166,10 @@ }, "swarsel_4": { "inputs": { - "devshell": "devshell_9", + "devshell": "devshell_11", "disko": "disko_5", "emacs-overlay": "emacs-overlay_5", - "flake-parts": "flake-parts_21", + "flake-parts": "flake-parts_22", "fw-fanctrl": "fw-fanctrl_2", "home-manager": "home-manager_9", "impermanence": "impermanence_5", @@ -13421,7 +14182,7 @@ "nixgl": "nixgl_5", "nixos-generators": "nixos-generators_5", "nixos-hardware": "nixos-hardware_5", - "nixpkgs": "nixpkgs_36", + "nixpkgs": "nixpkgs_37", "nixpkgs-dev": "nixpkgs-dev_5", "nixpkgs-kernel": "nixpkgs-kernel_5", "nixpkgs-stable": "nixpkgs-stable_15", @@ -13429,7 +14190,7 @@ "nixpkgs-stable24_11": "nixpkgs-stable24_11_5", "nswitch-rcm-nix": "nswitch-rcm-nix_5", "nur": "nur_9", - "pre-commit-hooks": "pre-commit-hooks_10", + "pre-commit-hooks": "pre-commit-hooks_11", "sops-nix": "sops-nix_5", "spicetify-nix": "spicetify-nix_5", "stylix": "stylix_5", @@ -13455,10 +14216,10 @@ }, "swarsel_5": { "inputs": { - "devshell": "devshell_11", + "devshell": "devshell_13", "disko": "disko_6", "emacs-overlay": "emacs-overlay_6", - "flake-parts": "flake-parts_26", + "flake-parts": "flake-parts_27", "fw-fanctrl": "fw-fanctrl_3", "home-manager": "home-manager_11", "impermanence": "impermanence_6", @@ -13471,7 +14232,7 @@ "nixgl": "nixgl_6", "nixos-generators": "nixos-generators_6", "nixos-hardware": "nixos-hardware_6", - "nixpkgs": "nixpkgs_44", + "nixpkgs": "nixpkgs_45", "nixpkgs-dev": "nixpkgs-dev_6", "nixpkgs-kernel": "nixpkgs-kernel_6", "nixpkgs-stable": "nixpkgs-stable_18", @@ -13479,7 +14240,7 @@ "nixpkgs-stable24_11": "nixpkgs-stable24_11_6", "nswitch-rcm-nix": "nswitch-rcm-nix_6", "nur": "nur_11", - "pre-commit-hooks": "pre-commit-hooks_12", + "pre-commit-hooks": "pre-commit-hooks_13", "sops-nix": "sops-nix_6", "spicetify-nix": "spicetify-nix_6", "stylix": "stylix_6", @@ -13505,10 +14266,10 @@ }, "swarsel_6": { "inputs": { - "devshell": "devshell_13", + "devshell": "devshell_15", "disko": "disko_7", "emacs-overlay": "emacs-overlay_7", - "flake-parts": "flake-parts_31", + "flake-parts": "flake-parts_32", "fw-fanctrl": "fw-fanctrl_4", "home-manager": "home-manager_13", "impermanence": "impermanence_7", @@ -13520,7 +14281,7 @@ "nixgl": "nixgl_7", "nixos-generators": "nixos-generators_7", "nixos-hardware": "nixos-hardware_7", - "nixpkgs": "nixpkgs_52", + "nixpkgs": "nixpkgs_53", "nixpkgs-dev": "nixpkgs-dev_7", "nixpkgs-kernel": "nixpkgs-kernel_7", "nixpkgs-stable": "nixpkgs-stable_20", @@ -13528,7 +14289,7 @@ "nixpkgs-stable24_11": "nixpkgs-stable24_11_7", "nswitch-rcm-nix": "nswitch-rcm-nix_7", "nur": "nur_13", - "pre-commit-hooks": "pre-commit-hooks_14", + "pre-commit-hooks": "pre-commit-hooks_15", "sops-nix": "sops-nix_7", "stylix": "stylix_7", "swarsel": "swarsel_7", @@ -13552,10 +14313,10 @@ }, "swarsel_7": { "inputs": { - "devshell": "devshell_15", + "devshell": "devshell_17", "disko": "disko_8", "emacs-overlay": "emacs-overlay_8", - "flake-parts": "flake-parts_36", + "flake-parts": "flake-parts_37", "fw-fanctrl": "fw-fanctrl_5", "home-manager": "home-manager_15", "impermanence": "impermanence_8", @@ -13567,7 +14328,7 @@ "nixgl": "nixgl_8", "nixos-generators": "nixos-generators_8", "nixos-hardware": "nixos-hardware_8", - "nixpkgs": "nixpkgs_60", + "nixpkgs": "nixpkgs_61", "nixpkgs-dev": "nixpkgs-dev_8", "nixpkgs-kernel": "nixpkgs-kernel_8", "nixpkgs-stable": "nixpkgs-stable_22", @@ -13575,7 +14336,7 @@ "nixpkgs-stable24_11": "nixpkgs-stable24_11_8", "nswitch-rcm-nix": "nswitch-rcm-nix_8", "nur": "nur_15", - "pre-commit-hooks": "pre-commit-hooks_16", + "pre-commit-hooks": "pre-commit-hooks_17", "sops-nix": "sops-nix_8", "stylix": "stylix_8", "systems": "systems_34", @@ -15693,31 +16454,33 @@ "type": "github" } }, - "zjstatus": { + "yants": { "inputs": { - "crane": "crane_9", - "flake-utils": "flake-utils_20", - "nixpkgs": "nixpkgs_65", - "rust-overlay": "rust-overlay_9" + "nixpkgs": [ + "nixos-extra-modules", + "nixt", + "std", + "nixpkgs" + ] }, "locked": { - "lastModified": 1750957292, - "narHash": "sha256-2CYTG+jxP5e7GHAj1t5aMsgb0Rom4jdOb3rsdLKpVNA=", - "owner": "dj95", - "repo": "zjstatus", - "rev": "abd848f23eff00d21ec09278072111d97dfd7fe6", + "lastModified": 1667096281, + "narHash": "sha256-wRRec6ze0gJHmGn6m57/zhz/Kdvp9HS4Nl5fkQ+uIuA=", + "owner": "divnix", + "repo": "yants", + "rev": "d18f356ec25cb94dc9c275870c3a7927a10f8c3c", "type": "github" }, "original": { - "owner": "dj95", - "repo": "zjstatus", + "owner": "divnix", + "repo": "yants", "type": "github" } }, - "zjstatus_2": { + "zjstatus": { "inputs": { "crane": "crane_10", - "flake-utils": "flake-utils_21", + "flake-utils": "flake-utils_22", "nixpkgs": "nixpkgs_66", "rust-overlay": "rust-overlay_10" }, @@ -15735,13 +16498,34 @@ "type": "github" } }, - "zjstatus_3": { + "zjstatus_2": { "inputs": { "crane": "crane_11", - "flake-utils": "flake-utils_22", - "nixpkgs": "nixpkgs_68", + "flake-utils": "flake-utils_23", + "nixpkgs": "nixpkgs_67", "rust-overlay": "rust-overlay_11" }, + "locked": { + "lastModified": 1750957292, + "narHash": "sha256-2CYTG+jxP5e7GHAj1t5aMsgb0Rom4jdOb3rsdLKpVNA=", + "owner": "dj95", + "repo": "zjstatus", + "rev": "abd848f23eff00d21ec09278072111d97dfd7fe6", + "type": "github" + }, + "original": { + "owner": "dj95", + "repo": "zjstatus", + "type": "github" + } + }, + "zjstatus_3": { + "inputs": { + "crane": "crane_12", + "flake-utils": "flake-utils_24", + "nixpkgs": "nixpkgs_69", + "rust-overlay": "rust-overlay_12" + }, "locked": { "lastModified": 1753722377, "narHash": "sha256-L9CujCLS4PmpEhGKqezD4DognRNcYDz/oAL7T8jqCxk=", @@ -15758,10 +16542,10 @@ }, "zjstatus_4": { "inputs": { - "crane": "crane_12", - "flake-utils": "flake-utils_23", - "nixpkgs": "nixpkgs_70", - "rust-overlay": "rust-overlay_12" + "crane": "crane_13", + "flake-utils": "flake-utils_25", + "nixpkgs": "nixpkgs_71", + "rust-overlay": "rust-overlay_13" }, "locked": { "lastModified": 1757256304, @@ -15779,10 +16563,10 @@ }, "zjstatus_5": { "inputs": { - "crane": "crane_13", - "flake-utils": "flake-utils_24", - "nixpkgs": "nixpkgs_72", - "rust-overlay": "rust-overlay_13" + "crane": "crane_14", + "flake-utils": "flake-utils_26", + "nixpkgs": "nixpkgs_73", + "rust-overlay": "rust-overlay_14" }, "locked": { "lastModified": 1757256304, @@ -15800,10 +16584,10 @@ }, "zjstatus_6": { "inputs": { - "crane": "crane_14", - "flake-utils": "flake-utils_25", - "nixpkgs": "nixpkgs_75", - "rust-overlay": "rust-overlay_14" + "crane": "crane_15", + "flake-utils": "flake-utils_27", + "nixpkgs": "nixpkgs_76", + "rust-overlay": "rust-overlay_15" }, "locked": { "lastModified": 1757256304, @@ -15821,10 +16605,10 @@ }, "zjstatus_7": { "inputs": { - "crane": "crane_15", - "flake-utils": "flake-utils_26", - "nixpkgs": "nixpkgs_78", - "rust-overlay": "rust-overlay_15" + "crane": "crane_16", + "flake-utils": "flake-utils_28", + "nixpkgs": "nixpkgs_79", + "rust-overlay": "rust-overlay_16" }, "locked": { "lastModified": 1757256304, @@ -15842,10 +16626,10 @@ }, "zjstatus_8": { "inputs": { - "crane": "crane_16", - "flake-utils": "flake-utils_27", - "nixpkgs": "nixpkgs_81", - "rust-overlay": "rust-overlay_16" + "crane": "crane_17", + "flake-utils": "flake-utils_29", + "nixpkgs": "nixpkgs_82", + "rust-overlay": "rust-overlay_17" }, "locked": { "lastModified": 1761162625, diff --git a/flake.nix b/flake.nix index 543216f..065ad8b 100644 --- a/flake.nix +++ b/flake.nix @@ -94,6 +94,10 @@ url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; + nixos-extra-modules = { + url = "github:oddlama/nixos-extra-modules"; + inputs.nixpkgs.follows = "nixpkgs"; + }; microvm = { url = "github:astro/microvm.nix"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/hosts/home/treehouse/default.nix b/hosts/home/treehouse/default.nix index ca98ce1..459976e 100644 --- a/hosts/home/treehouse/default.nix +++ b/hosts/home/treehouse/default.nix @@ -1,4 +1,4 @@ -{ self, outputs, ... }: +{ self, ... }: { imports = [ @@ -8,12 +8,6 @@ "${self}/modules/nixos/common/meta.nix" ]; - nixpkgs = { - overlays = [ outputs.overlays.default ]; - config = { - allowUnfree = true; - }; - }; services.xcape = { enable = true; diff --git a/hosts/nixos/summers/default.nix b/hosts/nixos/summers/default.nix new file mode 100644 index 0000000..43c4b49 --- /dev/null +++ b/hosts/nixos/summers/default.nix @@ -0,0 +1,108 @@ +{ inputs, lib, config, configName, minimal, nodes, globals, ... }: +{ + + imports = [ + ./hardware-configuration.nix + ./disk-config.nix + ]; + + boot = { + loader.systemd-boot.enable = true; + loader.efi.canTouchEfiVariables = true; + }; + + # globals.hosts.${config.node.name}.ipv4 = config.repo.secrets.local.ipv4; + + networking = { + inherit (config.repo.secrets.local) hostId; + hostName = configName; + firewall.enable = true; + enableIPv6 = true; + }; + + swarselsystems = { + info = "ASUS Z10PA-D8, 2* Intel Xeon E5-2650 v4, 128GB RAM"; + flakePath = "/root/.dotfiles"; + isImpermanence = true; + isSecureBoot = true; + isCrypted = true; + isBtrfs = true; + isLinux = true; + isNixos = true; + withMicroVMs = false; + }; + +} // lib.optionalAttrs (!minimal) { + + swarselprofiles = { + server = true; + }; + + swarselmodules = { + optional = { + microvmHost = true; + }; + server = { + nfs = false; + nginx = false; + kavita = false; + restic = false; + jellyfin = false; + navidrome = false; + spotifyd = false; + mpd = false; + postgresql = false; + matrix = false; + nextcloud = false; + immich = false; + paperless = false; + transmission = false; + syncthing = false; + grafana = false; + emacs = false; + freshrss = false; + jenkins = false; + kanidm = false; + firefly-iii = false; + koillection = false; + radicale = false; + atuin = false; + forgejo = false; + ankisync = false; + homebox = false; + opkssh = false; + garage = false; + }; + }; + + microvm.vms = + let + mkMicrovm = guestName: { + ${guestName} = { + backend = "microvm"; + autostart = true; + modules = [ + ./guests/${guestName}.nix + { + node.secretsDir = ./secrets/${guestName}; + } + ]; + microvm = { + system = "x86_64-linux"; + # baseMac = config.repo.secrets.local.networking.interfaces.lan.mac; + # interfaces.vlan-services = { }; + }; + specialArgs = { + inherit (config) nodes globals; + inherit lib; + inherit inputs minimal; + }; + }; + }; + in + lib.mkIf (!minimal && config.swarselsystems.withMicroVMs) ( + { } + // mkMicrovm "guest1" + ); + +} diff --git a/hosts/nixos/summers/disk-config.nix b/hosts/nixos/summers/disk-config.nix new file mode 100644 index 0000000..a4b5089 --- /dev/null +++ b/hosts/nixos/summers/disk-config.nix @@ -0,0 +1,118 @@ +{ lib, config, ... }: +let + type = "btrfs"; + extraArgs = [ "-L" "nixos" "-f" ]; # force overwrite + subvolumes = { + "/root" = { + mountpoint = "/"; + mountOptions = [ + "subvol=root" + "compress=zstd" + "noatime" + ]; + }; + "/home" = lib.mkIf config.swarselsystems.isImpermanence { + mountpoint = "/home"; + mountOptions = [ + "subvol=home" + "compress=zstd" + "noatime" + ]; + }; + "/persist" = lib.mkIf config.swarselsystems.isImpermanence { + mountpoint = "/persist"; + mountOptions = [ + "subvol=persist" + "compress=zstd" + "noatime" + ]; + }; + "/log" = lib.mkIf config.swarselsystems.isImpermanence { + mountpoint = "/var/log"; + mountOptions = [ + "subvol=log" + "compress=zstd" + "noatime" + ]; + }; + "/nix" = { + mountpoint = "/nix"; + mountOptions = [ + "subvol=nix" + "compress=zstd" + "noatime" + ]; + }; + "/swap" = lib.mkIf config.swarselsystems.isSwap { + mountpoint = "/.swapvol"; + swap.swapfile.size = config.swarselsystems.swapSize; + }; + }; +in +{ + disko.devices = { + disk = { + disk0 = { + type = "disk"; + device = config.swarselsystems.rootDisk; + content = { + type = "gpt"; + partitions = { + ESP = { + priority = 1; + name = "ESP"; + size = "512M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = [ "defaults" ]; + }; + }; + root = lib.mkIf (!config.swarselsystems.isCrypted) { + size = "100%"; + content = { + inherit type subvolumes extraArgs; + postCreateHook = lib.mkIf config.swarselsystems.isImpermanence '' + MNTPOINT=$(mktemp -d) + mount "/dev/disk/by-label/nixos" "$MNTPOINT" -o subvolid=5 + trap 'umount $MNTPOINT; rm -rf $MNTPOINT' EXIT + btrfs subvolume snapshot -r $MNTPOINT/root $MNTPOINT/root-blank + ''; + }; + }; + luks = lib.mkIf config.swarselsystems.isCrypted { + size = "100%"; + content = { + type = "luks"; + name = "cryptroot"; + passwordFile = "/tmp/disko-password"; # this is populated by bootstrap.sh + settings = { + allowDiscards = true; + # https://github.com/hmajid2301/dotfiles/blob/a0b511c79b11d9b4afe2a5e2b7eedb2af23e288f/systems/x86_64-linux/framework/disks.nix#L36 + crypttabExtraOpts = [ + "fido2-device=auto" + "token-timeout=10" + ]; + }; + content = { + inherit type subvolumes extraArgs; + postCreateHook = lib.mkIf config.swarselsystems.isImpermanence '' + MNTPOINT=$(mktemp -d) + mount "/dev/mapper/cryptroot" "$MNTPOINT" -o subvolid=5 + trap 'umount $MNTPOINT; rm -rf $MNTPOINT' EXIT + btrfs subvolume snapshot -r $MNTPOINT/root $MNTPOINT/root-blank + ''; + }; + }; + }; + }; + }; + }; + }; + }; + + fileSystems."/persist".neededForBoot = lib.mkIf config.swarselsystems.isImpermanence true; + fileSystems."/home".neededForBoot = lib.mkIf config.swarselsystems.isImpermanence true; +} diff --git a/hosts/nixos/summers/guests/guest1/default.nix b/hosts/nixos/summers/guests/guest1/default.nix new file mode 100644 index 0000000..a08c95c --- /dev/null +++ b/hosts/nixos/summers/guests/guest1/default.nix @@ -0,0 +1,25 @@ +{ lib, minimal, ... }: +{ + + swarselsystems = { + info = "ASUS Z10PA-D8, 2* Intel Xeon E5-2650 v4, 128GB RAM"; + }; + +} // lib.optionalAttrs (!minimal) { + + swarselprofiles = { + server = false; + }; + + swarselmodules = { + optional = { + microvmGuest = false; + }; + }; + + microvm = { + mem = 1024 * 4; + vcpu = 2; + }; + +} diff --git a/hosts/nixos/summers/hardware-configuration.nix b/hosts/nixos/summers/hardware-configuration.nix new file mode 100644 index 0000000..bef7987 --- /dev/null +++ b/hosts/nixos/summers/hardware-configuration.nix @@ -0,0 +1,28 @@ +{ config, lib, modulesPath, ... }: + +{ + imports = + [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot = { + initrd.availableKernelModules = [ "ahci" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ]; + initrd.kernelModules = [ ]; + kernelModules = [ "kvm-intel" ]; + extraModulePackages = [ ]; + + supportedFilesystems = [ "zfs" ]; + zfs.extraPools = [ "Vault" ]; + }; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp3s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/nixos/summers/secrets/guest1/pii.nix.enc b/hosts/nixos/summers/secrets/guest1/pii.nix.enc new file mode 100644 index 0000000..8605563 --- /dev/null +++ b/hosts/nixos/summers/secrets/guest1/pii.nix.enc @@ -0,0 +1,15 @@ +{ + "data": "ENC[AES256_GCM,data:pGWiWA==,iv:sVpYJiphhvVPEo2MUMnpjlJmvf58/UJTTVVdU9dpqzM=,tag:2AsQRCyN9Pc/hnqviCo43g==,type:str]", + "sops": { + "lastmodified": "2025-11-06T12:11:19Z", + "mac": "ENC[AES256_GCM,data:NBAgy3MNd+p8Ih6v/JuxuMWgh0k9xj5Trg7mggBE/LrxfCZg+BpbhYcmAw/FW9Du5gq3Pcynnql3dqwKlzHEtkEOcI1MJSnBSWexgLxwEtRwbTJVOqEkCxby6dcQ4HWD1ZZnwa9Q7Cg1vcPD/yZuzVUH15mFHic7s5M5Xzdfu/w=,iv:tv8CFuXJ0iqh/Vho7vSoOpfhcGfCElMLWNvjxoE3fMg=,tag:pGP3CjKFFm0UuVgSCnn4RA==,type:str]", + "pgp": [ + { + "created_at": "2025-11-06T12:11:04Z", + "enc": "-----BEGIN PGP MESSAGE-----\n\nhQIMAwDh3VI7VctTARAAwZd6dmNcZqOWY7Ro6DXCRAD2LJuzR0AA26cRRzPgTPcw\nOwvV+Nh3hBWcZb5qkjKysZKGlIxzs4f02dKI172vUyIWQ6P5skygOOOpbr9g5171\nY0XTrmemesSKNfoUhsMFMCbFUc4HUxkUK7zadLk1AiBUqZMIFtx/riFMUBS2qTpR\nuLWiebt1Dw+rwcR8rBNxXPbeclm7322YOQDLUk4sHfi0vTvn+3sfGkbJ+OcJckoD\ndjVhWFqGUAbbELoR8yHpb+Ps6RYjKRNFNros9Yx9zQ18512gxOpRSzm0MTkKFyrz\n1UYVcv4Oz4W/e4nh1z2/re5X3l/HFUzwBG6AUTrYVuRo580kkZvWYFxHT6R+goVC\n5dhkqZpowrGpDIE/C7hKLenFIcOl1Nw5wgJ4Y9EmfZzorUnjJqT1Et2b2GU0hxvY\nKny+fiDeCfNdLzJejSNNg1/whoVmHbw3Q2aBJP0NL3nmNvaykO8RSA8WmzvQa+MA\nXweflh5G9lXOdH2vwb6EelOXpxlTjI7K/43Nbw/SXf/e1FKYK5l6TscyGEcHpFux\ns4ufYkCqTgxdKZjKwh0vqbdmbPUOCe/jqBOz6s/L/sR1/+8c2iIs0JVZd1VJSvDu\nIdfDfQh4wmso8L0qpjWimmkf0Y9itLWZo/oyioIqjVQ9+Daj2mvMkbKcSa486b2F\nAgwDC9FRLmchgYQBD/9lVmkHkPz5pbJV5U0nL3h/xx0JSyt6YYtLDacW8fw135GT\nojHijHvJAd1MqbNv391LcsZ1jtnUawNf6GAkr649lRuEH/WhNitXq20Z/06v5lwt\nGDhPMMf5uh+Uwgjxbeg/PFeTKILS2VX0tjJ8yeos2jNMOrmmwIg74V6mJk03E85K\nId06e2qNjzWlESyWOCFkfLQfSOTajQWmGyil8vNglmjuZdzLSE8eL6nA0hePnfJW\nOwewWcXEzHeeJsaevKFBBDpimAqi3XbKasQbZNSSFlkmw0vzAWKw5mzcdTMseae1\nLafjem7uw2epr4HIhwCZ47pCFrKcbweZMuUY557SomIGmv93OvglnZC40AYkJuNU\nIAVwNc8W/pd+jyiHh6tMlXfQ5/n25AcylDcacxxalNcKI0emNC90TsFc6wDpLh5D\n+R6kJ7GK8tI5BwIwtGIQmFsRREKE1x+IYATtKwQskb0Rng/D6eqNEvs8pjD1nGO3\nfNTG9G8PgC07TXSKGcNGytZy/GNSW9mnFgDgoiqh29bgfoJfSTWWvwZlzFXdWm0c\nzOiV5JSDRLewaqzhsQ/etms7qJIccRD7WcvM82x7UF0VYGd92EVsZxsq2aSVlMob\nCsxNXxij3qqNHdFgUuYYDzFym3/zmmi2wltPOZl7qYMhZI9P6wCsvDpxlFv16tJc\nAaBkBf1oOnjDvJm5i62KCEcRUmphKOB6Odr9/VHkAtgjPdWCOyge7ktbcwgsPw8L\ndemiSrNAglDX9RnPST5ggShZWn1Ik2mFfocCapvGBi5Hj9I/4xG/oIKREYc=\n=Ty0h\n-----END PGP MESSAGE-----", + "fp": "4BE7925262289B476DBBC17B76FD3810215AE097" + } + ], + "version": "3.11.0" + } +} diff --git a/hosts/nixos/summers/secrets/pii.nix.enc b/hosts/nixos/summers/secrets/pii.nix.enc new file mode 100644 index 0000000..dae95ff --- /dev/null +++ b/hosts/nixos/summers/secrets/pii.nix.enc @@ -0,0 +1,26 @@ +{ + "data": "ENC[AES256_GCM,data:XTHUIhn7yVn2/EvZBSg1v+EU154Kj0hgvHbUdpnc2W4U+0UNBlqxRvVxw8XFm8uo1en2hXoS,iv:XeEzWY0UB/QqbxoIQJEOkWlaU5nyETl0Aki7iyRq/Y8=,tag:rcNiCc5a6+wLYAzX1pMxxQ==,type:str]", + "sops": { + "age": [ + { + "recipient": "age1h72072slm2pthn9m2qwjsyy2dsazc6hz97kpzh4gksvv0r2jqecqul8w63", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBET1RmRTM5OUxJMGNyWUZK\nMXFqUWF2ZHhOZ1pxa0RDbkNzWnVzVFFCbTJrCm1oU25haDl5eFg5T1VzOXByai84\ndTR6TGREVnBHNlV4S254dzh2Z1lvK2sKLS0tIGFLaWJFQ2VwaWtxaURqNDU2ekRQ\na09Hbm4vNnVQaEV1aGtqTTVOUWN2b28KQaoPc/UKaeQ72GdlbtWFdALywHcUkewf\nK5pEz41pzDKOjatypm9X8ZEIEarjOHIZgMpazVM4i1PRUUefSE0phw==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age18quey88vge7xytclg2nuq4ncme86dg04lxwczqxczmdchnjg3p0saehsnh", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNeGtTZ0ZSV0trWlQrS2dV\nSFo0dytGYXhRTjl6cDZrUU0wZ1IybDVRaFZrCmZmRmxJNmdwS0xodHdEOGU4bldU\nR1JScHAvZHhlVTBJbWExb0VpR0h2MXMKLS0tIDYwQmZpMjdYRmpBeXFNOXArN0h5\nVGN1THljeCtVV0hXenMyRVJkMjlHNEEKm+yZTT48nYr3H0Bd1OKw/CYk1kwnrBzk\nTgSQHsGXhmOyDag9cSZ4wAOmqtqSjA9bouFBuhl2lSbgpjnarvFaXQ==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2025-11-06T11:16:16Z", + "mac": "ENC[AES256_GCM,data:rBE1qTiaLme63i23YL16qmDE6rcKaxwWwzzqgsv4SmKCBJonjiyUc4DyRU8JuCbTx6K9+4VtERJzTLlbXhvjXl27LRQtfbNSBXBIyTgdSz0Fo46lDdVUMFSdPDbU97XAx9P3eu425aspkJYxffOJ2lvqinAVuw9U6oBpot5jVaw=,iv:N3mp0DY80UVGa4Vf4ya+5B/9w8iTihAyg/XgStgtHAo=,tag:tKjnbFm0yFddj759OK5Mdw==,type:str]", + "pgp": [ + { + "created_at": "2025-08-24T23:36:17Z", + "enc": "-----BEGIN PGP MESSAGE-----\n\nhQIMAwDh3VI7VctTARAAwf7TLx0TR1HBhh57CyIQLw8ztc9oblKAW/V7bSlQM/wR\nIwQTcTi3azdI9yewDRO30rIr++FEapdGVdpXoqQ8zcl49VjwDux6wzF3bsmR5Goc\nlTkDd0bmz8RBfsK+6efXiRqo3C0yP2ZTOh3PSOvsXKbYS6wY3TvNBdGnAYrfOvEw\nmBFRhn6uakw3zjVUngB1di07DH3y0wEb/r6+Mzoswzg4DqT1SAdDkfS9dpn9h3MW\n3NBesYlOukLrNA5Toi6x/fmE2lrPHt5QxPdvfvKe5ye4myZ/gBn1mdejB6U9nOsk\nRCJFMosjBH7jIpwokTjUT6Vs+zs8yrF+gbP82H4RVfZymMfdZoU/pTfYe1Mwg6Yi\ntlHyiRBgSPBY8Doa2hM8/yvmfHVMqSQf8uXltz2VC7JUGD6P0QbDLpqY3URmHg/q\nwN3zYJLlSIkU6Z7oivTjfg0dR32Z80lCdZDQf+OQsRtCUi169Fgxr7+HhdxJyj49\nFIb6CR0DHW4vsEj1GPAa0Q4uMfCxLiSZfesY8myoCtlVo7oeqx787KicJB5PryHr\nyZweKd7tXO9g8LNJtECTZ81y2/sCfSZPBia6M4oz56pIFK4jhYCY3iPnWIS77axu\n5MmqZNOP06obp87nt1ea51BmXkaYxmSPoQ5R29CeYU+m9q+kKvizncgsCl/O7U6F\nAgwDC9FRLmchgYQBEADJo2kPzrxLHptsr6aoIxfYNrQ7JJM3FAZ7do5YvAbQsl5t\ny45qZ4+qWIEMRXwji2TvgSg8/ylnZfN2+rTHdtNJkDdJ2sX+RDr8pm7L3VS2Zhjf\nIp1SdPd5cm/3QupegzUR+kcPa+gPM4asGSytIkAnnpev/DCnLsrqiejdosTDj9dn\nFtPKJKSUBzJSNRxBSpM9L+cTU1qyMT024D5Qvq6vBOjFI1YV3LSfVXQe7OZxxxVX\naChkGR1v3UjndQ4Yv9hamJJ81lRLeIcVEOpOPxLHJX76AJUqP3fR/+m2Poah8bFF\n+yIdSp2jyWOoU60We72fvlEwxsTLl8Zani+xX2ckkUCe+wsiGJLch4Df1pepxpef\nb95wZ9L0msRdHY8vRQYapde/ju8CUHgywVX7+YH3EF1bJSnUOBmyOA76v9ir09am\n49g+VomkWUuzPJ2VYQXXH6d/qn/sm9Z9yxy7e1eh5m+9cd42b4sMdW6ZCTMAtGJF\nPX0SiOMR6S0hjKVBcfcyNoT/wo7wqEl4mYDpoCy10K0nYRn+ggJnIZEJzBWibMYH\nDWUDyuQIYLjOBAchFatXyMtbc8qDorYelLX7amPRDSiDhhj6Y5nYMJtUSwfTLwkN\nrI0Q4bjE+fgNACCqPoq/BDFZotcr1b664ZUJqgnTBPKZ5OnmW/iFkOfzu4fF9tJe\nAcekEPwsFbugu2bZ0Hs5Rl/Dh9p4L9gceuMiwJ3oYGA5cwXFCeVZLNqSDLy4upVX\nnXRaMzBNGgWo4geDq5JL10Mh7/1d4GGVxdts8RGdI8zUFTPV3GOaPEHeNyIO+g==\n=2UMI\n-----END PGP MESSAGE-----", + "fp": "4BE7925262289B476DBBC17B76FD3810215AE097" + } + ], + "unencrypted_suffix": "_unencrypted", + "version": "3.11.0" + } +} diff --git a/modules/home/common/settings.nix b/modules/home/common/settings.nix index 7b1ba8d..0f690f9 100644 --- a/modules/home/common/settings.nix +++ b/modules/home/common/settings.nix @@ -1,4 +1,4 @@ -{ self, lib, pkgs, config, ... }: +{ self, outputs, lib, pkgs, config, ... }: let inherit (config.swarselsystems) mainUser flakePath isNixos isLinux; in @@ -22,7 +22,7 @@ in }; in '' - plugin-files = ${nix-plugins}/lib/nix/plugins + plugin-files = ${nix-plugins}/lib/nix/plugins extra-builtins-file = ${self + /nix/extra-builtins.nix} ''; settings = { @@ -47,7 +47,13 @@ in }; }; - nixpkgs.overlays = lib.mkIf isNixos (lib.mkForce null); + # nixpkgs.overlays = lib.mkIf isNixos (lib.mkForce null); + nixpkgs = lib.mkIf (!isNixos) { + overlays = [ outputs.overlays.default ]; + config = { + allowUnfree = true; + }; + }; programs = { # home-manager.enable = lib.mkIf (!isNixos) true; @@ -78,7 +84,7 @@ in buildInputs = [ pkgs.makeWrapper ]; paths = [ pkgs.home-manager ]; postBuild = '' - wrapProgram $out/bin/home-manager \ + wrapProgram $out/bin/home-manager \ --append-flags '--flake ${flakePath}#$(hostname)' ''; }) diff --git a/modules/nixos/common/home-manager.nix b/modules/nixos/common/home-manager.nix index 38eea3c..0941d5c 100644 --- a/modules/nixos/common/home-manager.nix +++ b/modules/nixos/common/home-manager.nix @@ -1,4 +1,4 @@ -{ self, inputs, config, lib, outputs, globals, nodes, minimal, configName, ... }: +{ self, inputs, config, lib, homeLib, outputs, globals, nodes, minimal, configName, ... }: { options.swarselmodules.home-manager = lib.mkEnableOption "home-manager"; config = lib.mkIf config.swarselmodules.home-manager { @@ -29,7 +29,11 @@ home.stateVersion = lib.mkDefault config.system.stateVersion; } ]; - extraSpecialArgs = { inherit (inputs) self nixgl; inherit inputs outputs globals nodes minimal configName; }; + extraSpecialArgs = { + inherit (inputs) self nixgl; + inherit inputs outputs globals nodes minimal configName; + lib = homeLib; + }; }; }; } diff --git a/modules/nixos/optional/microvm-guest.nix b/modules/nixos/optional/microvm-guest.nix index 2eed2f8..8650fbc 100644 --- a/modules/nixos/optional/microvm-guest.nix +++ b/modules/nixos/optional/microvm-guest.nix @@ -7,58 +7,5 @@ # "${self}/modules/nixos" # ]; config = lib.mkIf config.swarselmodules.optional.microvmGuest - { - # imports = [ - # inputs.microvm.nixosModules.microvm - - # "${self}/profiles/nixos" - # "${self}/modules/nixos" - # ]; - - boot.kernelParams = [ "systemd.hostname=${config.networking.hostName}" ]; - - node.name = config; - documentation.enable = lib.mkForce false; - - microvm = { - guest.enable = lib.mkForce true; - hypervisor = lib.mkDefault "qemu"; - mem = lib.mkDefault 1024 * 4; - vcpu = lib.mkDefault 4; - optimize.enable = false; - writableStoreOverlay = "/nix/.rw-store"; - - # interfaces = flip lib.mapAttrsToList guestCfg.microvm.interfaces ( - # _: { mac, hostLink, ...}: - # { - # type = "macvtap"; - # id = "vm-${replaceStrings [ ":" ] [ "" ] mac}"; - # inherit mac; - # macvtap = { - # link = hostLink; - # mode = "bridge"; - # }; - # } - # ); - shares = - [ - { - source = "/nix/store"; - mountPoint = "/nix/.ro-store"; - tag = "ro-store"; - proto = "virtiofs"; - } - ]; - }; - # systemd.network.networks = lib.flip lib.concatMapAttrs guestCfg.microvm.interfaces ( - # name: - # { mac, ... }: - # { - # "10-${name}".matchConfig = mkForce { - # MACAddress = mac; - # }; - # } - # ); - - }; + { }; } diff --git a/modules/nixos/optional/microvm-host.nix b/modules/nixos/optional/microvm-host.nix index 73dac40..97a9059 100644 --- a/modules/nixos/optional/microvm-host.nix +++ b/modules/nixos/optional/microvm-host.nix @@ -1,15 +1,16 @@ { lib, config, ... }: { - options.swarselmodules.optional.microvmHost = lib.mkEnableOption "optional microvmHost settings"; + options = { + swarselmodules.optional.microvmHost = lib.mkEnableOption "optional microvmHost settings"; + }; # imports = [ # inputs.microvm.nixosModules.host # ]; - config = lib.mkIf (config.swarselmodules.optional.microvmHost && config.swarselsystems.withMicroVMs) { + config = lib.mkIf (config.guests != { }) { microvm = { hypervisor = lib.mkDefault "qemu"; }; }; - } diff --git a/nix/hosts.nix b/nix/hosts.nix index 0310acf..945182d 100644 --- a/nix/hosts.nix +++ b/nix/hosts.nix @@ -3,12 +3,29 @@ flake = { config, ... }: let inherit (self) outputs; - inherit (outputs) lib; + inherit (outputs) lib homeLib; # lib = (inputs.nixpkgs.lib // inputs.home-manager.lib).extend (_: _: { swarselsystems = import "${self}/lib" { inherit self lib inputs outputs; inherit (inputs) systems; }; }); mkNixosHost = { minimal }: configName: - lib.nixosSystem { - specialArgs = { inherit inputs outputs lib self minimal configName; inherit (config) globals nodes; }; + let + sys = "x86_64-linux"; + # lib = config.pkgsPre.${sys}.lib // { + # inherit (inputs.home-manager.lib) hm; + # swarselsystems = self.outputs.swarselsystemsLib; + # }; + + # lib = config.pkgsPre.${sys}.lib // { + # inherit (inputs.home-manager.lib) hm; + # swarselsystems = self.outputs.swarselsystemsLib; + # }; + inherit (config.pkgs.${sys}) lib; + in + inputs.nixpkgs.lib.nixosSystem { + specialArgs = { + inherit inputs outputs self minimal configName; + inherit lib homeLib; + inherit (config) globals nodes; + }; modules = [ inputs.disko.nixosModules.disko inputs.sops-nix.nixosModules.sops @@ -23,6 +40,7 @@ inputs.niri-flake.nixosModules.niri inputs.microvm.nixosModules.host inputs.microvm.nixosModules.microvm + (inputs.nixos-extra-modules + "/modules/guests") "${self}/hosts/nixos/${configName}" "${self}/profiles/nixos" "${self}/modules/nixos" @@ -31,7 +49,7 @@ microvm.guest.enable = lib.mkDefault false; node = { - name = configName; + name = lib.mkForce configName; secretsDir = ../hosts/nixos/${configName}/secrets; }; @@ -53,7 +71,7 @@ mkDarwinHost = { minimal }: configName: inputs.nix-darwin.lib.darwinSystem { specialArgs = { - inherit inputs outputs lib self minimal configName; + inherit inputs lib outputs self minimal configName; inherit (config) globals nodes; }; modules = [ @@ -70,7 +88,7 @@ "${self}/modules/nixos/common/meta.nix" "${self}/modules/nixos/common/globals.nix" { - node.name = configName; + node.name = lib.mkForce configName; node.secretsDir = ../hosts/darwin/${configName}/secrets; } @@ -86,7 +104,7 @@ { inherit pkgs; extraSpecialArgs = { - inherit inputs outputs lib self configName; + inherit inputs lib outputs self configName; inherit (config) globals nodes; minimal = false; }; @@ -121,13 +139,31 @@ minimal = true; }); - # TODO: Build these for all architectures - homeConfigurations = mkHalfHostConfigs (lib.swarselsystems.readHosts "home") "home" lib.swarselsystems.pkgsFor.x86_64-linux // mkHalfHostConfigs (lib.swarselsystems.readHosts "home") "home" lib.swarselsystems.pkgsFor.aarch64-linux; - nixOnDroidConfigurations = mkHalfHostConfigs (lib.swarselsystems.readHosts "android") "android" lib.swarselsystems.pkgsFor.aarch64-linux; + homeConfigurations = + let + inherit (lib.swarselsystems) pkgsFor readHosts; + in + mkHalfHostConfigs (readHosts "home") "home" pkgsFor.x86_64-linux + // mkHalfHostConfigs (readHosts "home") "home" pkgsFor.aarch64-linux; + + nixOnDroidConfigurations = + let + inherit (lib.swarselsystems) pkgsFor readHosts; + in + mkHalfHostConfigs (readHosts "android") "android" pkgsFor.aarch64-linux; + + guestConfigurations = lib.flip lib.concatMapAttrs config.nixosConfigurations ( + _: node: + lib.flip lib.mapAttrs' (node.config.microvm.vms or { }) ( + guestName: guestDef: + lib.nameValuePair guestDef.nodeName node.config.microvm.vms.${guestName}.config + ) + ); diskoConfigurations.default = import "${self}/files/templates/hosts/nixos/disk-config.nix"; - nodes = config.nixosConfigurations // config.darwinConfigurations; - + nodes = config.nixosConfigurations + // config.darwinConfigurations + // config.guestConfigurations; }; } diff --git a/nix/lib.nix b/nix/lib.nix index c12117e..a7b6194 100644 --- a/nix/lib.nix +++ b/nix/lib.nix @@ -57,5 +57,8 @@ in inherit (inputs.home-manager.lib) hm; inherit swarselsystems; }); + + swarselsystemsLib = swarselsystems; + homeLib = self.outputs.lib; }; } diff --git a/nix/overlays.nix b/nix/overlays.nix index fd98db0..828aba2 100644 --- a/nix/overlays.nix +++ b/nix/overlays.nix @@ -22,6 +22,11 @@ in # withSystemVencord = true; # }; + lib = prev.lib // { + swarselsystems = self.outputs.swarselsystemsLib; + hm = self.outputs.homeLib; + }; + firefox = prev.firefox.override { nativeMessagingHosts = [ prev.tridactyl-native @@ -72,15 +77,19 @@ in (builtins.attrNames nixpkgsInputs)); in - (additions final prev) - // (modifications final prev) - // (nixpkgs-stable-versions final prev) - // (inputs.niri-flake.overlays.niri final prev) - // (inputs.vbc-nix.overlays.default final prev) - // (inputs.nur.overlays.default final prev) - // (inputs.emacs-overlay.overlay final prev) - // (inputs.nix-topology.overlays.default final prev) - // (inputs.nixgl.overlay final prev); + lib.recursiveUpdate + ( + (additions final prev) + // (nixpkgs-stable-versions final prev) + // (inputs.niri-flake.overlays.niri final prev) + // (inputs.vbc-nix.overlays.default final prev) + // (inputs.nur.overlays.default final prev) + // (inputs.emacs-overlay.overlay final prev) + // (inputs.nix-topology.overlays.default final prev) + // (inputs.nixgl.overlay final prev) + // (inputs.nixos-extra-modules.overlays.default final prev) + ) + (modifications final prev); }; }; } diff --git a/nix/packages.nix b/nix/packages.nix index 9b1bade..233747c 100644 --- a/nix/packages.nix +++ b/nix/packages.nix @@ -1,5 +1,17 @@ -{ self, ... }: +{ self, inputs, ... }: { + imports = [ + ( + { lib, flake-parts-lib, ... }: + flake-parts-lib.mkTransposedPerSystemModule { + name = "pkgs"; + file = ./packages.nix; + option = lib.mkOption { + type = lib.types.unspecified; + }; + } + ) + ]; flake = _: let inherit (self.outputs) lib; @@ -7,4 +19,17 @@ { packages = lib.swarselsystems.forEachLinuxSystem (pkgs: import "${self}/pkgs" { inherit self lib pkgs; }); }; + + perSystem = { pkgs, system, ... }: + { + # see https://flake.parts/module-arguments.html?highlight=modulewith#persystem-module-parameters + _module.args.pkgs = import inputs.nixpkgs { + inherit system; + config.allowUnfree = true; + overlays = [ + self.overlays.default + ]; + }; + inherit pkgs; + }; }