いろいろ苦しみながらメインマシンをWindows 7に移行させて1ヶ月。一部の環境はあきらめ(スキャナ、TVチューナーが駄目だった)たんだけど、残課題が1つ。
昔Macintoshやunixを使っていた関係で、Windowsも、KeyCtrl,Altime,xkeyemacsのツールを使って(今調べるとこんなに要らなかったっぽい)①ESC,CTRLの位置をUSキーボードに②スペース横で漢字変換をコントロールの変更をしてきたんだけど、Windows7はこれらのツールでキー配置の変更ができない。
■キー配置の変更
いろいろ調べると、xkeyemacsはキーマッピング情報をユーザ個別のレジストリ"[HKEY_CURRENT_USER\Keyboard Layout]"に格納しているんだけど、windows 7は、コンピュータ全体のレジストリ"[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]"に設定しないといけないらしい。
当面は、microsoft純正のCaps->Ctrl変換ツール(Ctrl2CAP)でしのいでいたんだけど、本腰を入れてレジストリの書き換えで対応
※設定ファイル(レジストリの書き換えを伴うので注意)
xkeyemacsは、キー配置の変更は大変なんだけど、キーバインドの変更ならwindows2000と同じ。
昔Macintoshやunixを使っていた関係で、Windowsも、KeyCtrl,Altime,xkeyemacsのツールを使って(今調べるとこんなに要らなかったっぽい)①ESC,CTRLの位置をUSキーボードに②スペース横で漢字変換をコントロールの変更をしてきたんだけど、Windows7はこれらのツールでキー配置の変更ができない。
■キー配置の変更
いろいろ調べると、xkeyemacsはキーマッピング情報をユーザ個別のレジストリ"[HKEY_CURRENT_USER\Keyboard Layout]"に格納しているんだけど、windows 7は、コンピュータ全体のレジストリ"[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]"に設定しないといけないらしい。
当面は、microsoft純正のCaps->Ctrl変換ツール(Ctrl2CAP)でしのいでいたんだけど、本腰を入れてレジストリの書き換えで対応
※設定ファイル(レジストリの書き換えを伴うので注意)
Windows Registry Editor Version 5.00
; ※データは4byte長
; ※実際の格納データはLittleEndianなので4バイト単位にswapする必要がある
;
; 00,00,00,00 ヘッダー(バージョン情報)
; 00,00,00,00 ヘッダー(フラグ情報)
; 00,00,00,06 後続するマッピング情報の格納数(最後のNULLを含む)
; 00,29 00,01 ESC(0x29) ⇒ 漢字(0x01)
; 00,01 00,29 漢字(0x01) ⇒ ESC(0x29)
; 00,3A 00,1D CAPS(0x3A) ⇒ LCtrl(0x1D)
; 00,1D 00,3A LCtrl(0x1D) ⇒ CAPS(0x3A)
; 00,79 00,29 変換(0x79) ⇒ 漢字(0x29)
; 00,00,00,00 NULLターミネーター
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map" = hex:00,00,00,00, 00,00,00,00, 06,00,00,00, 01,00,29,00, 29,00,01,00, 1D,00,3A,00, 3A,00,1D,00, 29,00,79,00, 00,00,00,00
;=====================================================================
;■Microsoft: Scan Code Mapper for Windows
; http://www.microsoft.com/whdc/archive/w2kscan-map.mspx
; windows2000,XPを対象にしたの情報だけどとりあえず参考になる
;
;■altimeのAltime.txt etc.
; キー スキャンコード(★は今回使用したもの)
; --------------+-------------------
; 漢字 29 ★ ⇒ESC
; Esc 01 ★ ⇒漢字
; スペース 39
; \ 2B
; CapsLock 3A ★ ⇒左Control
; 左Control 1D ★ ⇒CapsLock
; 右Control 9D ※ E0-1Dと書いてある所もある
; 左Alt 38
; 右Alt B8 ※ E0-38と書いてある所もある
; 無変換(左◇) 7B
; 変換(右◇) 79 ★ ⇒漢字
; 左Windows DB ※ E0-5Bと書いてある所もある
; 右Windows DC ※ E0-5Cと書いてある所もある
; (割当なし) 00
; ひらがな 70
; Num Lock 45
; Scroll Lock 46
; F1~F10 3B~44
; F11~F12 57~58
; Application DD ※ E0-5Dと書いてある所もある
; Control+O 218
; Alt+スペース 439
;
;■レジストリを操作して左CtrlとCaps Lockを入れ替え
; http://d.hatena.ne.jp/Guernsey/20091125/1259141648
; How to swap Left-Control for Caps Lock using xkeymacs 3.47 on Windows7CommentsAdd Star
; http://d.hatena.ne.jp/stereocat/20100125/1264435071
; 従来のWindowsだと
; ・コンピューター全体に適用する場合
; [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
; ・現在ログオンしているユーザ限定の場合
; [HKEY_CURRENT_USER\Keyboard Layout]
; で、keyemacsは[HKEY_CURRENT_USER\Keyboard Layout]に書き込んでいるのだけど、
; Windows 7は、[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
; に書き込まないと動作しない
;
;■他のツール(Ctrl2CAP v2.0)
; http://technet.microsoft.com/en-us/sysinternals/bb897578.aspx
; ・インストール ctrl2cap /install
; ・アンインストール ctrl2cap /uninstall
; ・If it happens to be a caps-lock, ctrl2cap changes it into a left-control.
■emacsキーバインドの設定xkeyemacsは、キー配置の変更は大変なんだけど、キーバインドの変更ならwindows2000と同じ。
最近のコメント
…