{ config, lib, pkgs, ... }: with lib; let cfg = config.local.services.zsh; in { options.local.services.zsh = { enable = mkEnableOption "zsh settings"; prompt = mkOption { type = types.str; description = "prompt for your terminal"; example = literalExpression "%B[%~] \${vcs_info_msg_0_}%b"; }; }; config = mkIf cfg.enable { programs.zsh = { enable = true; syntaxHighlighting.enable = true; autosuggestion.enable = true; history = { append = true; expireDuplicatesFirst = true; ignoreAllDups = true; ignoreSpace = true; }; initExtra = import ./zshrc.nix {inherit config lib pkgs;}; }; }; }