{ description = "NixOS configuration of Julius Freudenberger"; inputs = { nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; home-manager = { url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; }; auto-cpufreq = { url = "github:AdnanHodzic/auto-cpufreq"; inputs.nixpkgs.follows = "nixpkgs"; }; systems.url = "github:nix-systems/default-linux"; }; outputs = { self, nixpkgs, nixpkgs-unstable, nixos-hardware, home-manager, auto-cpufreq, systems, ... } @ inputs: let inherit (self) outputs; lib = nixpkgs.lib; forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system}); pkgsFor = lib.genAttrs (import systems) ( system: import nixpkgs { inherit system; config.allowUnfree = true; } ); in { overlays = import ./overlays {inherit inputs outputs;}; packages = forEachSystem (pkgs: import ./pkgs {inherit pkgs;}); nixosConfigurations = { julius-framework = let username = "julius"; in nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = { pkgs-unstable = import nixpkgs-unstable { inherit system; config.allowUnfree = true; }; inherit inputs outputs username; }; modules = [ nixos-hardware.nixosModules.framework-11th-gen-intel auto-cpufreq.nixosModules.default ./hosts/julius-framework ./users/julius/nixos.nix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = inputs // specialArgs; home-manager.users.${username} = import ./users/${username}/home.nix; } ]; }; }; }; }