3270端末エミュレータをカラー表示にする。
TeraTermでTERM=vt220にしてc3270端末エミュレータを起動すると、黒背景に黄色文字でメインフレームっぽくないです。
画面をカラー表示するために、terminfoデータベースのエントリのxtermを使います。
単純にexport TERM=xtermだけでもc3270端末エミュレータはカラーになるのですが、このままだと、HomeキーとEndキーが使えません。
TeraTermはvt220キーシーケンスを送りますので、HomeキーはFindキー、EndキーはSelectキーと読み替える必要があります。
ですので、xtermでHomeキーとEndキーを使えるようにするためにカスタマイズして、xterm-myというエントリをterminfoデータベースに作りたいと思います。
「infocmp」コマンドでterminfoデータベースのエントリの vt220をテキストファイル化して、FindキーとSelectキーらしきところを探します。
[hercules@localhost ~]$ pwd
/home/hercules
[hercules@localhost ~]$ infocmp vt220
[hercules@localhost ~]$ infocmp vt220
# Reconstructed via infocmp from file: /usr/share/terminfo/v/vt220
vt220|vt200|dec vt220,
am, mc5i, mir, msgr, xenl, xon,
cols#80, it#8, lines#24, vt#3,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I, hts=\EH,
ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
il=\E[%p1%dL, il1=\E[L, ind=\ED,
is2=\E[?7h\E[>\E[?1h\E F\E[?4l, kbs=^H, kcub1=\E[D,
kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf10=\E[21~,
kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[i, mc4=\E[4i,
mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m,
rmul=\E[24m, rs1=\E[?3l, sc=\E7,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
sgr0=\E[m\E(B, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
smso=\E[7m, smul=\E[4m, tbc=\E[3g,
つぎのような記述があると思います。これが、Homeキー(vt220的にはFindキー)、Endキー(vt220的にはSelectキー)に該当します。
kfnd=\E[1~ ---> Findキー、つまりHomeキー
kslt=\E[4~ ---> Selectキー、つまりSelectキー
terminfoデータベースのエントリのxtermにkfndやksltがあるか調べます。
無いはずです。
[hercules@localhost ~]$ infocmp xterm | grep kfnd
[hercules@localhost ~]$ infocmp xterm | grep kslt
terminfoデータベースのエントリのxtermをカスタマイズします。
ファンクションキーの一行前に「kfnd=\E[1~, kslt=\E[4~,」を追記します。
[hercules@localhost ~]$ infocmp xterm > xterm_org.src
[hercules@localhost ~]$ cp xterm_org.src xterm_my.src
[hercules@localhost ~]$ vi xterm_my.src
kdch1=\E[3~, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~,
kfnd=\E[1~, kslt=\E[4~,
kf11=\E[23~, kf12=\E[24~, kf13=\E[1;2P, kf14=\E[1;2Q,
[hercules@localhost ~]$ diff xterm_org.src xterm_my.src
2c2
< xterm|xterm terminal emulator (X Window System),
---
> xterm_my|My_xterm terminal emulator (X Window System),
20a21
> kfnd=\E[1~, kslt=\E[4~,
「tic」コマンドでterminfoデータベースに「xterm_my」を登録します。
$ su [sudo可能なユーザ]
$ sudo tic xterm_my.src
環境変数を「xterm_my」にしてHercules&MVSを起動してc3270で接続していみます。
[hercules@localhost ~]$ vi .bashrc
export TERM=xterm_my
冒頭のカラー表示になります。