# TODO: this should use winnow with a fair matching of supported systems { inputs, cell, }: let inherit (cell) home-profiles home-modules; inherit (inputs) home-manager; pkgs = inputs.nixpkgs; # hm is derivation that is compatible with homeConfigurations home-config = { supported_systems, hm, tested_systems ? [], }: hm // { _supported_systems = supported_systems; _tested_systems = tested_systems; }; base-modules = [ # home-profiles.alacritty home-modules.alacritty home-profiles.kitty home-profiles.git home-profiles.ssh home-profiles.shells {config.programs.home-manager.enable = true;} # home-profiles.nix-index home-profiles.neovim { config.repo.shells.shellAliases = { nixr = "if [ -f $(pwd)/.nix-replrc ]; then nix repl $(pwd)/.nix-replrc; elif [ -f ~/.config/.nix-replrc ]; then nix repl ~/.config/.nix-replrc; else nix repl; fi"; }; } ]; in { homeConfigurations.htran = home-config { supported_systems = ["aarch64-darwin" "x86_64-darwin"]; tested_systems = ["aarch64-darwin"]; hm = home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = base-modules ++ [ home-profiles.darwin-patches home-profiles.nerd_font_module home-profiles.git-htran home-profiles.dev-packages # home-profiles.zk home-modules.darwin-spotlight { home.username = "htran"; home.homeDirectory = "/Users/htran"; home.stateVersion = "23.11"; } # home-profiles.passman ]; }; }; homeConfigurations.hungtran = home-config { supported_systems = ["aarch64-darwin" "x86_64-darwin"]; tested_systems = ["aarch64-darwin"]; hm = home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = base-modules ++ [ home-profiles.darwin-patches home-profiles.nerd_font_module home-profiles.git-pegasust home-profiles.dev-packages # home-profiles.zk home-modules.darwin-spotlight { home.username = "hungtran"; home.homeDirectory = "/Users/hungtran"; home.stateVersion = "23.11"; } ]; }; }; }