
                             pܧ xterm DD
                                       
Ric Lister, ric@giccs.georgetown.edu
Ķ:  [1]yytseng@ms16.hinet.net

   v2.0, 1999 ~Q 27 
     _________________________________________________________________
   
   pϥηǦCHʺAܧ xterm ιϥ. dҤ, ]tƺ
   ROĶyk. ӪCXL׺ݾϥΪǦC.
     _________________________________________________________________
   
1. iHbo

2. RADD

3. ʺADD

     * 3.1 xterm ǦC
     * 3.2 LXoǧǦC
       
4. UةROĶd

     * 4.1 zsh
     * 4.2 tcsh
     * 4.3 bash
     * 4.4 ksh
     * 4.5 csh
       
5. ܥb檺u@W

     * 5.1 zsh
     * 5.2 LROĶs
       
6. : 䥦׺ݾǦC

     * 6.1 IBM aixterm
     * 6.2 SGI wsh, xwsh  winterm
     * 6.3 Sun cmdtool  shelltool
     * 6.4 CDE dtterm
     * 6.5 HPterm
       
7. : 䥦yd

     * 7.1 C
     * 7.2 Perl
       
8. Credits
     _________________________________________________________________
   
1. iHbo

   o{wO [2]Linux HOWTO Index @, iHbo
   [3]http://sunsite.unc.edu/LDP/HOWTO/mini/Xterm-Title.html.
   
   ̷sUؤ榡iHbo
   [4]http://www.giccs.georgetown.edu/~ric/howto/Xterm-Title/.
   
   NF쥻 Winfried Truemper Ҽg howto.
   
2. RADD

   @ز׺ݾ xterm, color-xterm  rxvt iHǥ -T  -n ѼƳ]w
   ӳ]wRADD:
   
     xterm -T "My XTerm's Title" -n "My XTerm's Icon Title"
     
3. ʺADD

   \hHo{obܤ@ǰʺATɬ۷, p ϥΪ̩ҵnJDW,
   {檺u@ؿ, .
   
3.1 xterm ǦC

   @Ӥwb檺 xterm ιϥܪDDiHzLǦCܧ. UCC
   Xoӳ]wǦC:
     * ESC]0;stringBEL -- ]wϥܤεDD string
     * ESC]1;stringBEL -- ]wϥܦW string
     * ESC]2;stringBEL -- ]wDD string
       
   bo ESC O escape r (\033), BEL O bell r (\007).
   
   b xterm YNiHϱoιϥܪDDܧ.
   
   `N: oǧǦCiHΨj xterm lͪ{, p nxterm,
   color-xterm  rxvt. L ׺ݾjϥΤ@˪ǦC; ѦҪ
   C|d. pnѦ xterm ҦǦCѦҳoɮ [5]ctlseq2.txt,
   o|H xterm Mo,  [6]xterm.seq, H [7]rxvt Mo.
   
3.2 LXoǧǦC

   ǸTbROĶͩRgO۩lܲ׳ܪ, p DW  
   Ϊ̦W, bROĶlҰ (rc file)  echo OLXoǦr
   NF:
   
echo -n "\033]0;${USER}@${HOST}\007"

   ӷ|͹ username@hostname o˪DD, ]ROĶܼ $USER
    $HOST w]wT. echo һݪﶵ̩ROĶϥΪӦ
   P (ѦҤU).
   
   ǸTbROĶͩRgO@bܪ, p {u@ؿ, oǷ
   TNbCܦrܤƮHۧ. oUlrN|bCAJR
   Oɧs, ӥBA٥iHlܫOd {ؿ, ϥΪ̦W, DW, T. 
   ROĶѳoγ~S\, ǫhS. ӧڭ̴NJDD
   TDܦrꤤ. o|bU@`
   
4. UةROĶd

   HUڭ̴\@ǽdҵ`ROĶϥ. ڭ̥q zsh }l, LiH
   ѳ\hFϱoڭ̫ܮeaڭ̩ҭnu@. Mڭ̦Aii
   ׸d.
   
   bҦdҤڭ̳դF $TERM ܼ. HTwڭ̥uݧoӷT
   e xterm. ڭ̹ $TERM=xterm* ; UΦrO]ǳ\t (
   p rxvt) |]w $TERM=xterm-color.
   
   ڭ̭n C ROĶ (C Shell) ڨt@SO, p tcsh  csh. b
   C ROĶ, ϥΨ쥼wqܼƴNOPRʪ~. ], bܼ
   $TERM e, TwO_sb_h|ϦbDͼҦUu@ROĶ
   \. nFoӥتAⳡFΤUoؼ˦]_:
   
  if ($?TERM) then
      ...
  endif

   (ڭ̬ODi C ROĶ zѤ@. Ѧ [8]Csh Programming
   Considered Harmful ܦhΪQפ峹).
   
   HUdҥiHQΨӴJXAROĶlҰ; Y Ӧbͦ
   ROĶҰʮɷ|hŪ. bjpQ٬ .ROĶWrc
   (p .zshrc, .tcshrc, ).
   
4.1 zsh

   zsh ѳ\P\, ӧڭ̱NΨ:
   
precmd ()   @ӦbܩROe檺\t
chpwd ()    @ӦbؿܤƮɷ|檺\t
\e          r (ESC)
\a          bell r (BEL)
%n          Q $USERNAME
%m          QDW٦bĤ@ '.' e
%~          Qؿ, H '~' N $HOME

   h\: Ѧ zshmisc ϥΤU.
   
   ], HUN]w xterm DD "username@hostname: directory":
   
case $TERM in
    xterm*)
        precmd () {print -Pn "\e]0;%n@%m: %~\a"}
        ;;
esac

   o]iH chpwd() N precmd() ӹF. print تu@O echo @
   , iHڭ̥hs % ROܷT.
   
4.2 tcsh

   tcsh \tP\P zsh ۦP:
   
precmd ()   @ӦbܩROe檺\t
cwdcmd ()   @ӦbؿܤƮɷ|檺\t
%n          Q $USERNAME
%m          QDW
%~          Qؿ, H '~' N $HOME
%#          勵`ϥΪ̸ '>', ӶWŨϥΪ̫h '#'
%{...%}     ޤJ@Ӧrꬰs򪺷ǦC

   , èSP zsh  print ۦP\઺O, ڭ̦bDDrꤤϥ
   ܷT, ]ڭ̰ߤ@ϥΪROĶܼ (b ~/.tcshrc):
   
switch ($TERM)
    case "xterm*":
        alias precmd 'echo -n "\033]0;${HOST}:$cwd\007"'
        breaksw
endsw

   M, o|Υؿ㪺|Nϥ ~. oǦr괡JDܦr:
   
switch ($TERM)
    case "xterm*":
        set prompt="%{\033]0;%n@%m:%~\007%}tcsh%# "
        breaksw
    default:
        set prompt="tcsh%# "
        breaksw
endsw

   o|]w "tcsh% " ܦr,  xterm DDιϥܬ
   "username@hostname: directory". n`N "%{...%}" ¶bǦC~
   (BQb ܪ̫@: Ѧ tcsh ϥΤU|Բ).
   
4.3 bash

   bash 䴩ܼ $PROMPT_COMMAND t@ӫObܦre. oӽd
   N]wDD username@hostname: directory:
   
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'

   bo \033 ONr ESC,  \007 hO BEL.
   
   O޸bo۷n: |QܼƬOb "...", ӤO '...'. ]
   $PROMPT_COMMAND OQ]w@ӤQ, ܼƦb "..." ئpGΨ
   $PROMPT_COMMAND h|Q.
   
   M, $PWD ͧ㪺|. pGڭ̭nϥ ~ oسtO, hڭ̭nⷸr
   OJ촣ܦr, o|ڭ̥iHQΩROĶҴѪROC\:
   
\u          Q $USERNAME
\h          QDW٦bĤ@ '.' e
\w          Qؿ, H '~' N $HOME
\$          勵`ϥΪ̸ '>', ӶWŨϥΪ̫h '#'
\[...\]     OJDCLrǦC

   ], HUN bash$ ܦr, ó]w xterm DD
   username@hostname: directory:
   
case $TERM in
    xterm*)
        PS1="\[\033]0;\u@\h: \w\007\]bash\\$ "
        ;;
    *)
        PS1="bash\\$ "
        ;;
esac

   O \[...\] ϥ, bpDܪ׮, NiD bash DCLr
   . _hsON|bʴЮɷdñ.
   
4.4 ksh

   ksh XGѳoؤ覡\禡P\, ]ڭ̥Jr
   ܦr, ϥLʺAs oӽdұNͥDD username@hostname:
   directory and a prompt of ksh$ .
   
case $TERM in
    xterm*)
        HOST=`hostname`
        PS1='^[]0;${USER}@${HOST}: ${PWD}^Gksh$ '
        ;;
    *)
        PS1='ksh$ '
        ;;
esac

   , $PWD |ͧ㪺ؿ|. ڭ̥iH  ${...##...} 覡h
   $HOME/ r. ڭ̤]iH ${...%%...} kӺIh hostname:
   
HOST=`hostname`
HOST=${HOST%%.*}
PS1='^[]0;${USER}@${HOST}: ${PWD##${HOME}/}^Gksh$ '

   O ^[  ^G bROCrO@r  ESC  BEL (b emacs ҤUi
   H C-q ESC  C-q C-g J).
   
4.5 csh

   nb csh P˪ƯuIx, ӧڭ̥ΤU覡ӸѨMD:
   
switch ($TERM)
    case "xterm*":
        set host=`hostname`
        alias cd 'cd \!*; echo -n "^[]0;${user}@${host}: ${cwd}^Gcsh% "'
        breaksw
    default:
        set prompt='csh% '
        breaksw
endsw

   ·ЪaOڭ̭n cd oӫOƨieXrꪺ\. O ^[ 
   ^G bROCrO@r ESC  BEL (b emacs ҤUiH C-q
   ESC  C-q C-g J).
   
   O: bt hostname -s i|ou hostname ӤO㪺
   W. ϥΪ̦bŸsؿӷ|o{ `pwd` (A_ӥHTw檺O
   pwd O) iHo $cwd T|W.
   
5. ܥb檺u@W

   q`ϥΪ̷|Ұʤ@Ӥ@be檺u@p top,  @ӽs边, @
   email Τ, , çƱoӤu@WٳQܦb xterm DDW. oO
   ܴƤ⪺DBub zsh ҤUiHP.
   
5.1 zsh

   zsh oػݨDѤF@ӫܲzQإ\:
   
preexec()   @ӦbROe@w|sΪ\禡W
$*,$1,...   ǰe preexec() Ѽ

   ], ڭ̥iHΤU覡u@W٩DDW:
   
case $TERM in
    xterm*)
      preexec () {
        print -Pn "\e]0;$*\a"
      }
    ;;
esac

   O: preexec() \禡b zsh 3.1.2 X{, pGAΪ¨Nݭn
   s@U.
   
5.2 LROĶs

   䥦ʤ preexec() 禡ROĶ, NO²F. pGHd
   ҥiHP˪u@Ч⥦ email @.
   
6. : 䥦׺ݾǦC

   \hs׺ݾlͦ xterm  rxvt åB䴩ڭ̩ҨϥΪǦC. Y
   ǱMQ׺ݾHۦUؤP unix ch|ϥΥL̦rqǦC.
   
6.1 IBM aixterm

   aixterm iHѥX xterm ǦC.
   
6.2 SGI wsh, xwsh  winterm

   o׺ݾ|]w $TERM=iris-ansi ñĥΤUCǦC:
     * ESCP1.ystringESC\ ]wDD string
     * ESCP3.ystringESC\ ]wϥܥDD string
       
    xwsh 㪺ǦCiHѦ xwsh(1G) ϥλ.
   
   Irix ׺ݾ䴩 xterm UO]wPϥܥDD\, ̳]
   w.
   
6.3 Sun cmdtool  shelltool

   cmdtool  shelltool |]w $TERM=sun-cmd ñĥΤUCǦC:
     * ESC]lstringESC\ ]wDD string
     * ESC]LstringESC\ ]wϥܥDD string
       
   oǯuOܥiȪ{: ɶqOϥ.
   
6.4 CDE dtterm

   dtterm |]w $TERM=dtterm, GOiHѧOXзǪ xterm ǦC
   Sun cmdtool ǦC (b Solaris 2.5.1, Digital Unix 4.0, HP-UX
   10.20 չL).
   
6.5 HPterm

   hpterm |]w $TERM=hpterm ñĥΤUCǦC:
     * ESC&f0klengthDstring ]wDD length  string
     * ESC&f-1klengthDstring ]wϥܥDD length  string
       
   @²檺 C y{Ψӭpרæ^r, pU:
   
#include <string.h>
int main(int argc, char *argv[])
{
    printf("\033&f0k%dD%s", strlen(argv[1]), argv[1]);
    printf("\033&f-1k%dD%s", strlen(argv[1]), argv[1]);
    return(0);
}

   ڭ̤]iHg@ӤpRO}{,  ${#string} (zsh, bash, ksh) 
   ${%string} (tcsh) \ӧXr. HUiΦb zsh:
   
case $TERM in
    hpterm)
        str="\e]0;%n@%m: %~\a"
        precmd () {print -Pn "\e&f0k${#str}D${str}"}
        precmd () {print -Pn "\e&f-1k${#str}D${str}"}
        ;;
esac

7. : 䥦yd

   g@Ӥp{Q xterm \ǻѼƷDD. HUO@ǽd.
   
7.1 C

#include <stdio.h>

int main (int argc, char *argv[]) {
  printf("%c]0;%s%c", '\033', argv[1], '\007');
  return(0);
}

7.2 Perl

#!/usr/bin/perl
print "\033]0;@ARGV\007";

8. Credits

   P¤UCѦ촣ѫĳ, ץ, νdҬW⤣.
   
   Paul D. Smith <psmith@BayNetworks.COM>  Christophe Martin
   <cmartin@ipnl.in2p3.fr> Xb bash $PROMPT_COMMAND ڤޭz~
   . Tkܤ O ʺAi}.
   
   Paul D. Smith <psmith@BayNetworks.COM> ĳb bash ϥ \[...\] H
   Xܪr.
   
   Christophe Martin <cmartin@ipnl.in2p3.fr>  ksh ѨMk.
   
   Keith Turner <keith@silvaco.com> ѵ Sun  cmdtool  shelltool 
   ΪǦC.
   
   Jean-Albert Ferrez <ferrez@dma.epfl.ch> Xb "PWD"  "$PWD" ۥ٬ޤ
   B,  "\" P "\\" Ϊk.
   
   Bob Ellison <papillo@hpellis.fc.hp.com>  Jim Searle
   <jims@broadcom.com> զb HP-UX U dtterm.
   
   Teng-Fong Seak <seak@drfc.cad.cea.fr> ĳ -s ﶵH hostname, ϥ
   `pwd`, H b csh Uϥ echo .
   
   Trilia <trilia@nmia.com> ĳ[JLyΪk.
   
   Brian Miller <bmiller@telstra.com.au> [J hpterm ǦCPd.
   
   Lenny Mastrototaro <lenny@click3x.com>  Irix ׺ݾҤU, pϥ
   xterm ǦC.
   
   Paolo Supino <paolo@init.co.il> ĳb bash ROCDܤUĥ \\$.

References

   1. mailto:yytseng@ms16.hinet.net
   2. http://sunsite.unc.edu/LDP/HOWTO/
   3. http://sunsite.unc.edu/LDP/HOWTO/mini/Xterm-Title.html
   4. http://www.giccs.georgetown.edu/~ric/howto/Xterm-Title/
   5. http://www.giccs.georgetown.edu/~ric/howto/Xterm-Title/ctlseq2.txt
   6. http://www.giccs.georgetown.edu/~ric/howto/Xterm-Title/xterm.seq
   7. http://www.rxvt.org/
   8. http://language.perl.com/versus/csh.whynot
