PuTTY+Cygterm


適当にファイルパスを変更すること。以下では、

  • PuTTY は C:\Program Files\PuTTY\putty.exe にある。
  • Cygwin は C:\Cygwin\ に入っている。
  • Cygterm は /usr/local/cygterm/ (C:\Cygwin/usr/local/cygterm/) に入れる。ついでに起動スクリプトもここに入れる。

PuTTYの入手

本家 : http://www.chiark.greenend.org.uk/~sgtatham/putty/
ICE IV : http://ice.hotmint.com/putty/

Cygtermの入手

Cygtermをmakeしてインストール

install -d /usr/local/cygterm
make install BINDIR=/usr/local/cygterm

cygtermの設定

cygterm.cfg
TERM = C:\Program Files\PuTTY\putty.exe -load "cygterm" -telnet %s -P %d
#TERM_TYPE = xterm
#TERM_TYPE = putty-256color
PORT_START = 20000
PORT_RANGE = 40
SHELL = auto
#LOGIN_SHELL = Yes
LOGIN_SHELL = No
HOME_CHDIR = No
SSH_AGENT_PROXY = No
ENV_1 = TERM=putty-256color

Cygwin64だとTERM_TYPEが効かなかった(?)のでENV_1でターミナルタイプを無理矢理設定した。

PuTTY側にcygtermという名前で設定を作る

パラメータ名
Host Name localhost
Connection type Raw
Local echo Force off
Local line editing Force off
The Backspace key Control-H
The function keys and keypad Linux
Remote character set UTF-8 (CJK)

起動スクリプト

cygterm_here.js
var wsh = new ActiveXObject("WScript.Shell");
var env = wsh.Environment("Process");
env("PATH") += ";C:\\\\Cygwin\\\\bin";
var opts = "";
if (WScript.Arguments.length > 0) {
  wsh.CurrentDirectory = WScript.Arguments(0);
} else {
  opts = " -cd";
}
wsh.Run("C:\\\\Cygwin\\\\usr\\\\local\\\\cygterm\\\\cygterm.exe" + opts);

好みにより、グローバルに環境変数を設定する代わりにここでCygwinのパスを設定している。
この.jsファイルをクリックするとCygtermが$HOMEから起動するはず。

エクスプローラの右クリックに登録

ついでに エクスプローラの右クリックメニューをカスタマイズする のように.regファイルを作った。

term_here.reg
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\term_here]
@="ターミナルを開く(&T)"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\term_here\command]
@="wscript C:\\\\Cygwin\\\\usr\\\\local\\\\cygterm\\\\cygterm_here.js \\"%L\\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\term_here]
@="ターミナルを開く(&T)"

[HKEY_CLASSES_ROOT\Directory\Background\shell\term_here\command]
@="wscript wscript C:\\\\Cygwin\\\\usr\\\\local\\\\cygterm\\\\cygterm_here.js \\"%V\\""

dup

次のようなシェルスクリプトをどこかに置いておくと、ターミナルウィンドウをたくさん増やせて便利だと思う。

dup
#!/bin/sh
exec wscript 'C:\\Cygwin\\usr\\local\\cygterm\\cygterm_here.js' "`cygpath -w \\"\\`pwd\\`\\"`"

追記 (2016/5/17)

Cygwin 2.5.1 (x86) と Cygterm 1.07_28 でビルド時エラー。cygterm.cc

#define _XOPEN_SOURCE
#define _BSD_SOURCE

が要るような(?) また、GNU screen 上で Ctrl+LeftCtrl が効いてない(?)