.shellrc: Fix `cdremote`: Skip branch without upstream
[dotfiles.git] / .profile
index 370bb75..f222e80 100644 (file)
--- a/.profile
+++ b/.profile
@@ -2,19 +2,39 @@
 # $HOME/.profile (works with sh, ksh and bash)
 #
 
-case "$SHELL" in
-   */*csh) SHELL=/bin/bash
-   ;;
-   # this is for bash.exe
-   *command.com | \
-      *\\bash) SHELL=//c/ubin/bash
-   ;;
-esac
+# ~/.profile: executed by the command interpreter for login shells.
+# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
+# exists.
+# see /usr/share/doc/bash/examples/startup-files for examples.
+# the files are located in the bash-doc package.
+
+if test -n "$BASH_VERSION"; then
+   case "$SHELL" in
+      */bash) ;;
+      */*csh) SHELL=/bin/bash ;;
+      # this is for bash.exe
+      *command.com | *\\bash) SHELL=//c/ubin/bash ;;
+   esac
+#elif test -n "$KSH_VERSION"; then
+#   ksh93
+#elif test -n "$FCEDIT"; then
+#   ksh88
+#elif test -n "$ZSH_VERSION"; then
+#   zsh
+#elif test -n "$PS3"; then
+#   unknown
+#else
+#   sh
+fi
 
 if [ -z "$USER" ]; then
    USER="$LOGNAME"; export USER
 fi
 
+# the default umask is set in /etc/profile; for setting the umask
+# for ssh logins, install and configure the libpam-umask package.
+#umask 022
+
 ### umask sets a mask for the default file permissions,
 ### umask 022 is less restrictive, 077 more paranoid
 umask 077
@@ -60,43 +80,60 @@ if [ -t 0 ] ; then
 
    stty sane erase ^H
 
+   if [ -n "`which less 2>/dev/null`" ]; then
+      HAS_LESS=true
+   fi
+
    case "$TERM" in
       linux)
          # mutt, python and vim
          BACKGROUND=DARK
          export BACKGROUND
-         . "$HOME"/lib/config/less/dark_bg
+         [ -n "$HAS_LESS" ] && . "$HOME"/lib/config/less/dark_bg
       ;;
 
       *rxvt*|screen*|*term*|vt100)
          BACKGROUND=LIGHT
          export BACKGROUND
-         . "$HOME"/lib/config/less/light_bg
+         [ -n "$HAS_LESS" ] && . "$HOME"/lib/config/less/light_bg
       ;;
    esac
 
-   PAGER=less
-   LESS="-gimq"
-   case "$LC_CTYPE" in
-      *UTF-8) LESSCHARSET=utf-8
-      ;;
+   if [ -x /usr/bin/dircolors ]; then
+       test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
+   fi
 
-      *) LESSCHARSET=koi8-r
-      ;;
-   esac
-   #LESSCHARDEF=32c.
-   LESSEDIT='vim ?lt+%lt. -- %f'
-   export PAGER LESS LESSCHARSET LESSEDIT # LESSCHARDEF
+   if [ -n "$HAS_LESS" ]; then
+      PAGER=less
+      LESS="Rgimq"
+      case "$LC_CTYPE" in
+         *UTF-8) LESSCHARSET=utf-8
+         ;;
+
+         *) LESSCHARSET=koi8-r
+         ;;
+      esac
+      #LESSCHARDEF=32c.
+      LESSEDIT='vim ?lt+%lt. -- %f'
+      export LESS LESSCHARSET LESSEDIT # LESSCHARDEF
+
+      # make less more friendly for non-text input files, see lesspipe(1)
+      #[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
+
+   else
+      PAGER=more
+   fi
+   export PAGER
 
    EDITOR="$HOME"/.vim/vim.sh
-   VISUAL="$EDITOR"
    FCEDIT="$EDITOR"
-   export EDITOR VISUAL FCEDIT
+   VISUAL="$EDITOR"
+   export EDITOR FCEDIT VISUAL
 
    HISTCONTROL=ignoreboth
    HISTIGNORE='&: *:x:X:[bf]g'
    HISTFILE="$HOME/.sh_history"
-   HISTFILESIZE=1000
+   HISTFILESIZE=2000
    HISTSIZE=1000
    export HISTCONTROL HISTIGNORE HISTFILE HISTFILESIZE HISTSIZE
 
@@ -132,27 +169,38 @@ if [ -t 0 ] ; then
    ENV="$HOME/.shellrc"
    export ENV
 
-   case "$SHELL" in
-      */bash)
-         shopt -s checkwinsize
-         OPS1='\u@\h '
-         . "$ENV"
+   # 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
+
+   if test -n "$BASH_VERSION"; then
+      # display the user, host and current working directory
+      # in the terminal title
+      case "$TERM" in
+         *rxvt*|screen*|*term*|vt100)
+            OPS1="\[\033]0;${debian_chroot:+($debian_chroot)}\u@\h:\w\007\]"
+            case "$TERM" in
+               screen*)
+                  OPS1=${OPS1}"\[\033k${debian_chroot:+($debian_chroot)}\u@\h:\w\033\\\\\]" # Set screen/tmux caption
+               ;;
+            esac
          ;;
-      *)
-         OPS1="`/usr/bin/whoami`@`/bin/hostname -s` "
+
+         *)
+            OPS1=""
          ;;
-   esac
+      esac
 
-   export OPS1
+      OPS1=${OPS1}"${debian_chroot:+($debian_chroot)}\u@\h \W "
+      . "$ENV"
 
-   case "$TERM" in
-      *rxvt*|screen*|*term*|vt100)
-         if [ -x "`which xtitle 2>/dev/null`" ]; then
-            PROMPT_COMMAND=xtitle
-            export PROMPT_COMMAND
-         fi
-      ;;
-   esac
+   else
+      OPS1="${debian_chroot:+($debian_chroot)}`/usr/bin/whoami`@`/bin/hostname -s` "
+   fi
+
+   #PROMPT_DIRTRIM=2
+   export OPS1 # PROMPT_DIRTRIM
 
    ### biff controls new mail notification
    #biff n
@@ -178,9 +226,9 @@ if [ -t 0 ] ; then
 
    unset name email
 
-   if test -f .hushlogin && ! cmp -s .motd /etc/motd; then
-      tee $HOME/.motd < /etc/motd
-   fi
+   #if test -f .hushlogin && ! cmp -s .motd /etc/motd; then
+   #   tee $HOME/.motd < /etc/motd
+   #fi
 fi
 
 # No need to set DISPLAY - ssh sets DISPLAY and calls xauth
@@ -191,7 +239,7 @@ if [ -n "$DISPLAY" ]; then
    # mutt, python and vim
    BACKGROUND=LIGHT
    export BACKGROUND
-   . "$HOME"/lib/config/less/light_bg
+   [ -n "$HAS_LESS" ] && . "$HOME"/lib/config/less/light_bg
 
    # BROWSERs
    BROWSER="firefox:seamonkey:chromium:google-chrome:opera:xlinks2:$BROWSER"
@@ -219,8 +267,12 @@ if [ -n "$DISPLAY" ]; then
    # nVidia OpenGL full scene anti-aliasing
    #__GL_FSAA_MODE=4
    #export __GL_FSAA_MODE
+
+   #xhost +local:root > /dev/null 2>&1
 fi
 
+[ -n "$HAS_LESS" ] && unset HAS_LESS
+
 #
 # read in usepkg function
 # . "$HOME"/lib/config/usepkg.sh