/ dot_bashrc
dot_bashrc
  1  # ~/.bashrc: executed by bash(1) for non-login shells.
  2  # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
  3  # for examples
  4  
  5  # If not running interactively, don't do anything
  6  case $- in
  7      *i*) ;;
  8        *) return;;
  9  esac
 10  
 11  # don't put duplicate lines or lines starting with space in the history.
 12  # See bash(1) for more options
 13  HISTCONTROL=ignoreboth
 14  
 15  # append to the history file, don't overwrite it
 16  shopt -s histappend
 17  
 18  # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
 19  HISTSIZE=10000
 20  HISTFILESIZE=20000
 21  
 22  # check the window size after each command and, if necessary,
 23  # update the values of LINES and COLUMNS.
 24  shopt -s checkwinsize
 25  
 26  # If set, the pattern "**" used in a pathname expansion context will
 27  # match all files and zero or more directories and subdirectories.
 28  #shopt -s globstar
 29  
 30  # make less more friendly for non-text input files, see lesspipe(1)
 31  [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
 32  
 33  # set variable identifying the chroot you work in (used in the prompt below)
 34  if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
 35      debian_chroot=$(cat /etc/debian_chroot)
 36  fi
 37  
 38  # set a fancy prompt (non-color, unless we know we "want" color)
 39  case "$TERM" in
 40      xterm-color|*-256color) color_prompt=yes;;
 41  esac
 42  
 43  # uncomment for a colored prompt, if the terminal has the capability; turned
 44  # off by default to not distract the user: the focus in a terminal window
 45  # should be on the output of commands, not on the prompt
 46  #force_color_prompt=yes
 47  
 48  if [ -n "$force_color_prompt" ]; then
 49      if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
 50  	# We have color support; assume it's compliant with Ecma-48
 51  	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
 52  	# a case would tend to support setf rather than setaf.)
 53  	color_prompt=yes
 54      else
 55  	color_prompt=
 56      fi
 57  fi
 58  
 59  if [ "$color_prompt" = yes ]; then
 60      PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
 61  else
 62      PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
 63  fi
 64  unset color_prompt force_color_prompt
 65  
 66  # If this is an xterm set the title to user@host:dir
 67  case "$TERM" in
 68  xterm*|rxvt*)
 69      PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
 70      ;;
 71  *)
 72      ;;
 73  esac
 74  
 75  # some more ls aliases
 76  alias ll='ls -alF'
 77  alias la='ls -A'
 78  alias l='ls -CF'
 79  
 80  # Add an "alert" alias for long running commands.  Use like so:
 81  #   sleep 10; alert
 82  alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
 83  
 84  # enable programmable completion features (you don't need to enable
 85  # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
 86  # sources /etc/bash.bashrc).
 87  if ! shopt -oq posix; then
 88    if [ -f /usr/share/bash-completion/bash_completion ]; then
 89      . /usr/share/bash-completion/bash_completion
 90    elif [ -f /etc/bash_completion ]; then
 91      . /etc/bash_completion
 92    elif command -v brew >/dev/null 2>&1; then
 93      _brew_completion="$(brew --prefix)/etc/profile.d/bash_completion.sh"
 94      [ -f "$_brew_completion" ] && . "$_brew_completion"
 95      unset _brew_completion
 96    fi
 97  fi
 98  
 99  # Source cargo
100  [ -f "$HOME/.cargo/env" ] && . "$HOME/.cargo/env"
101  
102  # Set path
103  export PATH="$PATH:$HOME/.radicle/bin:$HOME/.local/bin"
104  
105  # GPG config
106  export GPG_TTY=$(tty)
107  if command -v gpgconf >/dev/null 2>&1 && command -v gpg-connect-agent >/dev/null 2>&1; then
108      export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
109      gpgconf --launch gpg-agent 2>/dev/null
110  fi
111  
112  # hledger
113  export LEDGER_FILE=$HOME/documents/finance/ledger/2025.journal
114  
115  # basic config
116  export EDITOR=hx
117  
118  # px
119  source ~/.local/share/px/px.sh
120  source ~/.local/share/px/completions/px.bash
121  
122  # Load fzf support
123  if [ -f /usr/share/doc/fzf/examples/key-bindings.bash ]; then
124      source /usr/share/doc/fzf/examples/key-bindings.bash
125  elif command -v brew >/dev/null 2>&1; then
126      _fzf_shell="$(brew --prefix)/opt/fzf/shell/key-bindings.bash"
127      [ -f "$_fzf_shell" ] && source "$_fzf_shell"
128      unset _fzf_shell
129  fi
130  
131  # Aliases
132  command -v fdfind >/dev/null 2>&1 && alias fd='fdfind'