使い方
基本は xterm, rxvtなどと同じ。
起動される子プログラムは、以下の順で決まります。
  1. 引数 -e ... で指定されたEXE
  2. 環境変数 SHELLで指定されたシェル
  3. /etc/passwdで指定されたシェル
「New Shell」などで起動する2つ目以降は、環境変数と /etc/passwdで決まります。

実行方法
  1. ck.exeを /binにコピーする(cygwin1.dllと同じフォルダに)
  2. /bin/ckstartup.js ファイルを作り、以下の内容を書いて保存する。
    var shell = new ActiveXObject("WScript.Shell");
    var env = shell.Environment("Process");

    env("SHELL") = "/bin/bash";
    env("LANG")  = "ja_JP.eucJP";

    shell.Run("bash.exe --login -c ck.exe", 0, false);
  3. /bin/ckstartup.js ファイルのショートカットを作る。
  4. 作ったショートカットの右クリックメニューから「プロパティ」を開く。
  5. 「リンク先」を書き換える。
    wscript.exe ckstartup.js
  6. ショートカットから実行する。

注意
  • 従来の方法、"ck.exe -e bash.exe --login" は、ck本体の環境設定が行われないので使えません。

  • WSH (JScript) を使っているのは、DOS窓を表示させない為 だけです。
    バッチファイルや /usr/X11R6/bin/run.exeなど 他の手段でも構いません。

  • 起動を速くしたい場合は、環境設定を bash --login に任せず、自前で行ってください。
    ログインシェルから ck.exeを起動させている理由は、
    bashが /etc/profileを読み込み、諸々の環境設定を行ってくれるためです。
    /etc/profileで行われている環境設定と同等のことを 自前で行えば
    bash --login から ck.exeを起動する必要はありません。 → 起動が速くなる

操作
左クリック選択解除
左ドラッグ選択 (クリップボードへコピー)
左ダブルクリック単語選択 (クリップボードへコピー)
左トリプルクリック行選択 (クリップボードへコピー)
中クリッククリップボードからペースト
右クリックメニュー
ファイルなどをドロップ エクスプローラなどからファイルをドラッグドロップすると
ファイルパスが入力されます。

マウス左ボタンでドロップすると windowsパス、
マウス右ボタンでドロップすると cygwinパスになります。
(オプション swapDropPathで反転)
右クリック メニュー
New Shell 新しいシェルを起動する
New Shell in New Window 新しいウィンドウを開き、新しいシェルを起動する
Open Window 新しいウィンドウを開く(空いてるバッファがあれば)
Close Window ウィンドウを閉じる
Input Shift_JIS 入力文字コードの指定。 どれか1つが有効になります。
Input EUC-JP
Input UTF-8
Output Shift_JIS 表示する文字コードを指定する。
複数チェックしておくと自動判別して表示します。
自動判別がうまく機能しない場合は、
チェックを1つにして文字コードを固定してください。
Output EUC-JP
Output UTF-8
Tty Options
Scroll Tty Keypress キー入力すると 最下行へスクロールを戻す
Scroll Tty Output 何か表示が更新されると 最下行へスクロールを戻す
Reverse Video 画面全体の表示色(foreground, background)を反転する
BS as DEL backspaceキー(0x08)をdelete(0x7F)にする
Cjk Width 半角全角の判定基準を切り替えます
Window Options
Change Window Style 現在のウィンドウを スキンモードと通常モードで切り替える (useSkin)
Z-order Normal ウィンドウ配置を標準にする
Z-order Top ウィンドウを最前面に固定する
Z-order Bottom ウィンドウを最背面に固定する
Font 0 ~ 3 表示フォントを変更する
Copy 左クリックした位置から 右クリックしてメニューを出した位置まで、
を選択(クリップボードへコピー)します。
Reset スクリーンバッファをリセットします。
(文字色その他をデフォルトに)
About バージョン情報
  • 幾つかの機能には 標準でショートカットキーが割り当てられています。

  • 複数のシェルを起動している場合は、各シェルのタイトル一覧がメニューに追加され、
    ウィンドウに表示するシェルを切り替えられます。

  • 1つのシェル(スクリーンバッファ)は 同時に複数のウィンドウで表示できません。
    どのウィンドウでも表示されてないスクリーンバッファは、フリーとなり
    全てのウィンドウで表示切り替え可能な状態になります。

  • 複数ウィンドウを開いていて、 シェルを終了せずにウィンドウを閉じた場合 シェルは残り続け、
    他のウィンドウで再表示できる状態になります。

  • 複数のシェルが残っていて 最後のウィンドウを閉じようとしたときは
    警告ダイアログが表示されます。
引数オプションと設定ファイル

ck.exe --help で実行すると、オプション一覧と、
.Xdefaults読み込み後の各オプションの状態が表示されます。
(ck -help は short optionのみ表示)

起動時に読み込む初期設定ファイルは ~/.Xdefaults です。
書式は クラス名 * オプション名 : 値 という感じ。
デフォルトのクラス名は Ckです。
クラス名を省くと全てのクラスに(ck以外のアプリも)影響します。

~/.Xdefaults のサンプル
*foreground: white
*background: midnightblue
Ck*font : MS ゴシック
Ck*fontSize : 14

Ck*useSkin : on
Ck*skinBitmap : /home/username/.ck/abc.txt

Cko*useSkin : off
Cko*backgroundBitmap : /home/username/.ck/bar.bmp
クラス名は -classオプションで変更可、プリセット的に切り替えて使えます。
ck.exe -class Ck
ck.exe -class Cko
とそれぞれ起動するとスキンモードが変化します。

他、細かい仕様
  • short optionは 起動時のコマンドライン引数に。
    long optionは コマンドライン引数と 設定ファイル ~/.Xdefaultsで使用します。

  • short optionで、かつon/offフラグのものは、 - で on に + で off になります。
    例)-sh で on、+sh で off
    long option の場合 -scrollHide on のように指定。

  • 色は white、black、redのような名前か #4C0 、#40C040 のように数値で書く。
    名前で指定できる色

  • Output文字コードのように列挙するときはカンマ区切りで指定
    Ck*multichar_mixdisp: sjis,eucj,utf8

  • ショートカットキーもカンマ区切り。shift,ctrl,altキーは左右を区別できます。

    左右shift + F10でメニューを開きたい場合、
    Ck*accelKey_popupMenu: shift,F10

    左shift + 左ctrl + N で 新規シェルを開く場合、
    Ck*accelKey_newShell: shiftL,ctrlL,N

    キー名が定義されてないものは直接数値でキーコードを指定することもできます。
    詳細は 名前で指定できるキー を。
オプション一覧
shortlong option, .Xdefaults説明
-fnfont フォント名
font1
font2
font3
-fsfontSize フォントサイズ
fontSize1
fontSize2
fontSize3
-lslineSpace 行間にあけるスペース pixel数(フォントと連動します)
lineSpace1
lineSpace2
lineSpace3
-binternalBorder ウィンドウ周囲にあけるスペース pixel数(フォントと連動します)

Ck*internalBorder: 3
と1つだけ指定した場合は、上下左右とも 3pixel空きます。

Ck*internalBorder: 1,2,3,4
と4つ指定した場合は、
top= 1pixel
right= 2pixel
bottom= 3pixel
left= 4pixel
となり、上下左右ばらばらに指定できます。
internalBorder1
internalBorder2
internalBorder3
color0
color1
color2
color3
color4
color5
color6
color7
color8
color9
color10
color11
color12
color13
color14
color15
パレット色
-fgforeground 標準の文字色
-bgbackground 標準の背景色
-crcursorColor カーソル色
-cricursorImeColor IMEオンのときのカーソル色
-scselectColor 左ドラッグで選択したときの背景色
colorBDMode
colorBD
太字の文字色と on/off
colorULMode
colorUL
下線文字の文字色と on/off
colorRVMode
colorRV
反転文字の文字色と on/off
-/+shscrollHide スクロールバーを隠す on/off
-/+srscrollRight スクロールバーをウィンドウの右側にする on/off
-kmmultichar_encoding 入力文字コードの指定(sjis, eucj, utf8のどれか)
-mdmultichar_mixdisp 表示文字コードの指定(sjis,eucj,utf8)
useBell 警告音を鳴らす on/off
コントロールパネル -> サウンド設定で offにしてると鳴りません
swapDropPath ファイルドロップ時の左右ボタン、windows, cygwinパスを反転。 on/off
-slsaveLines 履歴として保持する行数
scrollLines ショートカットキーでスクロールする行数
scrollLinesWheel マウスホイールでスクロールする行数
-/+siscrollTtyOutput 何か表示が更新されると 最下行へスクロールを戻す on/off
-/+skscrollTtyKeypress キー入力すると 最下行へスクロールを戻す on/off
-/+bsbsAsDel backspaceキー(0x08)をdelete(0x7F)にする on/off
-/+cjkcjkWidth 半角全角の判定基準を切り替え on/off
-/+rvreverseVideo 画面全体の表示色を反転 on/off
-/+skinuseSkin スキンモードでウィンドウを開く on/off
-tfntitleFont スキンモードでの タイトルバー用フォント名
-tfstitleFontSize スキンモードでの タイトルバー用フォントサイズ
-tfgtitleForeground スキンモードでの タイトルバー用文字色(ウィンドウアクティブ)
-tbgtitleBackground スキンモードでの タイトルバー用文字色(ウィンドウ非アクティブ)
-zowindowZorder ウィンドウの優先度(normal, top, bottomのどれか)
-bgbmpbackgroundBitmap 通常ウィンドウの背景に貼るbmp画像ファイル
-skinbmpskinBitmap スキンモードのウィンドウに使用するスキンtxtファイル
-ggeometry ウィンドウを開く位置と スクリーンの大きさ。
幅 x 高さ + 位置X + 位置Y で指定する。
位置は+で画面左上から−で画面右下からの pixel数。
例)100x50 のサイズで画面左上に開きたいとき -g 100x50-0+0
-title タイトルバーに表示する文字列
-/+iconic 最小化状態で起動
-class .Xdefaultsを読み込むときのクラス名を指定する
-e 最初のシェルとして -e 以降の引数を実行する
accelKey_scrollPageUp ショートカットキーの設定。1ページ上へスクロール
accelKey_scrollPageDown ショートカットキーの設定。1ページ下へスクロール
accelKey_scrollLineUp ショートカットキーの設定。行スクロール (scrollLines)
accelKey_scrollLineDown ショートカットキーの設定。行スクロール (scrollLines)
accelKey_scrollTop ショートカットキーの設定。最上行へスクロール
accelKey_scrollBottom ショートカットキーの設定。最下行へスクロール
accelKey_popupMenu ショートカットキーの設定。右クリック時のメニューを表示する
accelKey_popupSysMenu ショートカットキーの設定。タイトルバーのシステムメニューを開く
accelKey_paste ショートカットキーの設定。クリップボードからペーストする
accelKey_paste ショートカットキーの設定。クリップボードからペーストする
accelKey_newShell ショートカットキーの設定。新しいシェルを開く
(New Shell)
accelKey_newShellWin ショートカットキーの設定。新しいウィンドウとシェルを開く
(New Shell in New Window)
accelKey_openWin ショートカットキーの設定。空いてるバッファを新しいウィンドウで開く。
(Open Window)
accelKey_closeWin ショートカットキーの設定。ウィンドウを閉じる。
他にウィンドウが残っていればシェルは残る
(Close Window)
accelKey_nextShell ショートカットキーの設定。次のバッファに切り替え
accelKey_prevShell ショートカットキーの設定。前のバッファに切り替え
accelKey_changeFont0 ショートカットキーの設定。フォントを 0番に切り替え
accelKey_changeFont1 ショートカットキーの設定。フォントを 1番に切り替え
accelKey_changeFont2 ショートカットキーの設定。フォントを 2番に切り替え
accelKey_changeFont3 ショートカットキーの設定。フォントを 3番に切り替え
スキン
ck-0.9.36から変化ありません。同じものがそのまま使えます。

詳細仕様はスキンマニュアルを参照。
制限事項など
・フォントを変更するエスケープシーケンスは 通常
\e]50;(font-name)\a
ですが ckでは制限があり、指定できるのは
\e]50;#ck0\a
\e]50;#ck1\a
\e]50;#ck2\a
\e]50;#ck3\a
だけです。これで 0番~3番のフォントへ変更されます。
・フォントと ウィンドウ位置、サイズを変える例
echo "\e]50;#ck2\a"
echo "\e[8;24;80t"
echo "\e[3;100;0t"
これで Font2, 80x24+100+0 になる。一行で書くと
echo "\e]50;#ck2\a\e[8;24;80t\e[3;100;0t"
現状分かっている問題点
AltIME 3.15 で CapsLockキーを Ctrlキーにしている場合
ショートカットキーに「左shift + 左ctrl(Caps) + 何か」が使えないことがある。
私の環境では、2,w,s,x キーで この現象が出ました。
ショートカットを他のキーに割り当てて回避してください。
IME変換中 確定せずに次の文字を入力した場合、入力位置が更新されない
子プロセスとのやり取りを別スレッドで行ってます。
1.IME入力確定 → 通信バッファへ書き込み → 次の文字入力開始
2.子プロセスが反応 → スクリーンバッファを更新(カーソル位置更新)
この一連の処理が非同期なため、入力位置を合わせることが出来ません。
cygwin版 GNU screenを使用中に、ウィンドウリサイズするとscreenがフリーズすることがある
cygwin xtermでも同様。
ioctl(TIOCSWINSZ)の頻度を下げることで改善されるが PCの性能に依存すると思われる。
長い文章をペーストすると、子アプリのパフォーマンスが低下する事がある
(PCの性能によっても変わるカモ?)
表示が崩れる文字がある
文字の半角全角の判定を xtermと同じにしているので、
フォントの半角全角と合わない文字があります。
半透明ウィンドウは、OpenGLアプリが起動するとパフォーマンスが異常に遅くなる
OpenGLアプリを終了させても症状は治らない。
Windows2000 + nVidiaグラフィックドライバ の環境で確認してます。

他にも、ckが背面にいるだけで通常のGDIアプリ側の描画が重くなったりするようです。
英字、漢字で別々のフォントを指定できない
卑怯な技ですが 私はこちらの方法 (Windowsで BDFフォントを使う)
自分好みのフォントを使ってます。

1