{ config, lib, ... }: with lib; let cfg = config.modules.shell; zshCfg = config.modules.zsh; in { options.modules.shell = { defaultShell = mkOption { type = types.enum [ "bash" "zsh" ]; default = "zsh"; description = '' The default shell to use for your user account. ''; }; }; config.assertions = [] ++ (if cfg.defaultShell == "zsh" then [{ assertion = zshCfg.enable; message = "You have selected zsh as the default shell, but you haven't enabled it in your configuration.\n\nPlease enable it by adding `modules.zsh.enable = true`."; }] else []); }