Edited at

PuTTY+Cygterm

More than 3 years have passed since last update.

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


  • 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の入手

http://sourceforge.jp/projects/ttssh2/scm/svn/tree/head/trunk/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 が効いてない(?)