]> gitweb @ CieloNegro.org - sugar.git/blobdiff - dot-files/_zshrc
Auto commit by The Sugar System.
[sugar.git] / dot-files / _zshrc
index b5a69ac9caed0bd59fdb8b392446eeaaa69f806b..eaf76574fb788c92b3d7c704bc9e078b9b424d96 100644 (file)
@@ -58,14 +58,61 @@ function _we_are_in_gnu_screen () {
 
 _prompt_base='%B[%n@%m] %{%(?.$fg[green].$fg[red])%}%#%{$reset_color%}%b '
 if ( _we_are_in_gnu_screen ); then
-    # Magic escape sequence for GNU Screen to update their titles
-    # dynamically by grabbing prompt line.
-    PROMPT=$'%{\ek\e\\%}'$_prompt_base
+    # GNU Screen has a capability to set its window title by "ESC k
+    # {string} ESC \". We want to reset the title to `_' to show we
+    # aren't running any command now.
+    PROMPT=$'%{\ek_\e\\%}'$_prompt_base
 else
     PROMPT=$_prompt_base
 fi
 
-RPROMPT='%U%D{%m/%d}%u %U%D{%T}%u %U%~%u'
+function preexec() { # Hook
+    if { _we_are_in_gnu_screen } then
+        # Set the window title of GNU Screen.
+        local cmd=${1[(wr)^(*=*|sudo|nice|env|time|-*|[0-9]*)]}
+        printf "\ek$cmd\e\\"
+    fi
+}
+
+function chpwd() { # Hook
+    local dirinfo=$(print_directory_info $(pwd))
+
+    case $dirinfo in
+        "")
+            RPROMPT='%U%~%u';;
+        *)
+            RPROMPT="%U%~%u %U($dirinfo)%u";;
+    esac
+}
+
+function print_directory_info() {
+    local absdir=$1
+
+    if [[ -d $absdir/.git ]] then
+        # Git
+        git branch --no-color 2>/dev/null \
+            | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'
+
+    elif [[ -d $absdir/.hg ]] then
+        # Hg
+        hg branch 2>/dev/null
+
+    elif [[ -d $absdir/_darcs ]] then
+        # Darcs
+        basename $absdir
+
+    else
+        # Unknown.
+        if [[ $absdir = "/" ]] then
+            # This is the root directory so exit from the recursion.
+            echo
+        else
+            # Recurse to the parent dir.
+            print_directory_info $(dirname $absdir)
+        fi
+    fi
+}
+chpwd
 
 HISTFILE="$HOME/.zhistory"
 HISTSIZE=6000000
@@ -91,6 +138,16 @@ alias w3m="w3m -O UTF-8"
 alias w3mb="w3m -O UTF-8 -B"
 alias pkgsrc="pushd /usr/pkgsrc"
 
+alias aria="ssh -X admin@aria.cielonegro.org"
+alias nem="ssh -X pho@nem.cielonegro.org"
+alias mikasa="ssh -X daimon@mikasa.tomilab.net"
+
+alias aria-emacs="ssh -f -X admin@aria.cielonegro.org emacs"
+
+alias g1="ssh pho@g1.cuenote.jp"
+alias g2="ssh pho@g2.cuenote.jp"
+alias mana="ssh pho@mana"
+
 if [ $(hostname) = "aria.cielonegro.org" ]; then
     alias safari="open -a Safari"
     alias unstuff='open -a StuffIt\ Expander.app'
@@ -106,6 +163,8 @@ if [ $(uname) = "Darwin" ]; then
     alias la='ls -aw'
     alias l='ls -lw'
     alias lls='ls -law'
+
+    alias top='/usr/bin/top -X -o cpu'
 else
     alias ls='ls -F'
     alias la='ls -a'