ck terminal emulator ver3

特徴

cygwinを利用した端末ソフト。
リアルタイム文字コード自動判別で、JIS, SJIS, EUCJP, UTF8を混在表示できる。
ダウンロード
バイナリ ck-3.2.1-bin.zip
ソースコードck-3.2.1-src.zip

ライセンスGPL (GNU General public license)
動作環境Windows XP SP2 / Windows Vista / cygwin-1.5.24-2 / SSE2に対応したCPU

Windows95/NT/2000、Pentium3/AthlonXPなど、動作しません
Windowsコンソール(DOS窓)エミュレータではないので、Windowsコンソール用のアプリは動きません

2007/09/19 文字幅の取得方法を変更。
デフォルト ja_JP.ShiftJISに変更。
インストール
  1. ck.exe, ck.con.exe ck.app.dll の3つを /bin ( cygwin1.dllのあるディレクトリ、C:\cygwin\bin )にコピーする。
  2. .ck.config.js ファイルを ユーザーのHOMEディレクトリ(/etc/passwd に書かれてる)にコピーする。
  3. /bin/ck.exe へのショートカットをデスクトップに作成して、プロパティを開き ”作業フォルダ”にHOMEディレクトリを設定。
    リンク先: C:\cygwin\bin\ck.exe
    作業フォルダ: C:\cygwin\home\<username>
これでショートカットをダブルクリックすると起動します。
設定
$HOME/.ck.config.js を編集して、ckを起動すると反映されます。
中身は javascript です。 文法など間違っていると起動しない、かも。。

Config.tty.execute_command実行するシェルコマンド。"/bin/bash --login -i"
Config.tty.titleタイトルバーに表示する初期タイトル
Config.tty.savelines保持する履歴行数
Config.tty.input_encoding入力に用いる文字コード。Encoding.SJIS / Encoding.EUCJP / Encoding.UTF8のどれか
Config.tty.display_encoding表示に用いる文字コード。Encoding.SJIS / Encoding.EUCJP / Encoding.UTF8のどれか, または | (or) で複数指定
Config.tty.scroll_keyキー入力された時、最下行にスクロールする on/off
Config.tty.scroll_output表示出力があった時、最下行にスクロールする on/off
Config.tty.bs_as_delBackspaceキー(0x08)を delete(0x7F)にする on/off
Config.tty.use_bell警告音を鳴らす on/off
Config.tty.cjk_width半角全角の判定基準を切り替え on/off
Config.accelkey.new_shell ショートカットキー。新しいシェルを開く
Config.accelkey.new_window ショートカットキー。新しいウィンドウで新しいシェルを開く
Config.accelkey.open_window ショートカットキー。新しいウィンドウを開く
Config.accelkey.close_windowショートカットキー。ウィンドウを閉じる
Config.accelkey.next_shell ショートカットキー。次のシェルに表示切り替え
Config.accelkey.prev_shell ショートカットキー。前のシェルに表示切り替え
Config.accelkey.paste ショートカットキー。クリップボードからペースト
Config.accelkey.popup_menu ショートカットキー。メニューを開く
Config.accelkey.popup_sys_menuショートカットキー。ウィンドウ操作等のシステムメニューを開く
Config.accelkey.scroll_page_up ショートカットキー。1ページ上スクロール
Config.accelkey.scroll_page_downショートカットキー。1ページ下スクロール
Config.accelkey.scroll_line_up ショートカットキー。1行上スクロール
Config.accelkey.scroll_line_downショートカットキー。1行下スクロール
Config.accelkey.scroll_top ショートカットキー。最上行へスクロール
Config.accelkey.scroll_bottomショートカットキー。最下行へスクロール
Config.window.position_x
Config.window.position_y
ウィンドウの位置。+値で左(上)から右(下)へ。−値で右(下)から左(上)へのpixel数。nullで未設定になる。
Config.window.cols
Config.window.rows
ウィンドウの大きさ。文字数
Config.window.scrollbar_showスクロールバーを表示する on/off
Config.window.scrollbar_rightスクロールバーを右側に表示 on/off
Config.window.blink_cursorカーソルを点滅する on/off
Config.window.transparentウィンドウの半透明モード。Windows Vistaのみ
WinTransp.None不透明
WinTransp.Transp半透明
WinTransp.Grassガラス効果、枠あり
WinTransp.GrassNoEdgeガラス効果、枠なし
Config.window.zorderウィンドウのZ位置。
WinZOrder.Normal通常
WinZOrder.Top前面に固定
WinZOrder.Bottom背面に固定
Config.window.linespace行間に空けるpixel数
Config.window.border_left
Config.window.border_top
Config.window.border_right
Config.window.border_bottom
ウィンドウ周囲に空けるpixel数
Config.window.mouse_left
Config.window.mouse_middle
Config.window.mouse_right
マウスクリックした時の挙動。 左クリック、右クリックと 中クリック(ホイールクリック)
MouseCmd.None何もしない
MouseCmd.Select文字選択する
MouseCmd.Pasteクリップボードからペースト
MouseCmd.Menuメニューを表示
Config.window.font_nameフォント名
Config.window.font_sizeフォントサイズ
Config.window.background_file背景に貼るbmp/jpg/png等の画像ファイル。cygwinフルパスで指定(HomeDir+"/hoge.bmp" とか)
Config.window.background_repeat_x
Config.window.background_repeat_y
背景画像の表示方法。
Place.Scaleウィンドウに合わせ拡大縮小
Place.Zoom縦横比を維持して、拡大縮小
Place.Repeat並べて表示
Place.NoRepeat1つだけ表示
余白部分は画像の周囲1ピクセルが引き伸ばされます。
Config.window.background_align_x
Config.window.background_align_y
背景画像の配置。
Align.Near左/上
Align.Center中央
Align.Far右/下
Config.window.alpha_text_border文字周囲に加算する透明度(アルファ)。0x00 ~ 0xFF (0x00だと縁取りしないので少し動作が軽くなる)
Config.window.alpha_back_colorN文字背景の透明度(アルファ)。0x00 ~ 0xFF
Config.window.color_foreground文字色。0xRRGGBB 24bitで指定。
Config.window.color_background背景色。アルファ付き 0xAARRGGBB 32bitで指定
Config.window.color_selection 選択色。アルファ付き 0xAARRGGBB 32bitで指定
Config.window.color_cursor カーソル色。0xRRGGBB 24bitで指定。
Config.window.color_imecursor IME入力時のカーソル色。0xRRGGBB 24bitで指定。
Config.window.color_color0
...
Config.window.color_color15
color0 ~ color15
0xRRGGBB 24bitで指定。

コマンドライン引数
-fg文字色
-bg背景色
-crカーソル色
-bgbmp背景画像
-fnフォント名
-fsフォントサイズ
-lspline space 行間
-slsavelines 履歴行数
-/+sbスクロールバー表示・非表示
-/+siscroll output
-/+skscroll key
-/+bsbs as del
-/+cjkcjk width
-kminput_encoding (sjis,eucjp,utf8 のどれか)
-mddisplay_encoding (sjis,eucjp,utf8 カンマ区切りで複数指定可)
-titleタイトル
-g80x24+0+0 のような ウィンドウの大きさと位置の指定。
-f読み込むスクリプト(.ck.config.js)ファイルを指定。
-e実行するシェルコマンドを指定。

explorer等から ck.exeを実行したときは、通常通り 新しいプロセスで実行されます。

ckの中のbash等から ck.exeを実行した場合は、親ckにコマンドが渡され実行されます。(New Shell in New Window に似た挙動になる)
$ ck -title SSH -e ssh hostname
とかやると便利?
その他
ある程度 javascriptで書かれているので、.ck.config.js にあれこれ追記するとカスタマイズできます。
但し、ck側の仕様変更で動かなくなる場合もあります。

ESCでime off
function user_cmd_ime_off(window){
	if(window.ImeState)
		window.ImeState = false;
	return false;
}
AccelKeys.add(Keys.Escape, user_cmd_ime_off);

tcshを起動
function user_cmd_new_tcsh(window){
	var bak = Config.tty.execute_command;
	Config.tty.execute_command = "/bin/tcsh";
	Commands.wnd_new_shell(window);
	Config.tty.execute_command = bak;
	return true;
}
AccelKeys.add(Keys.ShiftL | Keys.CtrlL | Keys.B, user_cmd_new_tcsh, "New tcsh");