79 lines
1.5 KiB
Nix
79 lines
1.5 KiB
Nix
# Shell configuration (bash, zsh, fish) with integrations
|
|
{
|
|
inputs,
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}: {
|
|
# Bash configuration
|
|
programs.bash = {
|
|
enable = true;
|
|
enableCompletion = true;
|
|
};
|
|
|
|
# Zsh configuration
|
|
programs.zsh = {
|
|
enable = true;
|
|
enableCompletion = true;
|
|
autosuggestion.enable = true;
|
|
syntaxHighlighting.enable = true;
|
|
|
|
history = {
|
|
size = 10000;
|
|
path = "${config.home.homeDirectory}/.zsh_history";
|
|
};
|
|
};
|
|
|
|
# Fish configuration is in ./fish.nix
|
|
|
|
# Starship prompt (works with all shells)
|
|
programs.starship = {
|
|
enable = true;
|
|
settings = {
|
|
add_newline = true;
|
|
character = {
|
|
success_symbol = "[➜](bold green)";
|
|
error_symbol = "[➜](bold red)";
|
|
};
|
|
package.disabled = true;
|
|
};
|
|
};
|
|
|
|
# Zoxide (better cd)
|
|
programs.zoxide = {
|
|
enable = true;
|
|
enableBashIntegration = true;
|
|
enableZshIntegration = true;
|
|
enableFishIntegration = true;
|
|
};
|
|
|
|
# fzf (fuzzy finder)
|
|
programs.fzf = {
|
|
enable = true;
|
|
enableBashIntegration = true;
|
|
enableZshIntegration = true;
|
|
enableFishIntegration = false; # Using PatrickF1/fzf.fish plugin instead
|
|
};
|
|
|
|
# Eza (modern ls replacement)
|
|
programs.eza = {
|
|
enable = true;
|
|
enableBashIntegration = true;
|
|
enableZshIntegration = true;
|
|
enableFishIntegration = true;
|
|
git = true;
|
|
icons = "auto";
|
|
};
|
|
|
|
# Bat (better cat)
|
|
programs.bat = {
|
|
enable = true;
|
|
config = {
|
|
theme = "TwoDark";
|
|
pager = "less -FR";
|
|
};
|
|
};
|
|
}
|
|
|