95 lines
2.5 KiB
Nix
95 lines
2.5 KiB
Nix
|
{ pkgs, ... }:
|
||
|
{
|
||
|
programs = {
|
||
|
zoxide = {
|
||
|
enable = true;
|
||
|
enableZshIntegration = true;
|
||
|
options = [
|
||
|
"--cmd cd"
|
||
|
];
|
||
|
};
|
||
|
|
||
|
zsh = {
|
||
|
enable = true;
|
||
|
package = pkgs.zsh;
|
||
|
dotDir = ".config/zsh";
|
||
|
|
||
|
defaultKeymap = "viins";
|
||
|
enableCompletion = true;
|
||
|
autosuggestion.enable = false;
|
||
|
|
||
|
syntaxHighlighting = {
|
||
|
enable = true;
|
||
|
package = pkgs.zsh-syntax-highlighting;
|
||
|
};
|
||
|
|
||
|
history = {
|
||
|
save = 10000;
|
||
|
size = 10000;
|
||
|
ignoreDups = true;
|
||
|
};
|
||
|
|
||
|
historySubstringSearch = {
|
||
|
enable = true;
|
||
|
searchUpKey = "^P";
|
||
|
searchDownKey = "^N";
|
||
|
};
|
||
|
|
||
|
envExtra = ''
|
||
|
export EDITOR=nvim || export EDITOR=vim
|
||
|
export BROWSER=firefox
|
||
|
|
||
|
# Clean up the home folder.
|
||
|
export GCC_COLORS="error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01"
|
||
|
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
|
||
|
export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME/java"
|
||
|
export LC_ALL=en_US.UTF-8
|
||
|
export LESSHISTFILE="-"
|
||
|
export MANPAGER="nvim +Man!"
|
||
|
export PARALLEL_HOME="$XDG_CONFIG_HOME/parallel"
|
||
|
export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history"
|
||
|
|
||
|
# Add these directories to PATH on shell startup.
|
||
|
PATH=$PATH:$HOME/scripts
|
||
|
PATH=$PATH:$HOME/.local/bin
|
||
|
'';
|
||
|
|
||
|
initExtra = ''
|
||
|
autoload -U colors && colors
|
||
|
# Manually set the prompt.
|
||
|
PS1="
|
||
|
%{$fg[blue]%}%n %{$fg[yellow]%}at %{$fg[blue]%}%m %{$fg[yellow]%}in %{$fg[blue]%}%~
|
||
|
%{$fg[yellow]%}λ%{$reset_color%} "
|
||
|
|
||
|
set -o noclobber
|
||
|
setopt interactive_comments
|
||
|
|
||
|
export KEYTIMEOUT=1
|
||
|
|
||
|
# Use 'k' and 'j' for substring searching when in cmd mode.
|
||
|
bindkey -M vicmd 'k' history-substring-search-up
|
||
|
bindkey -M vicmd 'j' history-substring-search-down
|
||
|
|
||
|
# Use <C-y> for autosuggestions, similar to nvim.
|
||
|
bindkey '^Y' autosuggest-accept
|
||
|
|
||
|
# Cycle back through previous suggestions with <S-Tab>.
|
||
|
bindkey '^[[Z' reverse-menu-complete
|
||
|
'';
|
||
|
|
||
|
shellAliases = {
|
||
|
cp = "cp -i";
|
||
|
mv = "mv -i";
|
||
|
rm = "rm -I";
|
||
|
ls = "ls --color=auto";
|
||
|
cat = "bat -pp";
|
||
|
grep = "grep --color=auto";
|
||
|
diff = "diff --color=auto";
|
||
|
mutt = "neomutt";
|
||
|
song = "yt-dlp --continue --no-check-certificate --format=bestaudio -x --add-metadata --audio-format=flac";
|
||
|
mkdir = "mkdir -p";
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|