  Xterm-Title mini-HOWTO
  Winfried Trper,winni@xpilot.org
  Version 1.3   22 Oct 1996
  Tetsu Isaji, isaji@mxu.meshnet.or.jp
  18 Dec 1997

  このmini-HOWTOはxtermのタイトルバー表示をエスケープシーケンスで制御す
  るためのドキュメントです。 [訳注："``関連情報''"章にはそれ以外にウィン
  ドウマネージャやターミナルエミュレータの装飾についての情報を追加しまし
  た。]
  ______________________________________________________________________

  目次

  1. はじめに
  2. エスケープシーケンス
  3. タイトルの表示
  4. プロンプトの表示
  5. その他
     5.1 CREDITS:
     5.2 補追１：
     5.3 補追２：

  6. 関連情報

  ______________________________________________________________________

  1.  はじめに

  「この文書っておもしろいの？」と思う人が多いかもしれません。xtermのタ
  イトルバーに適当な文字列を入れたいなら

       xterm -T "Rent this place for your advertisement" \
       -n "The name of the icon could be yours, too" &

  とすれば良いだけです。 OK、そのとおりです。でも起動時以外に文字列を変
  えたいこともあるかもしれないでしょう...

  2.  エスケープシーケンス

  xtermが起動している時にタイトルを変更するには、特殊キャラクターを
  xtermに送ればよいのです。そのような特殊キャラクターは「エスケープシー
  ケンス」と名付けられています。これらは画面上に表示されませんがなんらか
  のアクションを生じさせます。

  例えば、<ctrl-v> <Esc> <c> <Enter>と押せば画面はリセットされます(画面
  の消去)。<ctrl-v>と<enter>は実際のシーケンス<esc> <c>を画面上に表示さ
  せるために必要です。ここでキーストロークは<>で区切っていることに注意し
  て下さい。<> は入力する必要はありません。

  3.  タイトルの表示

  xtermのタイトルバーとアイコンを変更するにはつぎのエスケープシーケンス
  を使います

  <esc> <]> <2> <;> 新しいタイトルをセット

  <esc> <]> <1> <;> 新しいアイコン名をセット(注：アイコン化された時の名前)

  xtermにこれらのシーケンスを送るために、プログラム"echo" を使えば、もう
  コマンドラインで入力する必要はなくなります。

       echo -e "\033]2; You can rent this place for a commercial. \007"

  ここでお気づきになったと思いますが、`\033'はエスケープシーケンスの8進
  数表示で、'-e'でこの表現を指定できるようにしています。タイトルに表示し
  たい文字列の最後は<ctrl-g>で終わらせる必要があります(<ctrl-g>は「ラブ
  りーな」 beep 音を発生させるキーです)。

  4.  プロンプトの表示

  この特徴を生かした便利な使い方をひとつ。通常のコマンドプロンプトに表示
  される情報を、xtermのタイトルに移動させる方法があります。以下のように
  変数を定義すると

       export PS1='\u@\h:\w> '

  この結果、次のように表示されます。

       winni@FeilSurf:~/mail>

  もしディレクトリを"/afs/rrz.uni-koeln.de/pub/packages/linux
  /kernel/v2.0"に変更したらどうなるでしょうか？プロンプトは長くなりコマ
  ンドの入力をする場所が狭くなってしまいます。

       winni@FeilSurf:/afs/rrz.uni-koeln.de/pub/packages/linux/kernel/v2.0>

  これは繁雑です。しかしタイトルバーにこの情報を置いてしまえば全て解決し
  ます。

       export PS1='\033]2; \u@\h:\w \007bash> '

  上記コマンドで必要なエスケープシーケンスをエコーし、プロンプト

       bash> _

  のみ表示させます。残念なことにPS1の最大の長さは60文字程度という制限が
  あるので全ての場合でこれがうまくいくわけではありません。他のアイディア
  は "cd"といったシェル内蔵のものをechoエスケープシーケンスに再定義する
  こですが、これだとシェルスクリプトを実行した時タイトルバーのその他の影
  響が生じてしまいやっかいです(どの"cd"でもタイトルを変更してしまいま
  す)。もっとも確かなアプローチは環境変数"PROMPT_COMMAND"を使うことのよ
  うです。この変数の中身はプログラムが終了した後とbashプロンプトが再び表
  示される前に実行されるというものです。以下のようにすればネットワーク環
  境でxtermをたくさん開く時など便利です。

  export PROMPT_COMMAND='echo -ne "\033]2;$LOGNAME@$HOST     Directory: \
  $PWD\007\033]1;$LOGNAME@$HOST\007"

  特にウィンドウマネージャーのウィンドウリストを見る時など便利でしょう。
  さらにこれらを以下のようなスクリプトに書いておけば完璧です。xtermを
  使っている時にこの環境変数をセットするだけです。

  ______________________________________________________________________
  if [ "$TERM" = "xterm" -o "$TERM" = "xterm-color" -o \
  "$TERM" = "rxvt"  -o "$TERM" = "vs100" ]
  then
  PS1='bash> '
  PS2='bash>> '
  PS3='bash>>> '
  export PROMPT_COMMAND='echo -ne "\033]2;$LOGNAME@$HOST    \
  Directory: $PWD\007\033]1;$LOGNAME@$HOST\007"'
  fi
  ______________________________________________________________________

  プロンプト"bash>"は、多くのプログラム(gnuplot,ncftp, gap, kash, ...)が
  プログラム名をはじめに置いているので、同じように統一しました。しかしこ
  れでも"ytalk"のようなサブシェルを起動するプログラムでは乱れてしまうと
  いう障害があります。もしこれに出くわしたら

       unset PROMPT_COMMAND

  として下さい。

  Happy Linuxing

  -Winfried Trumper winni@xpilot.org

  5.  その他

  5.1.  CREDITS:

  Ville Voutilainen <vvoutila@raita.oulu.fi>

  Noticed the ;s are missing from the escape-sequences in the "first
  half" of the document(ドキュメント前半部でエスケープシーケンスからセミ
  コロンが落ちていたので注意して下さい)。

  5.2.  補追１：

  どのようなプログラムを作るときでもエスケープシーケンスを直接使わないよ
  うにして下さい。プログラム"tput"を使って、環境変数$TERM と実行させたい
  アクションに対応したシンボリックな記法(訳注：該当するアクションに関す
  る変数))から適切なシーケンスを選ぶようにして下さい。詳細はtput(1) を参
  照して下さい(コマンドプロンプトで"man 1 tput"として参照できます)。(訳
  注tput：ターミナルの初期化やterminfoデータベースの問い(query))

  5.3.  補追２：

  「エスケープシーケンス」について知りたい時は"rxvt"のソースを参照してみ
  て下さい。エスケープシーケンスについて"xterm.seq"というファイル
  が"doc/"ディレクトリにあります。

  以上ここまでが原文。

  6.  関連情報

  o  "Linux Japan"Vol.3 p.198 xtermタイトルバーについての記事。

  o  ラスターマン氏のホームページ

     Rastemann HOMEPAGE  : highlightment, xdm, rxvt-xpmなどウィンドウマ
     ネージャやターミナルエミュレータの見栄えをよくするプログラム、設定
     などについての情報があります。以下、
     <http://www.cse.unsw.edu.au/~s2154962/linux.html>

  o  ターミナルエミュレータrxvtの背景にイメージファイルを貼り付ける。

             rxvt-xpm:
             ソース：rxvt-2.19.3.XPM.tar.gz
                     src/Makefileに"-DKANJI"オプションを書き込んでコンパイルすれば
                     日本語の表示もできるようになります(kxvtあるいはpxvtとリネーム
                     します)。kinput2 protocolを実装していないので、kinput2による
                     入力はできません。また日本語表示も不完全なようです。
             実行例：rxvt -pixmap /home/user/rosamexl.xpm &

  o  XDMの見栄えをよくする。

             ソース：xdm_setup_files.tar.gz
             実行例：上記ページを参照
             関連："Linux" Japan Vol.3 p.120   XBanner + xdm

  o  ハイライトメント：

     ヴィンドウマネージャの見栄えを良くします(フレーム枠なども)。
     FVWM-XPM、ppmtile(背景に貼り付けるイメージの処理)。

  o  その他：

     ppm2ansi.tar.gz 、xflame.tar.gz、xripple.tar.gzなど。

  [ 訳者 ： 伊佐治  哲  isaji@mxu.meshnet.or.jp

  校正 ： 中野さん NAKANO Takeo nakano@apm.seikei.ac.jp ]

