+
putty
PuTTY PRIVATE PATCHES
2012/02/11
PuTTY PRIVATE PATCHES

PuTTY 0.62 をベースとして、 PuTTY 0.60 ごった煮版 2007年8月6日版 に諸々の機能を追加しました。

(このページの PuTTY は、 オリジナル同様に GDI でレンダリングするバージョンです。 Direct2D/DirectWrite バージョンは、 D2D/DW PuTTY にあります)

GDI PuTTY

ダウンロード
DOWNLOAD
ダウンロード

2012/02/11 版 putty-gdi-20120211.zip

2011/12/29 版 putty-gdi-20111229.zip

2012/02/11 修正内容
  • ヘルプファイルがあると設定画面でエラーが発生したのを修正
  • ALT-Space が常に有効になっていたのを修正
  • Windows XP で Glass 系効果を選ぶとクラッシュしていたのを修正
  • Windows XP で Wallpaper 設定の Desktop が機能しないバグは未修正
2012/01/30 修正内容
  • Hideki EIRAKU 氏の PuTTYjp の更新に追随しました。引き続きお世話になります。
  • なお、PuTTYjp は UNIX/旧 Windows 用や Mingw でのコンパイルにも対応したパッチ/バイナリになっていますが、こちらのものは Windows XP SP2 以降用で Visual C コンパイルにのみ対応しています。
  • Yoshida Masato 氏の SURROGATE PAIR & IVS パッチを取り込みました。これは素晴らしい。ありがとうございます。
  • Bracketed Paste Mode に対応しました。使用例は、Tera Term の vim からの制御シーケンスの使用例 をご覧ください。
  • ごった煮に含まれていた壁紙機能を、完全に新しいものに置き換えました。壁紙種別が 4 種類、背景効果が 3 種類、透明度は 2 つあります。壁紙の配置は、Windows 7 準拠の方法が 5 種類、基準位置は 3 種類 × 3 種類の組み合わせで可能です。解説は準備中。
  • これで多くの方の希望に沿った背景設定が可能になるのではと期待しています。ただ、関連する設定も含めて組み合わせの数が非常に多いため、動作チェックしきれていない部分があるかもしれません。仕様として機能しない組み合わせや、直感に反する描画結果となるものもありますが、知識不足で修正方法が分からずに放置した部分や、描画速度が低下しているケースもありそうです。もし機能より安定性が重要ということであれば、よりオリジナルに近い上記サイトのバージョンのご利用も、検討ください。
  • 追記(2011/01/31): 余計な putty.lng が含まれていたため、zip を差し替えました。
インストール
INSTALL
インストール

適当なディレクトリに putty.exe を (64 ビット版を使う場合は \x64\putty.exe を) コピーしてください。 設定をレジストリではなくファイルに保存する場合は(推奨)、 \ini\putty.ini を putty.exe と同じ場所にコピーしてください。 日本語化する場合は、 \ja-JP\putty.lng を、同様にコピーしてください。

puttygen.exe その他の関連ファイルも同梱してありますので、 必要であれば適宜コピーしてください。 ただし動作は大半が未テストです。挙動に不審な点があれば、 PuTTYjp をご利用ください。

特徴
FEATURES
特徴
×
IME オンでカーソルの色を変える
2008/02/05

IME がオンのときに、カーソルの色を変えます。

カーソル色は、 Window -> Colours -> Select a colour to adjust: -> Cursor Text(IME ON), Cursor Colour(IME ON) で設定してください。

IME OFF IME ON

×
背景設定
2008/02/08

背景の効果・壁紙・透明度を設定できます。

効果と壁紙は Window -> Background に設定があります。 効果は Effect: に Plane, Glass, Double Glass の 3 種類あり、

  • Plane - 普通の平坦な背景
  • Glass - Aero の Glass 効果(Vista 以降)
  • Double Glass - Glass を二重に重ねる(Vista 以降)

壁紙は Wallpaper: に 4 種類の設定があり、

  • None - 壁紙なし
  • Bitmap file - 指定した *.bmp 形式の画像を表示
  • Bitmap file on Desktop - 仮想的にデスクトップへ貼り付けた画像へ透過
  • Desktop - デスクトップの壁紙へ透過(xterm 風)

ただし Wallpaper: Desktop は、Effect: Plane 時のみ有効です。

Plane Glass Double Glass

壁紙の貼り付け方や位置は、さらに詳細を設定できます。 貼り付け方は Position: に 5 種類あり、 Windows 7 のデスクトップ壁紙と同様の選択が可能です。

  • Fill - アスペクト比を保って隙間なく描画
  • Fit - アスペクト比を保って画像全体を描画
  • Stretch - アスペクト比を保たず隙間なく描画
  • Tile - 画像を繰り返して敷き詰める
  • Center - 拡大縮小せずそのまま表示

Position: Stretch 以外の場合、 画像の基準位置は Horizontal/Vertical Align: で指定できます。

透明度は Window -> Transparence に設定があります。 ウィンドウのアクティブ時と非アクティブ時のそれぞれの背景の、 透明度のアルファ値を % 単位で指定してください。0% が完全な透明で、 100% が不透明です。 ただし Effect: Plane 時には、0% を指定しても僅かに不透明が混じります。

Transparency

×
文字を除去してクリップボードへ
2008/02/05

putty 上で選択したテキストをクリップボードに送るときに、 テキストから設定された文字を除去します。たとえば emacs で、

(require 'disp-table)
(defface highlight-eol-face '((t (:foreground "color-19"))) nil)
(defface highlight-wrap-face '((t (:foreground "color-22"))) nil)
(aset standard-display-table ?\n
      (vconcat (mapcar
                (lambda (c) (logior c (lsh (face-id 'highlight-eol-face) 19)))
                "⇂\n")))
(set-display-table-slot standard-display-table 'wrap
                        (+ (lsh (face-id 'highlight-wrap-face) 19) ?»))

といった設定で改行を "⇂" でマークし、 継続マークを "\" から "»" に変更している場合、 Window -> Selection -> Ignore characters に "⇂»" を設定することで、 これらのマークを無視した正味のテキストをクリップボードに送ることができます。

putty.lng を使ってメッセージを日本語化している環境などで、 Ignore characters に文字が正しく設定できないことがあります。 putty.lng を削除して試みてください。 もしくは、直接 registry/putty.ini の IgnoreChars キーに、 UTF-8 コードの文字で設定してください。

Select and Paste

×
Bracketed Paste
2008/02/05

Bracketed Paste Mode に対応しました。使用例は Tera Term の vim からの制御シーケンスの使用例 をご覧ください。

×
ウィンドウ位置を記憶
2008/02/05

Session -> Save the current session settings で Save する際に、 現在のウィンドウ位置を併せて保存し、次回からそのウィンドウ位置で起動します。 位置は、レジストリもしくは putty.ini の TermX と TermY キーに保存されます。

×
IME の前後フィードバック対応
2008/02/24

MS-IME や ATOK の「カーソル位置の前後の内容を参照して変換する」 オプションがオンのときに、この変換の試みに対応します。 詳しくは、 日経トレンディネットの解説 秀丸エディタの紹介 をご覧ください。

具体的には、IME からのリクエストに応じて、 カーソルのある行(表示行)のテキストを返しています。 Vista 以降で導入された TSF による入力には未対応です。

×
最新のソースコード
Latest Source Code

ベースとなるソースコードを、適宜 svn 最新スナップショットに変更しています。

×
プライベートキー定義
2008/02/28

キーを押したときに送信されるコードシーケンスを独自に定義できます。 たとえば、Shift + Up キーで xterm と同様の ^[[1;2A を送信したり、 Shift + Ctrl + Alt + Up キーで適当に決めた ^[[1;9A を送信したりできます。

設定するには、putty.ini を直接編集してください。フォーマットは、以下の通り。

VKey<VK_CODE>=<>,<Shift>,<Ctrl>,<Shift+Ctrl>,<Alt>,<Shift+Alt>,<Ctrl+Alt>,<Shift+Ctrl+Alt>

<VK_CODE> は、目的のキーの仮想キーコード(十進数)です。 キーと仮想キーコードの対応表は ここ などのリストを参照してください。0 ~ 255 が有効な値です。

= の右側には、 Shift Ctrl Alt のモディファイアキーの組み合わせで 8 種類のシーケンスを、 , で区切って記述してください。 \ は、続く 3 文字が 3 桁の 8 進数であることを示します。 たとえば \033[A は、いわゆる ^[[A に変換されます。 \ 自身や、区切り文字 , は、それぞれ \134 \054 と記述できます。 \ と続く 3 文字は、正しく 8 進数として変換できなくても、 不定の 1 文字として送信されるので注意してください。

たとえば Insert キーの動作として、 Shift+Insert で 2 を、Shift+Ctrl+Insert で 3 を、 Alt+Insert で 4 を送るようにし、 それ以外のモディファイアの場合は従来の putty と同じにするには、 Insert キーの仮想キーコードは 45 なので、

VKey45=,2,,3,4

とします。もう少し有用な例としては、 Up Down Left Right の各キーを、(たぶん) xterm と同じにする記述です。 putty.ini の [Session:Default%20Settings] セクション等に追加してください。

# Normal,Shift,Ctrl,Shift-Ctrl,Alt,Shift-Alt,Ctrl-Alt,Shift-Ctrl-Alt
# LEFT UP DOWN RIGHT
VKey37=\033OD,\033[1;2D,\033[1;5D,\033[1;6D,\033[1;3D,\033[1;4D,\033[1;13D,\033[1;14D
VKey38=\033OA,\033[1;2A,\033[1;5A,\033[1;6A,\033[1;3A,\033[1;4A,\033[1;13A,\033[1;14A
VKey39=\033OC,\033[1;2C,\033[1;5C,\033[1;6C,\033[1;3C,\033[1;4C,\033[1;13C,\033[1;14C
VKey40=\033OB,\033[1;2B,\033[1;5B,\033[1;6B,\033[1;3B,\033[1;4B,\033[1;13B,\033[1;14B

この xterm 風の設定を各アプリケーションで認識するためには、 たとえば emacs では、~/.emacs に

(define-key function-key-map "\e[1;2A" [S-up])
(global-set-key [S-up] 'scroll-down)
(define-key function-key-map "\e[1;2B" [S-down])
(global-set-key [S-down] 'scroll-up)

などと設定することで、Shift+Up/Down で scroll-down/up するようになります。 また、readline ライブラリを使う bash などのアプリケーションでは、 ~/.inputrc に

"\e[1;2C": forward-word
"\e[1;2D": backward-word

と設定しておくと、Shift+Left/Right で forward/backward-word します。

さらに、アルファベットとテンキー以外の全キーを(たぶん) xterm 風に定義した ini ファイルのサンプル もどうぞ。ただし英語キーボード仕様。 一部で独自に拡張していますが、ほぼ emacs の xterm.el に準拠しているつもりです。 必要であれば (load-library "term/xterm") して (terminal-init-xterm) で、 一通りのキーシンボルは定義済みになります。

ライセンス
LICENSE
ライセンス

PuTTY is copyrighted by Simon Tatham.

PuTTYjp is copyrighted by Hideki EIRAKU.

PuTTY ごった煮版 is copyrighted by 蛭子屋 双六.

reconnect patch is copyrighted by warp13.

SURROGATE PAIR & IVS patch is copyrighted by Yoshida Masato.

Unless explicitly stated, PuTTY patch provided by this page is covered by the PuTTY License (see LICENCE file in zip).

改変履歴
HISTORY
改変履歴
2011/12/29 修正内容
2011/07/13 修正内容
  • PuTTY 0.61!
2011/07/06 修正内容
  • xterm/bitmap背景で起動時にクラッシュしていた問題を修正
2011/06/11 修正内容
  • x64 環境で pageant が機能しないことがある問題を WinSCP に倣って対処
2011/06/02 修正内容
  • Ignore characters の設定変更が正しく有効になっていなかった問題を修正
2011/06/01 修正内容
  • ソースコードのマージミス修正
2011/05/30 修正内容
  • ベースのコードを 2011/05/20 頃の svn 9169 に変更。主要な機能追加は Windows 7 のジャンプリスト、可変幅フォント、delayed compression への対応ですが、前二者について、ごった煮や大元の日本語化と整合しない部分を適当に処理したため、不具合があるかもしれません。
2011/01/07 修正内容
  • ハイパーリンクの表示の誤りを修正
2010/11/29 修正内容
  • ベースのコードを 2010/11/29 頃の svn 9020 に変更
2010/08/28 修正内容
2010/08/02 修正内容
  • ハイパーリンクの抽出が、かなり恥ずかしくバグっていた(表示のみバグっている箇所がまだありますが、近日修正予定)
2010/08/01 修正内容
  • マウスカーソル下ハイパーリンクのアンダーライン表示を改善
  • ブラウザ起動のデフォルト設定を Ctrl + クリックに変更
  • 64 ビット版で実行不能なものがあった
2010/07/13 修正内容
  • マウスで領域選択中にクラッシュすることがあった
2010/07/07 修正内容
  • ハイーパーリンクに対応
  • -ini オプションが効いていなかったのを修正(コマンドラインオプションの最初に指定しないと無効なのは同様)
  • コンパイラを Visual Studio 2010 に変更(putty.exe のみ PGO あり。なくても 2008 の PGO あり並の速度は出る)
2010/06/30 修正内容
  • ベースのコードを 2010/06/15 頃の svn 8965 に変更
  • 2ch Putty その2 930 氏の pfwd パッチを適用
  • putty.exe 以外のバイナリを同梱(ただし起動チェックすらしていない)
  • オリジナルからの差分ファイルに変更
2010/04/07 修正内容
  • ベースのコードを 2007/04/29 の putty 0.60 から 2010/03/20 頃の svn 最新に変更
  • 64ビット版の実行ファイルを同梱
2009/10/24 修正内容
2009/03/09 修正内容
  • ガイド付き最適化(PGO)ありでコンパイルし直しました。たとえば巨大なテキストファイルの cat で 20% 弱の高速化が見込めるようです。数十の putty を立ち上げて tail -f しているような人には意味があるかも、という程度の差ですが。
  • パッチの内容に変更はありません。
2008/12/13 修正内容
  • 不適切な wcwidth.o が link されていたため、 一部の文字の幅が正しく取得できていませんでした。 修正にあわせて wcwidth.c を 最新版 に差し替えました。
  • ウィンドウ位置を記憶する patch で、 初期位置が画面左上隅になっていました。 Milly のメモ さまの指摘に従い、Windows の標準的な動作に修正しました。
  • 付属の patch を適用してバイナリを生成するには、 Milly のメモ さまの指摘にあるように依存関係を自力で解決してください。すいません。
2008/02/05 修正内容
  • 初出