# SPDX-FileCopyrightText: 2025 Ethan Reece # # SPDX-License-Identifier: MIT { flake-parts-lib, inputs, ... }: let entries = builtins.attrNames (builtins.readDir ./.); modules = builtins.filter (dir: builtins.pathExists (./. + "/${dir}/default.nix")) entries; in { imports = [ inputs.home-manager.flakeModules.home-manager ] ++ builtins.map ( module-name: flake-parts-lib.importApply (./. + "/${module-name}") { inherit module-name; } ) modules; perSystem = { config, system, ... }: let pkgs = import inputs.nixpkgs { inherit system; overlays = [ inputs.nur.overlays.default inputs.nixgl.overlays.default ]; }; in { _module.args.pkgs = pkgs; 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: [ { help = " `home-manager switch` for ${name}"; name = "hm-${name}"; command = "${pkgs.home-manager}/bin/home-manager switch --flake .#${name}"; category = " home-manager (${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 = " home-manager (${name})"; } ]) modules; packages = [ pkgs.home-manager ]; }; }; }