Re: less stupid kshrc example

2010-10-31 Thread Andres Perera
2010-10-30 14:34 +0100, Stuart Henderson:
> 
> On 2010/10/29 21:55, Andres Perera wrote:
> > Defining a bunch of functions just to update the term title is
> > ridiculous.
> 
> I use this. Also it's a good way to find bugs in cwm :)

Not sure how it would help, but the title still changes, just not with
independent functions.

It doesn't work with set -o sh, though, since it doesn't evaluate PS1
escapes in this mode. In that case ksh.kshrc shouldn't be sourced
anyway.



Re: less stupid kshrc example

2010-10-30 Thread Stuart Henderson
On 2010/10/29 21:55, Andres Perera wrote:
> Defining a bunch of functions just to update the term title is
> ridiculous.

I use this. Also it's a good way to find bugs in cwm :)

> --- src/etc/ksh.kshrc.origFri Oct 29 21:40:51 2010
> +++ src/etc/ksh.kshrc Fri Oct 29 21:51:48 2010
> @@ -45,16 +45,7 @@
>   HOSTNAME=${HOSTNAME:-`uname -n`}
>   HOST=${HOSTNAME%%.*}
>  
> - PROMPT="$USER:!$PS1S"
> - #PROMPT="<$u...@$host:!>$PS1S"
> - PPROMPT='$USER:$PWD:!'"$PS1S"
> - #PPROMPT='<$u...@$host:$PWD:!>'"$PS1S"
> - PS1=$PPROMPT
> - # $TTY is the tty we logged in on,
> - # $tty is that which we are in now (might by pty)
> - tty=`tty`
> - tty=`basename $tty`
> - TTY=${TTY:-$tty}
> + PS1='\...@\h:\w \$ '
>  
>   set -o emacs
>  
> @@ -70,82 +61,29 @@
>   ;;
>   esac
>   case "$TERM" in
> - sun*-s)
> - # sun console with status line
> - if [ "$tty" != "$console" ]; then
> - # ilabel
> - ILS='\033]L'; ILE='\033\\'
> - # window title bar
> - WLS='\033]l'; WLE='\033\\'
> - fi
> + dtterm*|screen*|rxvt*|xterm*)
> + ILS="\e]1;"
> + ILE="\a"
> + WLS="\e]2;"
> + WLE="\a"
>   ;;
> - xterm*)
> - ILS='\033]1;'; ILE='\007'
> - WLS='\033]2;'; WLE='\007'
> - parent="`ps -ax 2>/dev/null | grep $PPID | grep -v grep`"
> - case "$parent" in
> - *telnet*)
> - export TERM=xterms;;
> - esac
> + ''|dumb|vt220)
> + true
>   ;;
> - *)  ;;
> + *)
> + if tput hs >/dev/null 2>&1; then
> + WLS=`tput ts`
> + WLE=`tput fs`
> + fi
> + ;;
>   esac
> - # do we want window decorations?
> - if [ "$ILS" ]; then
> - ilabel () { print -n "${ILS}$*${ILE}">/dev/tty; }
> - label () { print -n "${WLS}$*${WLE}">/dev/tty; }
> -
> - alias stripe='label "$u...@$host ($tty) - $PWD"'
> - alias istripe='ilabel "$u...@$host ($tty)"'
> -
> - wftp () { ilabel "ftp $*"; "ftp" "$@"; eval istripe; }
> - wcd () { \cd "$@" && eval stripe; }
> - wssh ()
> - {
> - local rc
> - "ssh" "$@"
> - rc=$?
> - eval istripe
> - eval stripe
> - return $rc
> - }
> - wtelnet ()
> - {
> - local rc
> - "telnet" "$@"
> - rc=$?
> - eval istripe
> - eval stripe
> - return $rc
> - }
> - wrlogin ()
> - {
> - local rc
> - "rlogin" "$@"
> - rc=$?
> - eval istripe
> - eval stripe
> - return $rc
> - }
> - wsu ()
> - {
> - local rc
> - "su" "$@"
> - rc=$?
> - eval istripe
> - eval stripe
> - return $rc
> - }
> - alias su=wsu
> - alias cd=wcd
> - alias ftp=wftp
> - alias ssh=wssh
> - alias telnet=wtelnet
> - alias rlogin=wrlogin
> - eval stripe
> - eval istripe
> - PS1=$PROMPT
> + if [ -n "$ILS" ]; then
> + PS1="$ps1\[$il...@\h$ile\]"
>   fi
> + if [ -n "$WLS" ]; then
> + PS1="$ps1\[$wl...@\h \w$WLE\]"
> + fi
> + unset ILS ILE WLS WLE
>   alias quit=exit
>   alias cls=clear
>   alias logout=exit



less stupid kshrc example

2010-10-29 Thread Andres Perera
Defining a bunch of functions just to update the term title is
ridiculous.

--- src/etc/ksh.kshrc.orig  Fri Oct 29 21:40:51 2010
+++ src/etc/ksh.kshrc   Fri Oct 29 21:51:48 2010
@@ -45,16 +45,7 @@
HOSTNAME=${HOSTNAME:-`uname -n`}
HOST=${HOSTNAME%%.*}
 
-   PROMPT="$USER:!$PS1S"
-   #PROMPT="<$u...@$host:!>$PS1S"
-   PPROMPT='$USER:$PWD:!'"$PS1S"
-   #PPROMPT='<$u...@$host:$PWD:!>'"$PS1S"
-   PS1=$PPROMPT
-   # $TTY is the tty we logged in on,
-   # $tty is that which we are in now (might by pty)
-   tty=`tty`
-   tty=`basename $tty`
-   TTY=${TTY:-$tty}
+   PS1='\...@\h:\w \$ '
 
set -o emacs
 
@@ -70,82 +61,29 @@
;;
esac
case "$TERM" in
-   sun*-s)
-   # sun console with status line
-   if [ "$tty" != "$console" ]; then
-   # ilabel
-   ILS='\033]L'; ILE='\033\\'
-   # window title bar
-   WLS='\033]l'; WLE='\033\\'
-   fi
+   dtterm*|screen*|rxvt*|xterm*)
+   ILS="\e]1;"
+   ILE="\a"
+   WLS="\e]2;"
+   WLE="\a"
;;
-   xterm*)
-   ILS='\033]1;'; ILE='\007'
-   WLS='\033]2;'; WLE='\007'
-   parent="`ps -ax 2>/dev/null | grep $PPID | grep -v grep`"
-   case "$parent" in
-   *telnet*)
-   export TERM=xterms;;
-   esac
+   ''|dumb|vt220)
+   true
;;
-   *)  ;;
+   *)
+   if tput hs >/dev/null 2>&1; then
+   WLS=`tput ts`
+   WLE=`tput fs`
+   fi
+   ;;
esac
-   # do we want window decorations?
-   if [ "$ILS" ]; then
-   ilabel () { print -n "${ILS}$*${ILE}">/dev/tty; }
-   label () { print -n "${WLS}$*${WLE}">/dev/tty; }
-
-   alias stripe='label "$u...@$host ($tty) - $PWD"'
-   alias istripe='ilabel "$u...@$host ($tty)"'
-
-   wftp () { ilabel "ftp $*"; "ftp" "$@"; eval istripe; }
-   wcd () { \cd "$@" && eval stripe; }
-   wssh ()
-   {
-   local rc
-   "ssh" "$@"
-   rc=$?
-   eval istripe
-   eval stripe
-   return $rc
-   }
-   wtelnet ()
-   {
-   local rc
-   "telnet" "$@"
-   rc=$?
-   eval istripe
-   eval stripe
-   return $rc
-   }
-   wrlogin ()
-   {
-   local rc
-   "rlogin" "$@"
-   rc=$?
-   eval istripe
-   eval stripe
-   return $rc
-   }
-   wsu ()
-   {
-   local rc
-   "su" "$@"
-   rc=$?
-   eval istripe
-   eval stripe
-   return $rc
-   }
-   alias su=wsu
-   alias cd=wcd
-   alias ftp=wftp
-   alias ssh=wssh
-   alias telnet=wtelnet
-   alias rlogin=wrlogin
-   eval stripe
-   eval istripe
-   PS1=$PROMPT
+   if [ -n "$ILS" ]; then
+   PS1="$ps1\[$il...@\h$ile\]"
fi
+   if [ -n "$WLS" ]; then
+   PS1="$ps1\[$wl...@\h \w$WLE\]"
+   fi
+   unset ILS ILE WLS WLE
alias quit=exit
alias cls=clear
alias logout=exit