2009/03/21 (Sat)
mintty-0.3.8
Cygwin |
mintty の色が見づらいと嘆いていたら、mintty 端末中で ANSI カラーが変えられるようになったらしい。Setting ANSI Colors - MinTTY Discussion | Google グループが発端。
16 進の文字がそれぞれ ANSI カラーに対応していて、echo -e "¥e]4;a;#ff00ff¥a" などとすると変えられるそう。0-7 がそれぞれ black, red, green, yellow, blue, cyan, magenda, white で、8-f がその太字。
#!/bin/sh ESC="\e]4;" echo -e \ "${ESC}0;#000000\a" \ "${ESC}1;#ff0000\a" \ "${ESC}2;#00ff00\a" \ "${ESC}3;#ffff00\a" \ "${ESC}4;#0000ff\a" \ "${ESC}5;#ff00ff\a" \ "${ESC}6;#00ffff\a" \ "${ESC}7;#bbbbbb\a" \ "${ESC}8;#666666\a" \ "${ESC}9;#ff9999\a" \ "${ESC}a;#99ff99\a" \ "${ESC}b;#ffff99\a" \ "${ESC}c;#9999ff\a" \ "${ESC}d;#ff99ff\a" \ "${ESC}e;#99ffff\a" \ "${ESC}f;#ffffff\a"
でも screen が動いている端末上だと何も変わらず、screen を実行する前に mintty 端末で実行させないとならないらしい。上のスクリプトに exec screen -R -U などと追加して、例えば /bin/mintty_ansi.sh に置いて mintty sh /bin/mintty_ansi.sh とすると screen 上でも色が変わった。けど、もっとスマートな方法ないのかな。