summaryrefslogtreecommitdiff
path: root/.config/bash/rc.sh
diff options
context:
space:
mode:
Diffstat (limited to '.config/bash/rc.sh')
-rw-r--r--.config/bash/rc.sh158
1 files changed, 98 insertions, 60 deletions
diff --git a/.config/bash/rc.sh b/.config/bash/rc.sh
index 2bf60bc..ed5d87e 100644
--- a/.config/bash/rc.sh
+++ b/.config/bash/rc.sh
@@ -1,79 +1,117 @@
-# ~/.bashrc: executed by bash(1) for interactive non-login shells.
+# ~/.bashrc: executed by bash(1) for non-login shells.
+# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
+# for examples
+
# I include this file for all interactive invocations of bash(1), whether
# they are login shells or not.
# If not running interactively, don't do anything
-[[ $- != *i* ]] && return
+[ -z "$PS1" ] && return
+
+# don't put duplicate lines in the history. See bash(1) for more options
+# don't overwrite GNU Midnight Commander's setting of `ignorespace'.
+export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
+# ... or force ignoredups and ignorespace
+export HISTCONTROL=ignoreboth
+
+# append to the history file, don't overwrite it
+shopt -s histappend
+
+# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
+
+# check the window size after each command and, if necessary,
+# update the values of LINES and COLUMNS.
+shopt -s checkwinsize
+
+# Let ** recursively scan directories
+shopt -s globstar
# Why is this not on by default?
# "We have a cached value, but it isn't valid anymore. Should we trash it?"
-# "Duh, yes!"
shopt -s checkhash
-################################################################################
-
-# History settings
-HISTCONTROL=ignoredups
-HISTFILE=${XDG_CACHE_HOME}/bash/history
-HISTTIMEFORMAT='[%Y-%m-%d %H:%M] '
-HISTSIZE=5000
-shopt -s histappend # append to the history file, don't overwrite it
-mkdir -p "${HISTFILE%/*}"
-
-# General settings
-shopt -s checkwinsize # update the values of LINES and COLUMNS
-shopt -s globstar # Let ** recursively scan directories
-
-################################################################################
-# Overly complicated setting of PS1 #
-################################################################################
-
-# Belongs in aliases, but I use it here
-term-title() {
- local fmt=''
- case "$TERM" in
- screen|tmux) fmt='\ek%s\e\\';;
- xterm*|rxvt*) fmt='\e]0;%s\a';;
- esac
- printf "$fmt" "$*"
-}
-PROMPT_COMMAND=''
-
-make_prompt() {
- echo "${BOLD}${GREEN}\u@\h${BLUE}:\w${RESET}"
-}
-
-if tput setaf 1 &>/dev/null; then
+# set variable identifying the chroot you work in (used in the prompt below)
+if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
+ debian_chroot=$(cat /etc/debian_chroot)
+fi
+
+case "$TERM" in
+ xterm) export TERM=xterm-256color;;
+esac
+
+# set a fancy prompt (non-color, unless we know we "want" color)
+case "$TERM" in
+ linux) color_prompt=yes;;
+ *-*color*) color_prompt=yes;;
+esac
+
+# uncomment for a colored prompt, if the terminal has the capability; turned
+# off by default to not distract the user: the focus in a terminal window
+# should be on the output of commands, not on the prompt
+#force_color_prompt=yes
+
+if [ -n "$force_color_prompt" ]; then
+ if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
- RESET="$(tput sgr0)"
- BOLD="$(tput bold)"
- RED="$(tput setaf 1)"
- GREEN="$(tput setaf 2)"
- BLUE="$(tput setaf 4)"
-
- _STATUS="${BOLD}["
- _STATUS+="\$(v=\$?; [[ \$v = 0 ]] && c='${GREEN}' || c='${RED}'; printf %s%03i \$c \$v)"
- _STATUS+="${RESET}${BOLD}]${RESET}"
+ color_prompt=yes
+ else
+ color_prompt=
+ fi
+fi
+
+if [ "$color_prompt" = yes ]; then
+ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ '
else
- _STATUS='[$(printf "%03i" $?)]'
+ PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\n\$ '
fi
-PS1="${_STATUS} $(make_prompt)"'\n\$ '
-unset RESET BOLD RED GREEN BLUE _STATUS
-PS1="$(term-title $(make_prompt))$PS1"
-unset make_prompt
+unset color_prompt force_color_prompt
-################################################################################
+# If this is an xterm set the title to user@host:dir
+case "$TERM" in
+xterm*|rxvt*)
+ PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
+ ;;
+*)
+ ;;
+esac
-# Load my alaises
-if [[ -f ${XDG_CONFIG_HOME}/bash/aliases.sh ]]; then
- . ${XDG_CONFIG_HOME}/bash/aliases.sh
+# Include modular config files
+if [ -d ~/.bash.d ]; then
+ for file in ~/.bash.d/*.sh; do
+ . $file;
+ done
fi
-# Include modular config files
-if [[ -d ${XDG_CONFIG_HOME}/bash/rc.d ]]; then
- for file in "${XDG_CONFIG_HOME}/bash/rc.d"/*.sh; do
- . "$file"
- done
+# Alias definitions.
+# You may want to put all your additions into a separate file like
+# ~/.bash_aliases, instead of adding them here directly.
+# See /usr/share/doc/bash-doc/examples in the bash-doc package.
+
+if [ -f ~/.bash_aliases ]; then
+ . ~/.bash_aliases
+fi
+
+# enable programmable completion features (you don't need to enable
+# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
+# sources /etc/bash.bashrc).
+if [ -f /etc/bash_completion ]; then
+ . /etc/bash_completion
fi
+
+if [ -f "$HOME/.login-daemons" ]; then
+ . "$HOME/.login-daemons"
+fi
+
+if [ -f "${HOME}/.gnupg/agent-info" ]; then
+ . "${HOME}/.gnupg/agent-info"
+ export GPG_AGENT_INFO
+ #export SSH_AUTH_SOCK
+fi
+
+export PERL_LOCAL_LIB_ROOT="/home/luke/perl5";
+export PERL_MB_OPT="--install_base /home/luke/perl5";
+export PERL_MM_OPT="INSTALL_BASE=/home/luke/perl5";
+export PERL5LIB="/home/luke/perl5/lib/perl5/i686-linux-thread-multi:/home/luke/perl5/lib/perl5";
+export PATH="/home/luke/perl5/bin:$PATH";