flake/modules/home/terminal/shell.nix
2025-07-31 00:34:46 +00:00

45 lines
998 B
Nix

{ pkgs, lib, config, ... }:
let
cfg = config.mods.terminal;
aliases = with lib; {
la = "ls -lah";
xc = "${getExe pkgs.xclip} -selection clipboard";
};
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";
};
initContent = ''
autoload -U compinit
setopt no_auto_remove_slash
'';
shellAliases = aliases;
plugins = with pkgs; [{
name = "zsh-vi-mode";
src = zsh-vi-mode;
file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh";
}];
};
};
}