{ description = "Stationette nix config"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11"; nix-gaming.url = "github:fufexan/nix-gaming"; disko.url = "github:nix-community/disko/latest"; impermanence.url = "github:nix-community/impermanence"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; home-manager = { url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; }; psysonic = { url = "github:Psychotoxical/psysonic"; # inputs.nixpkgs.follows = "nixpkgs"; # psysonic needs rustc 1.95+, nixos-25.11 only has 1.91 }; try-cli = { url = "github:tobi/try-cli"; inputs.nixpkgs.follows = "nixpkgs"; }; elephant = { url = "github:abenz1267/elephant"; # inputs.nixpkgs.follows = "nixpkgs"; }; walker = { url = "github:abenz1267/walker"; inputs.elephant.follows = "elephant"; inputs.nixpkgs.follows = "nixpkgs"; }; voxtype = { url = "github:peteonrails/voxtype"; inputs.nixpkgs.follows = "nixpkgs"; }; # hyprland-preview-share-picker = { # url = "github:WhySoBad/hyprland-preview-share-picker"; # inputs.nixpkgs.follows = "nixpkgs"; # }; }; outputs = { self, nixpkgs, nixpkgs-stable, nix-gaming, impermanence, disko, home-manager, nixos-hardware, # hyprland-preview-share-picker, ... } @ inputs: let lib = nixpkgs.lib; system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; config.allowUnfree = true; }; pkgs-stable = import nixpkgs-stable { inherit system; config.allowUnfree = true; }; nix-gaming = inputs.nix-gaming.packages.${system}; mkHost = hostname: nixpkgs.lib.nixosSystem { modules = [ ./hardware ./system nixos-hardware.nixosModules.framework-16-amd-ai-300-series home-manager.nixosModules.home-manager { powerManagement.enable = true; system.stateVersion = "26.05"; home-manager = { users.chris = import ./home; extraSpecialArgs = { inherit inputs; inherit pkgs-stable; inherit impermanence; inherit hostname; }; }; } ]; specialArgs = { inherit inputs; inherit pkgs-stable; inherit impermanence; inherit disko; inherit hostname; inherit nix-gaming; }; }; in { nixosConfigurations = { stationette = mkHost "stationette"; station = mkHost "station"; }; # Standalone home-manager configuration entrypoint homeConfigurations = { chris = home-manager.lib.homeManagerConfiguration { inherit pkgs; extraSpecialArgs = { inherit inputs; inherit pkgs-stable; inherit impermanence; }; modules = [ ./home ]; }; }; }; }