111 lines
3.4 KiB
Nix
111 lines
3.4 KiB
Nix
{ config, pkgs, ... }: {
|
|
# But we all know I love zsh
|
|
programs.zsh = {
|
|
enable = true;
|
|
autosuggestion.enable = true;
|
|
enableCompletion = true;
|
|
history.path = "${config.xdg.dataHome}/zsh/history";
|
|
dotDir = ".config/zsh";
|
|
shellAliases = {
|
|
lg = "lazygit";
|
|
j =
|
|
"cd $(zoxide query --list | fzf --prompt 'Directory: ' -i --reverse --layout=reverse --border=rounded --info=inline --preview 'eza -A --tree -L 1 {}')";
|
|
gj = ''
|
|
cd $(find ${config.home.homeDirectory} -name .git -type d -exec dirname {} \; -prune | fzf --prompt "Directory: " -i --reverse --layout=reverse --border=rounded --info=inline --preview "eza -A --tree -L 1 {}")'';
|
|
erm = ''for file in *.zip; do unzip "$file"; rm "$file"; done'';
|
|
};
|
|
envExtra = ''
|
|
# NNN settings
|
|
export NNN_FIFO="/tmp/nnn.fifo"
|
|
export NNN_SSHFS="sshfs -o follow_symlinks"
|
|
export NNN_TERMINAL="alacritty --class preview,preview"
|
|
|
|
# Catppuccin colors nnn
|
|
BLK="03" CHR="03" DIR="04" EXE="02" REG="07" HARDLINK="05" SYMLINK="05" MISSING="08" ORPHAN="01" FIFO="06" SOCK="03" UNKNOWN="01"
|
|
export NNN_COLORS="#04020301;4231"
|
|
export NNN_FCOLORS="$BLK$CHR$DIR$EXE$REG$HARDLINK$SYMLINK$MISSING$ORPHAN$FIFO$SOCK$UNKNOWN"
|
|
'';
|
|
initExtra = ''
|
|
# VI Mode escape timeout fix
|
|
export KEYTIMEOUT=1
|
|
|
|
# Substring search settings
|
|
export HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND="bg=blue,fg=black,bold"
|
|
export HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=black,bold'
|
|
bindkey -M vicmd 'k' history-substring-search-up
|
|
bindkey -M vicmd 'j' history-substring-search-down
|
|
'';
|
|
initExtraFirst = ''
|
|
nitch
|
|
'';
|
|
zplug = {
|
|
enable = true;
|
|
plugins = [
|
|
{ name = "zap-zsh/supercharge"; }
|
|
{ name = "zap-zsh/completions"; }
|
|
{ name = "zap-zsh/vim"; }
|
|
{ name = "chivalryq/git-alias"; }
|
|
{ name = "zdharma-continuum/fast-syntax-highlighting"; }
|
|
{ name = "MichaelAquilina/zsh-you-should-use"; }
|
|
{ name = "zsh-users/zsh-history-substring-search"; }
|
|
];
|
|
};
|
|
};
|
|
|
|
# Eza settings
|
|
programs.eza = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
git = true;
|
|
icons = true;
|
|
};
|
|
|
|
# Zoxide settings
|
|
programs.zoxide = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
};
|
|
|
|
# Starhip settings
|
|
programs.starship = let flavour = "frappe";
|
|
in {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
settings = {
|
|
palette = "catppuccin_${flavour}";
|
|
add_newline = false;
|
|
} // builtins.fromTOML (builtins.readFile (pkgs.fetchFromGitHub {
|
|
owner = "starship";
|
|
repo = "starship";
|
|
rev = "698572aa575508a4bdd0d3092c97f5a056dc50eb";
|
|
hash = "sha256-jrtlK4vN8u2UhKeo5+9IyCVYJxkySh+JKhSCUsnQWAg=";
|
|
} + /docs/public/presets/toml/pure-preset.toml)) // builtins.fromTOML
|
|
(builtins.readFile (pkgs.fetchFromGitHub {
|
|
owner = "catppuccin";
|
|
repo = "starship";
|
|
rev = "5629d2356f62a9f2f8efad3ff37476c19969bd4f";
|
|
hash = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0=";
|
|
} + /palettes/${flavour}.toml));
|
|
};
|
|
|
|
# Fzf settings
|
|
programs.fzf = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
};
|
|
|
|
# Enable direnv
|
|
programs.direnv = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
nix-direnv.enable = true;
|
|
};
|
|
|
|
programs.thefuck = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
};
|
|
|
|
home.packages = with pkgs; [ nitch ];
|
|
}
|