# SPDX-FileCopyrightText: 2025 Ethan Reece # # SPDX-License-Identifier: MIT { config, flake-parts-lib, inputs, lib, ... }: let entries = builtins.attrNames (builtins.readDir ./.); modules = builtins.filter (dir: builtins.pathExists (./. + "/${dir}/flake-module.nix")) entries; in { imports = [ inputs.home-manager.flakeModules.home-manager ] ++ builtins.map ( module-name: flake-parts-lib.importApply (./. + "/${module-name}/flake-module.nix") { inherit module-name; } ) modules; perSystem = { system, ... }: let pkgs = import inputs.nixpkgs { inherit system; overlays = [ inputs.nur.overlays.default inputs.nixgl.overlays.default ]; }; in { _module.args.pkgs = pkgs; languages.en-us.excludes = [ "home-manager/discord.nix" ]; devshells.default = { commands = [ { help = "󰘥 show home-manager documentation"; name = "man-home"; command = "${pkgs.man}/bin/man home-configuration.nix"; category = " home-manager"; } ] ++ builtins.concatMap ( name: if config.targets.${name}.enable && config.targets.${name}.system == system then [ { help = "  `home-manager switch` for ${name}"; name = "hm-${name}"; command = "${pkgs.home-manager}/bin/home-manager switch --flake .#${name}"; category = " ${name}"; } { help = " 󰸨 `home-manager switch` for ${name} with backup"; name = "hm-${name}-backup"; command = "${pkgs.home-manager}/bin/home-manager switch --flake .#${name} -b backup"; category = " ${name}"; } ] else [ ] ) modules; }; }; }