{ inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; stable.url = "nixpkgs/nixos-23.05"; flake-utils.url = "github:numtide/flake-utils"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; impurity.url = "github:outfoxxed/impurity.nix"; nixpak = { url = "github:nixpak/nixpak"; inputs.nixpkgs.follows = "nixpkgs"; }; emacs-overlay = { url = "github:nix-community/emacs-overlay"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-utils.follows = "flake-utils"; }; hyprland = { url = "github:hyprwm/Hyprland"; inputs.nixpkgs.follows = "nixpkgs"; }; hyprland-hy3 = { url = "github:outfoxxed/hy3"; inputs.hyprland.follows = "hyprland"; }; hyprfocus = { url = "github:VortexCoyote/hyprfocus"; inputs.hyprland.follows = "hyprland"; }; hyprpaper = { url = "github:hyprwm/Hyprpaper"; #inputs.nixpkgs.follows = "nixpkgs"; }; nur.url = "github:nix-community/NUR"; # devenv rust-overlay = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-utils.follows = "flake-utils"; }; }; outputs = inputs @ { self, nixpkgs, ... }: { nixosConfigurations = { msi = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = { inherit self system inputs; }; modules = [ ./modules/impurity.nix ./modules/preserve-system.nix ./modules/devenv ./modules/system.nix ./modules/hyprland ./systems/msi ]; }; lenovo = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = { inherit self system inputs; }; modules = [ ./modules/impurity.nix ./modules/preserve-system.nix ./modules/devenv ./modules/system.nix ./modules/hyprland ./systems/lenovo ]; }; msi-impure = self.nixosConfigurations.msi.extendModules { modules = [ { impurity.enable = true; } ]; }; lenovo-impure = self.nixosConfigurations.lenovo.extendModules { modules = [ { impurity.enable = true; } ]; }; }; devShells = import ./modules/devenv/flakepart.nix inputs; }; }