flake/modules/home/terminal/shell.nix
2024-06-12 15:09:24 +00:00

48 lines
962 B
Nix

{ 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";
};
initExtra = ''
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";
}
];
};
};
}