{ pkgs, lib, config, ... }: let cfg = config.mods.terminal; aliases = { la = "ls -lah"; }; in { options.mods.terminal = { zsh.enable = lib.mkEnableOption "enables zsh"; }; config = { programs.starship.enable = true; programs.zsh = lib.mkIf cfg.zsh.enable { enable = true; enableCompletion = true; autosuggestion.enable = true; syntaxHighlighting.enable = true; history = { save = 2097152; size = 2097152; expireDuplicatesFirst = true; ignoreDups = true; ignoreSpace = true; path = "${config.xdg.dataHome}/zsh/history"; }; shellAliases = aliases; plugins = with pkgs; [ { name = "zsh-vi-mode"; src = zsh-vi-mode; file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh"; } ]; }; }; }