X-Git-Url: https://code.delx.au/dotfiles/blobdiff_plain/046e50fda2a2a84b3820ccd63841c421ffa5b74a..a91fbc24e2d74f2d19216808b7b04c714fbfefa2:/.bashrc diff --git a/.bashrc b/.bashrc index e524437..8a84088 100644 --- a/.bashrc +++ b/.bashrc @@ -1,4 +1,4 @@ -# shellcheck disable=SC1090 # -- Can't follow non-constant source +# shellcheck disable=SC1090 disable=SC1091 # -- Can't follow non-constant source ########################### # Settings for all shells # @@ -17,9 +17,8 @@ while read -r p; do done < <(find -L ~/bin -maxdepth 1 -type d 2> /dev/null) # Set EMAIL from the freedesktop environment.d -if [ -r ~/.config/environment.d/10-email.conf ]; then - source ~/.config/environment.d/10-email.conf - export EMAIL +if ls ~/.config/environment.d/*.conf &> /dev/null; then + eval "$(awk -F= '{print $0 ";export " $1}' ~/.config/environment.d/*.conf)" fi # Pick up SSH agent socket @@ -62,6 +61,7 @@ export HISTCONTROL='erasedups:ignoredups:ignorespace' export HISTSIZE='100000' export HISTTIMEFORMAT='%F %T ' +[ -r /etc/bash_completion ] && source /etc/bash_completion ################## # Terminal setup # @@ -70,9 +70,8 @@ export HISTTIMEFORMAT='%F %T ' # Disable CTRL-s / CTRL-q stty -ixon -# hostname:workingdir -PROMPT_COMMAND='echo -ne "\\033]0;$(hostname| cut -d. -f1):${PWD/$HOME/~}\\007"' - +# Use dark background colors in apps like vim +export COLORFGBG='15;0' ############# # Fancy PS1 # @@ -91,7 +90,13 @@ function find_up_exists { return 1 } -[ -r /usr/share/git/completion/git-prompt.sh ] && source /usr/share/git/completion/git-prompt.sh +for p in /usr/lib/git-core/git-sh-prompt \ + /usr/share/git/completion/git-prompt.sh \ + /usr/local/share/git-core/contrib/completion/git-prompt.sh +do + [ -r "$p" ] && source "$p" && break +done + function my_git_ps1 { find_up_exists .git || return GIT_PS1_SHOWDIRTYSTATE=1 \ @@ -110,7 +115,7 @@ function my_svn_ps1 { find_up_exists .svn || return local status status="$(svn status --ignore-externals 2> /dev/null | cut -c1 | sort -u | tr -d ' \n')" - [ -n "$status" ] && echo -n " ($s)" + [ -n "$status" ] && echo -n " ($status)" } # Two line prompt @@ -172,8 +177,7 @@ fi ########################## # GNU ls colours -# shellcheck disable=SC2046 -eval $(TERM=xterm dircolors 2> /dev/null) +eval "$(TERM=xterm dircolors 2> /dev/null)" # BSD ls colours export LSCOLORS="ExFxCxDxBxEGEDABAGACAD" @@ -234,14 +238,13 @@ fi # man with coloured headings and a terminal title function man { - echo -ne "\\033]0;man $*\\007" - env \ LESS_TERMCAP_md=$'\E[01;38;5;74m' \ LESS_TERMCAP_me=$'\E[0m' \ LESS_TERMCAP_us=$'\E[04;38;5;146m' \ LESS_TERMCAP_ue=$'\E[0m' \ - man --encoding ascii "$@" + LC_CTYPE=C \ + man "$@" } # Creates the directory if it doesn't exist, and changes into it @@ -270,6 +273,26 @@ function ssh_unsafe { ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$@" } + +######################### +# Optional local config # +######################### + +[ -r ~/.bashrc_local ] && source ~/.bashrc_local + + +################## +# xterm titlebar # +################## + +# When at a prompt display `hostname:workingdir` +PROMPT_COMMAND='echo -ne "\\033]0;$(hostname|cut -d. -f1):${PWD/$HOME/\~}\\007"' + +# Display the command about to be executed +# This must go at the end of bashrc to avoid running the trap on commands in the bashrc +trap 'echo -ne "\\033]0;$BASH_COMMAND\007"' DEBUG + + ########### # The end # ###########