I just got a Sidewinder X6 Keyboard.

This comes with Intellitype, a software package from Microsoft which binds the actions for you.

The Intellitype mechanism has some limitations though. One of them is that it is difficult to have the special keys be represented as a key you do not have on your keyboard already.

i.e. a key guaranteed not to have an existing binding in an application

Also you cannot make the key a modifier key like SHIFT, CTRL, ALT etc.

Here I present a method to work around this limitation. It involves creating a Key binding then editing the registry to get the desired key.

Overview



  • Reference Table



    • Registry Location

    • Key Description Format

    • Modifier Keys




  • Autohotkey Extension



    • Creating an unused Key

    • Binding a Virtual Key




  • Method Walkthrough



    • Bind a Key using Intellitype

    • Find the Key definition in the registry using Regedit

    • Alter the Value in Regedit




Reference Table


Registry Location


Computer\HKEY_CURRENT_USER\Software\Microsoft\Intellitype Pro\EventMapping\8xx

where xx is the number of your Special Key, zero Padded

  • S1 -> Computer\HKEY_CURRENT_USER\Software\Microsoft\Intellitype Pro\EventMapping\801

  • S2 -> Computer\HKEY_CURRENT_USER\Software\Microsoft\Intellitype Pro\EventMapping\802

  • S29 -> Computer\HKEY_CURRENT_USER\Software\Microsoft\Intellitype Pro\EventMapping\829



Key Description Format


Format

  • 0x0MVV where

    • M is one of the modifier keys (see below) and

    • VV is the Virtual Keycode of the Key (does not need to exist yet)



  • Examples

    • CTRL SHIFT ALT NUMPLUS ---> 0x076b

    • SHIFT A ---> 0x0141

    • CTRL A ---> 0x0241

    • A --> 0x0041

    • Virtual Key FF (not present by default) --> 0x00FF





Modifier Keys


To have a key equivalent to SHIFT, CTRL or ALT, leave the 0x--VV bit as 00

  • SHIFT --> 0x0100

  • CTRL --> 0x0200

  • ALT --> 0x0400


I tried higher values, but they did not work.

To get Virtual Modifier keys, I use Autohotkey to further process the key.

Autohotkey Example


If you want to use Autohotkey to create a hotkey in conjunction with Intellitype you need to use the reassign key method.

If you do not want to overwrite an existing key on your keyboard, you can use this method to create an empty Virtual Key.

  • Use a value like 0x00FF as the Keystroke value.

  • Create an autohotkey script with VKFF as the input key


E.g. S3 (left hand) in conjunction with i,j,k,l (right hand) will move the cursor around the document in all applications
;S3 bound to VKFF using method described in Method Walkthrough
VKFF & i::Send {Up}
VKFF & j::Send {Left}
VKFF & k::Send {Down}
VKFF & l::Send {Right}

Method Walkthrough


The Intellitype Interface


Step 01: Open the Intellitype config dialog as normal. Select the special key you want to configure [[here S2]]. Select Choose from a list of commands


Normal Intellitype Key Config :: Step 01


Step 02: Type in any key combination. Here I've chosen ALT + F2


Normal Intellitype Key Config :: Step 02


Step 03: Open Regedit and navigate to

Computer\HKEY_CURRENT_USER\Software\Microsoft\Intellitype Pro\EventMapping\802


Here you will see a value called Keystroke. This value holds the key combination you used in the Intellitype frontend. This is the value we will be editing.




Registry Location of Intellitype Keybindings

See above Reference Table for valid values.


Notes

  • You do not have to change any other values.

  • Registry changes take immediate effect. You do not have to do anything further

  • If you edit the key in Intellitype interface it will overwrite your regedit hack and you will lose your custom configuration

  • you may wish to alter the KeystrokeText value too, but that is optional and for your reference only
See reference for the values you can use here.