92 lines
1.8 KiB
Nix
92 lines
1.8 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}:
|
|
let
|
|
cfg = config.zsh;
|
|
inherit (lib) mkEnableOption mkIf mkOption;
|
|
in
|
|
{
|
|
options.zsh = {
|
|
enable = mkEnableOption "Zsh";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
|
|
home.packages = with pkgs; [
|
|
zsh-completions
|
|
fd
|
|
htop
|
|
ripgrep
|
|
wget
|
|
delta
|
|
devenv
|
|
];
|
|
|
|
programs.bat = {
|
|
enable = true;
|
|
};
|
|
|
|
programs.dircolors = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
};
|
|
|
|
programs.direnv = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
nix-direnv.enable = true;
|
|
config = {
|
|
hide_env_diff = true;
|
|
};
|
|
};
|
|
programs.zsh = {
|
|
enable = true;
|
|
enableCompletion = true;
|
|
syntaxHighlighting.enable = true;
|
|
autosuggestion.enable = true;
|
|
autocd = true;
|
|
history = {
|
|
size = 1000000;
|
|
extended = true;
|
|
append = true;
|
|
expireDuplicatesFirst = true;
|
|
ignoreDups = true;
|
|
ignoreAllDups = true;
|
|
ignoreSpace = true;
|
|
};
|
|
historySubstringSearch.enable = true;
|
|
shellAliases = {
|
|
cat = "bat --theme=\"$(defaults read -globalDomain AppleInterfaceStyle &> /dev/null && echo 'gruvbox-dark' || echo 'gruvbox-light')\"";
|
|
diff = "delta";
|
|
};
|
|
};
|
|
programs.fzf.enable = true;
|
|
programs.fzf.enableZshIntegration = true;
|
|
|
|
programs.zoxide.enable = true;
|
|
programs.zoxide.enableZshIntegration = true;
|
|
|
|
programs.eza = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
extraOptions = [ "--group-directories-first" ];
|
|
};
|
|
|
|
programs.starship = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
settings = {
|
|
nodejs.disabled = true;
|
|
package.disabled = true;
|
|
aws.disabled = true;
|
|
python.disabled = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
}
|