{ description = "NixOS configuration"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; ghostty = { url = "git+ssh://git@github.com/ghostty-org/ghostty"; inputs = { nixpkgs-stable.follows = "nixpkgs"; nixpkgs-unstable.follows = "nixpkgs"; }; }; ghostty-hm.url = "github:clo4/ghostty-hm-module"; }; outputs = inputs@{ self, nixpkgs, ghostty-hm, home-manager, ... }: let inherit (self) outputs; system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; mkHome = modules: home-manager.lib.homeManagerConfiguration { inherit pkgs; extraSpecialArgs = { inherit inputs outputs; }; modules = [ ghostty-hm.homeModules.default ./home/common ] ++ modules; }; mkHost = modules: nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs outputs; }; modules = [ ./common ] ++ modules; }; in { overlays = import ./overlays { inherit inputs outputs; }; devShell.${system} = pkgs.mkShell { packages = with pkgs; [ just nh ]; }; homeConfigurations = { "dln@dinky" = mkHome [ ./home/dln/dinky.nix ]; "dln@nemo" = mkHome [ ./home/dln/nemo.nix ]; "dln@pearl" = mkHome [ ./home/dln/pearl.nix ]; "lsjostro@nemo" = mkHome [ ./home/lsjostro/nemo.nix ]; }; nixosConfigurations = { dinky = mkHost [ ./hosts/dinky ]; nemo = mkHost [ ./hosts/nemo ]; pearl = mkHost [ ./hosts/pearl ]; }; }; }