hideden.hatenablog.com

はてなぶろぐー。URLなげー。

cmd.exeを超便利にする ckw 0.8.10 を改造した。

hideden2007-11-15


08.12.03追記
最近の性能のいいPCだとckwのConsoleを隠す処理が失敗してConsoleが出たままになったりするようです。
修正したバージョンを公開された方がいらっしゃるようなのでそちらもご参照ください。
d:id:s-yata:20080823:1219474577
http://blogs.wankuma.com/shuujin/archive/2008/10/15/158825.aspx

色々放置ですいません。。。。
/追記



※修正版をアップしました。 d:id:hideden:20071123:1195822428



6月の転職を機にメインの作業環境をGentooLinuxに変更して快適なLinuxライフを送っていたのだが、ちょっとわけあって一時的にXPに戻す事になった。今年の初めから5月末まではOSXだったから、久々のWin環境。

何でもかんでもConsole + zshって環境に慣れた今、scpでファイルひとつコピーするにもWinSCPを起動する現状は非常に面倒。ファイルもエクスプローラーで・・・ってのがとてつもなくだるい。いちいちフォルダの横の + とかクリックしてられるか!っと。

かといって、DOS窓は非常に使い勝手が悪い。文字でかいしコピペしづらいし。Cygtermを改造してcmd.exeをPuTTY経由で操作するようにもしてみたんだが、なんかリピートがおかしかったりで今ひとつ。

素直にCygwin使えよって声が聞こえてきそうだが、以前から使ってはいたものの、実はCygwinってあんまり好きじゃない。Winを使うからには別に/じゃなくc:\でいいんだよね。じゃないとFirefoxでDLしたファイルをデスクトップからいちいちc:\homeに移動したり、レジストリいじくってデスクトップの位置を変更したりとかしなきゃならない。

そもそもネイティブのFileSystemが/cygdrive/c/とか以下に出るのがなんとも。

cd /cygdrive/c/Documents\ and\ Settings/hideden/デスクトップ

とか個人的になんか気持ち悪い。

そんな中、そもそもcmd.exeの代替となるものはないのか?っと思って検索してたところ、ckwというのがとても便利だと見かけた。が、、、配布元が404・・・。


・・・っと、前置きがえらく長くなったが、結論としてarchive.orgにあるミラーからソースのみ取得することが出来た。

配布元によるとライセンスはGPLらしいので、いくつか気になった点を改造した。

  • 設定ファイル名を ckw.txt → ckw.cfg に変更 (個人的な好みです。)
  • MakefileからCygwin依存のシェルスクリプトをbatに書き換え、VCでコンパイルできるようにした
  • カレントディレクトリを指定する-cd,--chdir を追加
    • -e cmd.exe /K cd c:\とかでも行けるが、他シェル等でも楽にするため。
  • 実行シェルを設定ファイルに記述できるようにした
    • -eオプションで指定できていたが、ショートカットをいじるのが面倒だったため。
  • タイトルを指定するオプション-tl,--titleを追加
    • cmd用とnyacus用を見分けやすくしたくて。
  • フォントサイズを標準のDOS窓より小さく設定すると、最大化や窓リサイズで一定以上の大きさになるとウィンドウサイズがおかしくなってしまう不具合を修正(多分)
    • MS Gothic 12で最大化するとなんかタイトルバーのみの小さな窓になってしまっていた。

こんな所。一番の問題は最大化で窓が極小になってしまうところ。どうやらオリジナルのDOS窓でのフォントサイズと画面解像度から算出された縦横の文字数を超えるとおかしくなっていた模様。XGAだと横125文字以上になるとおかしくなる。

で、kernel32.dllにあるSetConsoleFontなる隠しAPIを使って、非表示にしてあるDOS窓のフォントサイズを極小に設定することで回避。

元々C/C++は見よう見まねでやってるので、挙動がおかしい部分があればぜひ指摘していただければ。

って事で、オリジナルソースのmirrorとオリジナルのバイナリ、改造版のバイナリ・ソースをうpっておく。GPLだし問題ないと思うが、なんか問題があればコメントとかnowa経由等でご指摘ください。コンパイルはVC8(VisualStudio2005)で行った。

オリジナル
http://hideden.net/pub/ckw-0.8.10-src.zip
http://hideden.net/pub/ckw-0.8.10-bin.zip

改造版
http://hideden.net/pub/ckw-0.8.10-mod-src.zip
http://hideden.net/pub/ckw-0.8.10-mod-bin.zip


それにしてもこのソフト便利。PuTTYライクな選択でコピー、右クリックでペーストが出来るだけでなく、コンソールじゃないから普通に日本語を通常のIMEから入力できる。日本語入力をONにするとカーソル色が変わったりするのもいい。

何より、nyacusと組み合わせると最強。長くなったのでこれについてはまた後日。

作者様にとても感謝。ちょっとだけXPが好きになった。