nix-config/modules/bash/default.nix
2025-09-22 16:12:20 +02:00

55 lines
1.4 KiB
Nix

{
programs.bash = {
enable = true;
enableCompletion = true;
sessionVariables = {
GPG_TTY = "$(tty)";
PROMPT_DIRTRIM = 3;
GOPATH = "$HOME/go";
GOROOT = "$(brew --prefix golang)/libexec";
};
shellAliases = {
"ff" = "${./bin/ff.sh}";
"ipl" = "ifconfig | grep \"inet \" | grep -v 127.0.0.1 | awk '{print $2}' | head -n 1";
"ipp" = "curl -4 ifconfig.me";
"lg" = "lazygit";
"g" = "git";
"xsrc" = "source ~/.bashrc && source .bash_profile";
"ll" = "ls -l";
"la" = "ls -la";
};
profileExtra = ''
export PATH=\
$GOPATH/bin:\
$GOROOT/bin:\
/run/current-system/sw/bin:\
/opt/homebrew/bin:$PATH
'';
bashrcExtra = ''
# FNM
eval "$(fnm env --use-on-cd --shell bash)"
# emacs-libvterm
if [[ "$INSIDE_EMACS" = 'vterm' ]] \
&& [[ -n "$EMACS_VTERM_PATH" ]] \
&& [[ -f "$EMACS_VTERM_PATH/etc/emacs-vterm-bash.sh" ]]; then
source "$EMACS_VTERM_PATH/etc/emacs-vterm-bash.sh"
fi
'';
initExtra = ''
if [ "$TERM" == "dumb" ]; then
PS1="[\u@\h:\w]\\$ "
else
source ~/.git-prompt.sh
PROMPT_COMMAND='PS1_CMD1=$(__git_ps1 "(%s)")';
PS1="\[\e[95m\]\u\[\e[35m\]@\h\[\e[0m\] \[\e[96m\]\w\[\e[0m\] \[\e[95m\]$PS1_CMD1\n\[\e[96m\]λ\[\e[0m\] "
fi
'';
};
}