112 lines
3.5 KiB
Nix
112 lines
3.5 KiB
Nix
{
|
|
pkgs,
|
|
config,
|
|
...
|
|
}: {
|
|
programs.bat.enable = true;
|
|
programs.eza.enable = true;
|
|
programs.man.enable = true;
|
|
|
|
programs.wezterm.enableBashIntegration = true;
|
|
programs.fzf = {
|
|
enable = true;
|
|
enableBashIntegration = true;
|
|
};
|
|
services.gpg-agent.enableBashIntegration = true;
|
|
programs.bash = {
|
|
enable = true;
|
|
enableCompletion = true;
|
|
# historyControl = ["erasedups" "ignorespace" "ignoredups" "ignoreboth"]
|
|
historyFile = "${config.home.homeDirectory}/.histfile";
|
|
historyFileSize = 100000000;
|
|
shellOptions = [
|
|
"APPEND_HISTORY" # Append to histfile instead of overwriting.
|
|
"SHARE_HISTORY" # Share history between all sessions.
|
|
"HIST_IGNORE_SPACE" # Do not record an event starting with a space.
|
|
"HIST_IGNORE_ALL_DUPS" # Delete an old recorded event if a new event is a duplicate.
|
|
"HIST_SAVE_NO_DUPS" # Do not write a duplicate event to the history file.
|
|
"HIST_IGNORE_DUPS" # Do not record an event that was just recorded again.
|
|
"HIST_FIND_NO_DUPS" # Do not display a previously found event.
|
|
"EXTENDED_HISTORY" # Write the history file in the ':start:elapsed;command' format.
|
|
"HIST_EXPIRE_DUPS_FIRST" # Expire a duplicate event first when trimming history.
|
|
|
|
"ALWAYS_TO_END"
|
|
"ALWAYS_TO_END"
|
|
"AUTO_LIST"
|
|
"AUTO_MENU"
|
|
"AUTO_PARAM_SLASH"
|
|
"AUTO_PUSHD"
|
|
"ALWAYS_TO_END"
|
|
"COMPLETE_IN_WORD"
|
|
"EXTENDED_GLOB"
|
|
"INC_APPEND_HISTORY"
|
|
"INTERACTIVE_COMMENTS"
|
|
"MENU_COMPLETE"
|
|
"NO_BEEP"
|
|
"NOTIFY"
|
|
"PATH_DIRS"
|
|
"PUSHD_IGNORE_DUPS"
|
|
"PUSHD_SILENT"
|
|
|
|
"-CASE_GLOB"
|
|
"-CORRECT"
|
|
"-EQUALS"
|
|
"-FLOWCONTROL"
|
|
"-NOMATCH"
|
|
];
|
|
initExtra = ''
|
|
eval "$(${pkgs.zoxide}/bin/zoxide init --cmd cd bash)"
|
|
eval "$(${pkgs.oh-my-posh}/bin/oh-my-posh init bash --config ${./prompt-zen.toml})"
|
|
|
|
hash -d "dl"="$HOME/Downloads"
|
|
hash -d "docs"="$HOME/Documents"
|
|
hash -d "src"="$HOME/src"
|
|
hash -d "dots"="$HOME/nix"
|
|
hash -d "nix"="$HOME/nix"
|
|
hash -d "pics"="$HOME/Pictures"
|
|
hash -d "vids"="$HOME/Videos"
|
|
'';
|
|
sessionVariables = {
|
|
SAVEHIST = 1000000000;
|
|
HISTDUP = "erase";
|
|
DIRENV_LOG_FORMAT = "";
|
|
LC_ALL = "en_US.UTF-8";
|
|
KEYTIMEOUT = 1;
|
|
GPG_TTY = "$(tty)";
|
|
PATH = "$PATH:$HOME/bin";
|
|
};
|
|
shellAliases = {
|
|
run = "nix-shell --command 'zsh' -p";
|
|
nsh = "nix-shell --command 'zsh'";
|
|
nd = "nix develop";
|
|
g = "git";
|
|
gs = "git st";
|
|
gst = "git st";
|
|
src = "cd $HOME/dev";
|
|
sv0 = "ssh -l root proxmox";
|
|
nmcs = "ssh -l kd nmcs";
|
|
pn = "pnpm";
|
|
rm = "rm -rf";
|
|
cp = "cp -ri";
|
|
mkdir = "mkdir -p";
|
|
free = "free -m";
|
|
j = "just";
|
|
ed = "code";
|
|
n = "nvim";
|
|
cdr = "cd \$(git rev-parse --show-toplevel)";
|
|
l = "eza -al --no-time --group-directories-first";
|
|
ls = "eza -al --no-time --group-directories-first";
|
|
la = "eza -a";
|
|
ll = "eza -l --no-time --group-directories-first";
|
|
lt = "eza -aT --no-time --group-directories-first";
|
|
cat = "bat --theme gruvbox-dark --style numbers,changes --color=always --tabs=2 --wrap=never";
|
|
diff = "delta";
|
|
top = "btm";
|
|
c = "clear";
|
|
glg = "git lg";
|
|
ghr = "gh repo";
|
|
serve = "python3 -m http.server";
|
|
ytmp3 = "yt-dlp --ignore-errors --format bestaudio --extract-audio --audio-format mp3 --audio-quality 0 --embed-thumbnail --embed-metadata --output '%(title)s.%(ext)s'";
|
|
};
|
|
};
|
|
}
|