Microsoft IntelliType commands.xml File

By Xah Lee. Date: . Last updated: .

There is a file “commands.xml” at C:\Program Files\Microsoft IntelliType Pro\.

The purpose of the file commands.xml seems to be the same as the registry, but is used to as a fall back when IntelliType is installed the first time and there are no registry entries. According to blogger Joel Bennett, it seems that you can delete the whole EventMapping registry entry and simply modify commands.xml to define your key definitions.

Warning: When you edit the command.xml file, be sure your editor is launched with sys admin privilege, because otherwise, Windows Vista will actually create a virtual copy of that file at $HOME\AppData\Local\VirtualStore\ , but IntelliType won't actually load the VirtualStore copy. For detail see: Windows Vista VirtualStore Problem .

Also, you should be careful when you edit the file. It might cause IntelliType to crash. (according to some blog, IntelliType doesn't really read the file as xml, so don't think you know xml and start to add xml comments or other tags and attributes.)

To launch your editor with admin privilege, right click on its icon and chose “Run as administrator”.

Here is the file structure of “commands.xml”:

DPGCmd
 Copyright
 Version
 CHS
  Application
  Application
  Application
  …
 ENG
  Application
  Application
  Application
  …
 JPN
 …
 ESP
 RUS
 …
 ALL
  Application
  Application
  Application
  …

Those CHS, CHT, ENG, FRA, DEU, ITA, JPN, KOR, PTB, PTI, ESP, RUS etc are languages. Presumably for the keyboard layout of that language. (keyboard layout can be chosen from Control Panel, Regional and Language Options). I don't know if it is safe to delete all these blocks and leave just the “<ALL>…</ALL>” block. The ALL seems to be the catch all section. Each “Application” tag is for that app. Below is a example from the ALL section:

<ALL>
  <Application UniqueName="StandardSupport">
    <C309 Type="5" KeySeq="ctrl F4" />
    <C201 Type="5" KeySeq="ctrl c" />
    <C200 Type="5" KeySeq="ctrl x" />
    <C301 Type="5" KeySeq="alt F4" />
    <C302 Type="5" KeySeq="F1" />
    <C202 Type="5" KeySeq="ctrl v" />
    <C203 Type="5" KeySeq="ctrl z" />
    <C205 Type="5" KeySeq="delete" />
    <C100 Type="5" KeySeq="alt leftarrow" />
    <C101 Type="5" KeySeq="alt rightarrow" />
    <C103 Type="5" KeySeq="escape" />
    <C300 Type="5" KeySeq="enter" />
    <C319 Type="6" Activator="ScrollUp" />
    <C320 Type="6" Activator="ScrollDown" />
    <C1101 Type="6" Activator="HorizontalScroll" />
    <C1003 Type="7" Subtype="0" />
  </Application>
  …
</ALL>

Each line defines a key and its action. For example:

<C319 Type="6" Activator="ScrollUp" />

The “C319” is the Zoom slider at up position. The “Type” and the rest defines the behavior of the key. Here's what the type number means, based on Joel Bennett's blog:

TypeMeaning
0disables the key.
5Type a key combo and or sequence. Used together with property “KeySeq”.
6seems for continuous action, such as zoom and scroll. All type 6 has “Activator” as its property, and its property value is either scroll or zoom.
1Sending window message?
2Sending window message?
3Sending window message?
4Sending window message?
7?

Here is all possible key codes that exist in commands.xml, and their meanings.

CodeKeyComment
C100?Alt+←
C101?Alt+→
C102?
C103?Esc
C104?
C105?
C106?
C200?cut?
C201?copy?
C202?paste?
C203F2undo
C204F3redo?
C205?delete
C300?Enter
C301?close window?
C302F1help
C307F4new?
C308F5open
C309F6close
C310F12
C311F11
C315?
C319Zoom slider up position
C320Zoom slider down position
C401F10
C900F7
C901F8
C902F9
C1003?
C1101?HorizontalScroll
C1451?

Back to Microsoft IntelliType Hacks .

Old Microsoft Keyboard Topic