{ description = "NixOS Flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; disko.url = "github:nix-community/disko"; disko.inputs.nixpkgs.follows = "nixpkgs"; nixos-facter-modules.url = "github:numtide/nixos-facter-modules"; home-manager.url = "github:nix-community/home-manager/release-24.11"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; helix.url = "github:helix-editor/helix/master"; hyprland.url = "github:hyprwm/Hyprland?submodules=1&ref=v0.45.2-b"; hy3 = { url = "github:outfoxxed/hy3?ref=hl0.45.0"; inputs.hyprland.follows = "hyprland"; }; agenix.url = "github:ryantm/agenix"; update-systemd-resolved.url = "github:jonathanio/update-systemd-resolved"; update-systemd-resolved.inputs.nixpkgs.follows = "nixpkgs"; nil.url = "github:oxalica/nil"; astal-bar.url = "git+http://tarreltaart.home:3000/jras/astal-bar.git"; }; outputs = inputs@{ self, nixpkgs, disko, nixos-facter-modules, home-manager, agenix, update-systemd-resolved, astal-bar, ... }: { nixosConfigurations.work = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; }; modules = [ ./hosts/work.nix update-systemd-resolved.nixosModules.update-systemd-resolved { environment.systemPackages = [ agenix.packages."x86_64-linux".default ]; } home-manager.nixosModules.home-manager agenix.nixosModules.default ./config/shared.nix { environment.systemPackages = [ astal-bar.packages."x86_64-linux".default ]; } ]; }; nixosConfigurations.tarrel = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; # config = { # allowUnfree = true; # }; specialArgs = { inherit inputs; }; modules = [ ./hosts/tarrel.nix { environment.systemPackages = [ agenix.packages."x86_64-linux".default ]; } home-manager.nixosModules.home-manager agenix.nixosModules.default ./config/shared.nix { environment.systemPackages = [ astal-bar.packages."x86_64-linux".default ]; } ]; }; nixosConfigurations.snorlax = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ { system.stateVersion = "24.11"; } disko.nixosModules.disko nixos-facter-modules.nixosModules.facter { config.facter.reportPath = if builtins.pathExists ./hardware/snorlax.json then ./hardware/snorlax.json else throw "Have you forgotten to run nixos-anywhere with `--generate-hardware-config nixos-facter ./hardware/snorlax.json`?"; } ./hardware/snorlax-disks.nix ./roles/server.nix ./configuration/snorlax.nix ./configuration/gitea.nix ]; }; }; }