# ~/.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"