{ config, lib, pkgs, ... }: with lib; with lib.my; let cfg = config.modules.shell.zsh; in { options.modules.shell.zsh = { enable = mkBoolOpt false; }; config = mkIf cfg.enable { home.packages = with pkgs; [ zsh-autosuggestions zsh-fast-syntax-highlighting zsh-history-substring-search ]; home.programs.zsh = { enable = true; enableCompletion = true; shellAliases = { cp = "cp -iv"; mv = "mv -iv"; rm = "rm -v"; mkdir = "mkdir -v"; ls = "ls -h --color=auto --group-directories-first"; e = "nvim"; f = "nnn"; g = "git"; n = "nnn"; v = "nvim"; }; }; }; }