{ description = "My nixos config with WM switch capacity"; inputs = { nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05"; home-manager-stable = { url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs-stable"; }; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable-small"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; nur.url = "github:nix-community/NUR"; agenix.url = "github:ryantm/agenix"; nvim-config.url = "git+https://govel.porzh.me/DuN0z/neovim-config.git"; }; outputs = { nixpkgs-stable, nixpkgs-unstable, home-manager-stable, home-manager, nur, agenix, nvim-config, ... }: let mkUnstablePkgsWithNur = { system, config ? {}, }: import nixpkgs-unstable { inherit system; overlays = [nur.overlays.default]; inherit config; }; in { nixosConfigurations = { pennsardin = nixpkgs-unstable.lib.nixosSystem { specialArgs = { inherit nvim-config; }; system = "x86_64-linux"; pkgs = mkUnstablePkgsWithNur { system = "x86_64-linux"; config = { allowUnfree = true; allowUnsupportedSystem = true; }; }; modules = [ ./hosts/pennsardin/configuration.nix home-manager.nixosModules.home-manager { home-manager = { useGlobalPkgs = true ; useUserPackages = true ; extraSpecialArgs = {inherit nvim-config; }; }; } ]; }; terre-neuvas = nixpkgs-stable.lib.nixosSystem { specialArgs = { inherit agenix; }; system = "x86_64-linux"; modules = [ ./hosts/terre-neuvas/configuration.nix home-manager-stable.nixosModules.home-manager agenix.nixosModules.default ]; }; forbann = nixpkgs-stable.lib.nixosSystem { system = "x86_64-linux"; modules = [ ./hosts/forbann/configuration.nix "${nixpkgs-stable}/nixos/modules/profiles/qemu-guest.nix" ]; }; }; # --- DevShell (x86_64 uniquement) --- devShells.x86_64-linux.default = import ./devshell.nix { pkgs = import nixpkgs-stable {system = "x86_64-linux";}; }; # --- Formatter (x86_64 uniquement) --- formatter.x86_64-linux = (import nixpkgs-stable {system = "x86_64-linux";}).alejandra; }; }