{ description = "moons nix configurations and development shells"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; nixos-wsl.url = "github:nix-community/NixOS-WSL"; home-manager = { url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; vicinae.url = "github:vicinaehq/vicinae"; ghostty.url = "github:ghostty-org/ghostty"; niri-flake.url = "github:sodiboo/niri-flake"; quickshell = { url = "github:outfoxxed/quickshell"; inputs.nixpkgs.follows = "nixpkgs"; }; noctalia = { url = "github:noctalia-dev/noctalia-shell"; inputs.nixpkgs.follows = "nixpkgs"; inputs.quickshell.follows = "quickshell"; }; stylix = { url = "github:nix-community/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; lanzaboote = { url = "github:nix-community/lanzaboote"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, nixos-hardware, home-manager, ...}: let mkSystem = { host, system, profile, extraModules ? [ ] }: nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs; inherit host; inherit profile; }; modules = [ ./overlays ./modules/core ./profiles/${profile}.nix ./hosts/${host} ] ++ extraModules; }; in { nixosConfigurations = { x1g9 = mkSystem { host = "x1g9"; system = "x86_64-linux"; profile = "laptop"; extraModules = [ ]; }; x1g13-wsl = mkSystem { host = "x1g13-wsl"; system = "x86_64-linux"; profile = "cli"; extraModules = [ ]; }; x1g13 = mkSystem { host = "x1g13"; system = "x86_64-linux"; profile = "laptop"; extraModules = [ ]; }; dev-1 = mkSystem { host = "dev-1"; system = "x86_64-linux"; profile = "cli-server"; extraModules = [ ]; }; }; devShells = { x86_64-linux = let pkgs = import nixpkgs { system = "x86_64-linux"; }; in { next-web = import ./shells/next-web.nix { inherit pkgs; }; jupyter = import ./shells/jupyter.nix { inherit pkgs; }; rust = import ./shells/rust/default.nix { inherit pkgs; }; }; }; }; }