From: chuck AT ethereal DOT ru (Chuck Bogorad) Subject: Re: NT kernel keymap hack 11 Jan 1998 14:00:49 -0800 Message-ID: <01bd1ea7$911a3ef0$0100a8c0.cygnus.gnu-win32@hysteria.spb.ru> Mime-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 7bit To: "Steven R. Newcomb" , "gnu-win32" >Does anybody know of an NT kernel hack that switches the caps-lock key >with the control key (that lies under the shift key on most machines >these days)? I just can't adjust to the idea that the control key >should be so inaccessible. I'm an Emacs/bash bigot, and I like using >the control key a lot. sure, enjoy (author is unknown). on my system, i totally disabled CAPS LOCK, so both keys act like CONTROL key my system (caps -> ctrl) has this setting: 00 00 00 00 - 00 00 00 00 - 02 00 00 00 - 1d 00 3a 00 - 00 00 00 00 === cut === Add this value: HKEY_LOCAL_MACHINE \System \CurrentControlSet \Control \KeyBoard Layout \Scancode Map It's a binary value that lets you map keystrokes in the low-level keyboard drivers in NT. As a result you don't have to worry about applications bypassing mappings that you've done at a higher level (i.e. it just works). Here's the format of the value: DWORD: 0x00000000 header DWORD: 0x00000000 header DWORD: length (in DWORDs) of remaining data, including terminating DWORD DWORD: mapping 1 ... DWORD: mapping n DWORD: 0x00000000 terminating null DWORD Each mapping DWORD has two parts: the input scancode, and an output scancode. To map scancode 0x1d (left control) to scancode 0x3a (caps lock), you want a value of 0x003a001d. Note that this does not swap the keys. Using just this mapping value, both the left control and the caps lock key will behave as caps-lock. To swap, you also need to map 0x3a to 0x1d, using 0x001d003a. So, the complete registry value you'd use to swap left-control and caps-lock is: 00 00 00 00 00 00 00 00 03 00 00 00 1d 00 3a 00 3a 00 1d 00 00 00 00 00 This works on NT 4.0, I don't know about 3.51. This registry value is system wide, and can't be made user-specific. It also only takes affect on reboot. === cut === - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".