{ inputs = { nixpkgs.url = github:NixOS/nixpkgs/nixos-unstable; home-manager.url = github:nix-community/home-manager; pwnix = { inputs.nixpkgs.follows = "nixpkgs"; url = git+https://im.badat.dev/bad/pwnix.git; }; }; outputs = args@{ home-manager, nixpkgs, ... }: with nixpkgs; { # Configurations for NixOS machines. nixosConfigurations = let mkUserConfig = path: { imports = [ home-manager.nixosModules.home-manager ]; config = { home-manager.users."riley" = a: lib.pipe a [ (import "${path}/home.nix") (x: x // { imports = [ ./shared/home ]; isNixos = true; }) ]; }; }; in { # Desktop system "thor" = lib.nixosSystem { system = "x86_64-linux"; modules = [ (mkUserConfig ./system/thor) ./system/thor/core.nix ./shared/core ]; specialArgs = args; }; # Pinebook "odin" = lib.nixosSystem { system = "aarch64-linux"; modules = [ (mkUserConfig ./system/odin) ./system/odin/core.nix ./shared/core ]; specialArgs = args; }; }; # Configurations for non-NixOS machines. homeConfigurations = with home-manager.lib; { "dev-lt-63" = homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."x86_64-linux"; modules = [ ./system/dev-lt-63/home.nix ./shared/home ]; }; }; overlays = { default = (import ./shared/overlay.nix); }; }; }