torutkのブログ

ソフトウェア・エンジニアのブログ

Cygwinウィンドウタイトルバーの文字列設定

今さらながら、Cygwinウィンドウタイトルバーの文字列設定を調べました。
Linuxマシン、Solarisマシン、VMware上のSolaris仮想マシンWindows XPマシンと4つの環境をそれぞれCygwinコマンド環境で利用するので、ターミナル(主にckを使用)が10個前後上がっています。WindowsXPのタスクバーには、ウィンドウタイトルバーの文字列が表示されるので、デフォルトではすべてckと表示されます。ここにログインしているマシン名を表示出来ればと思い調査しました。

  1. PS1環境変数で設定
  2. PROMPT_COMMAND環境変数で設定

の2つの方法がとりあえず見つかりました。1.の方法はタイトルバーとコマンドプロンプトの両方を1つの文字列で定義するので、設定内容がわかりにくくなってしまうため、2.の方法を使うことにしました。

# .bashrc
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}\007"'
PS1='\W$ '

PROMPT_COMMANDは、bashがプロンプトを表示する前に実行するコマンドを定義します。

この設定を各マシンのログイン環境に置いておけば、SSHでログインした際にCygwin(ck)ウィンドウのタイトルバーに“ユーザ名@ホスト名:カレントディレクトリ"が表示されるようになります。