]> git.phdru.name Git - dotfiles.git/blobdiff - .bash_prompt
.shellrc: Check if file `bash_completion` exists
[dotfiles.git] / .bash_prompt
index 9800455f3776a9109b189a29c9312827a8e8e596..6126ef25240e8358dbb2ef4f25f09c420072f18c 100644 (file)
@@ -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=""
@@ -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)
-        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"
-        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
 }