Files
nixos-blueprint/hosts/sarien/users/user/programs/shell/zsh.nix
unexplrd 2e6e28ef32 initial
2025-02-06 00:33:06 +02:00

76 lines
2.1 KiB
Nix

{
pkgs,
config,
lib,
...
}: {
options = {
zsh.enable =
lib.mkEnableOption "enable z shell";
};
config = lib.mkIf config.zsh.enable {
programs.zsh = {
enable = true;
dotDir = ".config/zsh";
initExtra = ''
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down
'';
# promptInit = "oh-my-posh init zsh -c ~/.config/oh-my-posh/zen.toml";
enableCompletion = true;
autosuggestion.enable = true;
#autosuggestion.highlight = "fg=#ff00ff,bg=cyan,bold,underline";
shellAliases = {
ls = "eza";
cat = "bat";
cd = "z";
l = "eza -alh";
};
history = {
size = 10000;
path = "${config.xdg.dataHome}/zsh/history";
};
plugins = [
{
name = "zsh-autosuggestions";
file = "zsh-autosuggestions.plugin.zsh";
src = pkgs.fetchFromGitHub {
owner = "zsh-users";
repo = "zsh-autocomplete";
rev = "v0.7.0";
sha256 = "sha256-/6V6IHwB5p0GT1u5SAiUa20LjFDSrMo731jFBq/bnpw=";
};
}
{
name = "zsh-syntax-highlighting";
src = pkgs.fetchFromGitHub {
owner = "zsh-users";
repo = "zsh-syntax-highlighting";
rev = "0.8.0";
sha256 = "sha256-iJdWopZwHpSyYl5/FQXEW7gl/SrKaYDEtTH9cGP7iPo=";
};
}
{
name = "zsh-history-substring-search";
src = pkgs.fetchFromGitHub {
owner = "zsh-users";
repo = "zsh-history-substring-search";
rev = "v1.1.0";
sha256 = "sha256-GSEvgvgWi1rrsgikTzDXokHTROoyPRlU0FVpAoEmXG4=";
};
}
{
name = "zsh-nix-shell";
file = "nix-shell.plugin.zsin.fromh";
src = pkgs.fetchFromGitHub {
owner = "chisui";
repo = "zsh-nix-shell";
rev = "v0.8.0";
sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7";
};
}
];
};
};
}