flake/modules/home/terminal/shell.nix
2025-09-18 09:48:08 +00:00

55 lines
1.1 KiB
Nix

{
pkgs,
lib,
config,
...
}: let
cfg = config.mods.terminal;
aliases = with lib; {
la = "ls -lah";
xc = "${getExe pkgs.xclip} -selection clipboard";
".." = "cd ..";
"..." = "cd ../..";
"...." = "cd ../..";
"....." = "cd ../../..";
"......" = "cd ../../../..";
};
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";
}
];
};
};
}