-# shellcheck disable=SC1090 # -- Can't follow non-constant source
+# shellcheck disable=SC1090 disable=SC1091 # -- Can't follow non-constant source
###########################
# Settings for all shells #
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
export HISTSIZE='100000'
export HISTTIMEFORMAT='%F %T '
+[ -r /etc/bash_completion ] && source /etc/bash_completion
##################
# Terminal setup #
# 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 #
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 \
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
##########################
# 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"
# 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
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 #
###########