/ 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'