Files
dotfiles/shell/.bashrc
2026-03-26 23:53:32 +02:00

74 lines
4.8 KiB
Bash

# ~/.bashrc — interactive shell config
# not interactive? bail out
case $- in *i*) ;; *) return ;; esac
# ─── system defaults ──────────────────────────────────────────────────────────
[ -f /etc/bash.bashrc ] && source /etc/bash.bashrc
# ─── history ──────────────────────────────────────────────────────────────────
HISTCONTROL=ignoreboth
HISTSIZE=10000
HISTFILESIZE=20000
HISTIGNORE="clear:bg:fg:cd:cd -:cd ..:exit:date:ls:l:ll:* --help"
shopt -s histappend
shopt -s checkwinsize
# ─── prompt ───────────────────────────────────────────────────────────────────
# green user, blue path — simple and readable
PS1='\[\e[1;32m\]\u\[\e[0m\]:\[\e[1;34m\]\w\[\e[0m\]\$ '
# ─── colors ───────────────────────────────────────────────────────────────────
if [ -x /usr/bin/dircolors ]; then
eval "$(dircolors -b ~/.dircolors 2>/dev/null || dircolors -b)"
fi
# ─── aliases ──────────────────────────────────────────────────────────────────
[ -f ~/.bash_aliases ] && source ~/.bash_aliases
# ─── completions ──────────────────────────────────────────────────────────────
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
# ─── fzf ──────────────────────────────────────────────────────────────────────
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
export FZF_DEFAULT_OPTS="--height 40% --layout=reverse --border"
# ─── less ─────────────────────────────────────────────────────────────────────
export LESS="-R --use-color"
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# ─── rust / cargo ─────────────────────────────────────────────────────────────
[ -f "$HOME/.cargo/env" ] && . "$HOME/.cargo/env"
# ─── node / nvm ───────────────────────────────────────────────────────────────
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"
# ─── pnpm ─────────────────────────────────────────────────────────────────────
export PNPM_HOME="$HOME/.local/share/pnpm"
case ":$PATH:" in
*":$PNPM_HOME:"*) ;;
*) export PATH="$PNPM_HOME:$PATH" ;;
esac
# ─── deno ─────────────────────────────────────────────────────────────────────
[ -f "$HOME/.deno/env" ] && . "$HOME/.deno/env"
# ─── java ─────────────────────────────────────────────────────────────────────
export JAVA_HOME="$HOME/.jdks/corretto-23.0.2"
export PATH="$JAVA_HOME/bin:$PATH"
# ─── jbang ────────────────────────────────────────────────────────────────────
export PATH="$HOME/.jbang/bin:$PATH"
alias j!=jbang
# ─── local bin ────────────────────────────────────────────────────────────────
[ -d "$HOME/.local/bin" ] && export PATH="$HOME/.local/bin:$PATH"
[ -d "$HOME/bin" ] && export PATH="$HOME/bin:$PATH"