# flake.nix { inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; nixos-hardware.url = "github:nixos/nixos-hardware/master"; lix-module = { url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz"; inputs.nixpkgs.follows = "nixpkgs"; }; vscode-server.url = "github:nix-community/nixos-vscode-server"; agenix.url = "github:ryantm/agenix"; zen-browser = { url = "github:0xc000022070/zen-browser-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; microvm.url = "github:astro/microvm.nix"; microvm.inputs.nixpkgs.follows = "nixpkgs"; catppuccin.url = "github:catppuccin/nix"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, ... }@inputs: with inputs; let nixosModules = builtins.listToAttrs ( map (module: { name = module; value = import (./modules + "/${module}"); }) (builtins.attrNames (builtins.readDir ./modules)) ); in { nixosConfigurations = { focalor = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; system = "x86_64-linux"; }; modules = [ ./hosts/focalor lix-module.nixosModules.default /*microvm.nixosModules.host { microvm.autostart = [ "windows" ]; }*/ vscode-server.nixosModules.default agenix.nixosModules.default catppuccin.nixosModules.catppuccin home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.backupFileExtension = "HMBackup"; home-manager.users.regent.imports = [ ./home/regent/home.nix catppuccin.homeModules.catppuccin ]; home-manager.extraSpecialArgs = { inherit inputs; system = "x86_64-linux"; }; } ]; }; valefar = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; system = "x86_64-linux"; }; modules = [ ./hosts/valefar lix-module.nixosModules.default vscode-server.nixosModules.default agenix.nixosModules.default microvm.nixosModules.host { imports = builtins.attrValues nixosModules; } ]; }; buer = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; system = "x86_64-linux"; }; modules = [ ./hosts/buer agenix.nixosModules.default ]; }; morax = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; specialArgs = { inherit inputs; system = "aarch64-linux"; }; modules = [ ./hosts/morax nixos-hardware.nixosModules.raspberry-pi-4 agenix.nixosModules.default { imports = builtins.attrValues nixosModules; } ]; }; # Easy to add more hosts /* server2 = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ ./hosts/server2 agenix.nixosModules.default # different services for server2 ]; }; */ }; }; }