{ description = "NixOS configuration"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; # home-manager, used for managing user configuration home-manager = { url = "github:nix-community/home-manager/master"; # The `follows` keyword in inputs is used for inheritance. # Here, `inputs.nixpkgs` of home-manager is kept consistent with # the `inputs.nixpkgs` of the current flake, # to avoid problems caused by different versions of nixpkgs. inputs.nixpkgs.follows = "nixpkgs"; }; silentSDDM = { url = "github:uiriansan/SilentSDDM"; inputs.nixpkgs.follows = "nixpkgs"; }; nixcats.url = "github:BirdeeHub/nixCats-nvim"; hyprland-git = { url = "github:hyprwm/Hyprland/25250527793eb04bb60f103abe7f06370b9f6e1c"; }; }; outputs = inputs @ { nixpkgs, home-manager, nixcats, ... }: { nixosConfigurations = { girlCore = nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs;}; modules = [ ./configuration.nix inputs.silentSDDM.nixosModules.default # make home-manager as a module of nixos # so that home-manager configuration will be deployed automatically when executing `nixos-rebuild switch` home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = {inherit inputs;}; home-manager.users.ashley = import ./home.nix; # Optionally, use home-manager.extraSpecialArgs to pass arguments to home.nix } ]; }; }; }; }