X-Git-Url: https://git.phdru.name/?p=dotfiles.git;a=blobdiff_plain;f=.bash_prompt;h=6126ef25240e8358dbb2ef4f25f09c420072f18c;hp=f2c3655e42ff337385a74eb44a2b96bb6d1ce741;hb=b6a66baa4b82f4cd5604b9f76f9848540f74026b;hpb=843fab9da4509fa30afdfe6d892fa0e528220ca8 diff --git a/.bash_prompt b/.bash_prompt index f2c3655..6126ef2 100644 --- a/.bash_prompt +++ b/.bash_prompt @@ -1,16 +1,8 @@ #!/bin/bash # bash_prompt; adapted from -# https://github.com/necolas/dotfiles/blob/master/shell/bash_prompt - -# Example: -# nicolas@host: ~/.dotfiles on master [+!?$] -# $ - -# Screenshot: http://i.imgur.com/DSJ1G.png -# iTerm2 prefs: import Solarized theme (disable bright colors for bold text) -# Color ref: http://vim.wikia.com/wiki/Xterm256_color_names_for_console_Vim -# More tips: http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html +# https://github.com/necolas/dotfiles/blob/master/shell/bash_prompt and +# http://vitus-wagner.livejournal.com/1176589.html?thread=40146189#t40146189 prompt_git() { local s="" @@ -70,7 +62,7 @@ set_prompts() { local dim="" local green="" local orange="" - local purple="" + local magenta="" local red="" local reset="" local white="" @@ -87,8 +79,11 @@ set_prompts() { local dim_white="" local dim_yellow="" + local charStyle="" + local gitStyle="" local hostStyle="" local userStyle="" + local wdirStyle="" if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then tput sgr0 # reset colors @@ -97,17 +92,15 @@ set_prompts() { dim=$(tput dim) reset=$(tput sgr0) - # Solarized colors - # (https://github.com/altercation/solarized/tree/master/iterm2-colors-solarized#the-values) black=$(tput setaf 0) - blue=$(tput setaf 33) - cyan=$(tput setaf 37) - green=$(tput setaf 64) - orange=$(tput setaf 166) - purple=$(tput setaf 125) - red=$(tput setaf 124) - white=$(tput setaf 15) - yellow=$(tput setaf 136) + blue=$(tput setaf 4) + cyan=$(tput setaf 6) + green=$(tput setaf 2) + orange=$(tput setaf 3) + magenta=$(tput setaf 5) + red=$(tput setaf 1) + white=$bold$(tput setaf 7) + yellow=$(tput setaf 3) dim_black=$dim$black dim_blue=$dim$blue @@ -123,15 +116,15 @@ set_prompts() { dim="" reset="\e[0m" - black="\e[1;30m" - blue="\e[1;34m" - cyan="\e[1;36m" - green="\e[1;32m" - orange="\e[1;33m" - purple="\e[1;35m" - red="\e[1;31m" - white="\e[1;37m" - yellow="\e[1;33m" + black="\e[0;30m" + blue="\e[0;34m" + cyan="\e[0;36m" + green="\e[0;32m" + orange="\e[0;33m" + magenta="\e[0;35m" + red="\e[0;31m" + white="\e[0;37m" + yellow="\e[0;33m" dim_black="\e[1;30m" dim_blue="\e[1;34m" @@ -144,34 +137,53 @@ set_prompts() { dim_yellow="\e[1;33m" fi - # build the prompt + charStyle="$reset$bold$black" + gitStyle="\[$white\]on \[$magenta\]" + case "$BACKGROUND" in + DARK|dark) + hostStyle="$reset$cyan" + ;; + LIGHT|light) + hostStyle="$reset$blue" + ;; + esac + wdirStyle="$reset$green" + # logged in as root if [[ "$USER" == "root" ]]; then - userStyle="\[$bold$red\]" + userStyle="$bold$red" else - userStyle="\[$orange\]" + userStyle="$orange" fi - # connected via ssh - if [[ "$SSH_TTY" ]]; then - hostStyle="\[$bold$red\]" - else - hostStyle="\[$yellow\]" - fi - - # set the terminal title to the current working directory - PS1="\[\033]0;\w\007\]" - - PS1+="\n" # newline + # build the prompt + # display the user, host and current working directory in the terminal title + case "$TERM" in + *rxvt*|screen*|*term*|vt100) + PS1="\[\033]0;\u@\h:\w\007\]" + case "$TERM" in + screen*) + PS1+"\[\033k\u@\h:\w\033\\\]" # Set screen/tmux caption + ;; + esac + ;; + + *) + PS1="" + ;; + esac + + #PS1+="\n" # newline PS1+="\[$userStyle\]\u" # username - PS1+="\[$reset$white\]@" - PS1+="\[$hostStyle\]\h" # host - PS1+="\[$reset$white\]: " - PS1+="\[$green\]\w" # working directory - PS1+="\$(prompt_git \"$white on $cyan\")" # git repository details - PS1+="\n" - PS1+="\[$reset$white\]\$ \[$reset\]" # $ (and reset color) + PS1+="\[$charStyle\]@" + PS1+="\[$hostStyle\]\h " # host + #PS1+="\[$charStyle\]: " + PS1+="\[$wdirStyle\]\W " # working directory + PS1+='`erco=$?; [ $erco == 0 ] && echo -n ":)" || echo -n '"\"\[$red\]:(\[$reset\] $\""'?=$erco` ' + PS1+="\$(prompt_git \"$gitStyle\")" # git repository details + #PS1+="\n" + PS1+="\[$charStyle\]\$ \[$reset\]" # $ (and reset color) export PS1 }