{ inputs, self, ... }: { flake.nixosModules.global = { config, pkgs, lib, ... }: { options.features.shells.defaultShell = lib.mkOption { type = inputs.helpers.mkEnumFromDirContents "${self}/modules/features/shells"; default = "zsh"; }; config = { programs.${config.features.shells.defaultShell}.enable = true; users.defaultUserShell = pkgs.${config.features.shells.defaultShell}; users.users."grey".shell = pkgs.${config.features.shells.defaultShell}; }; }; }