<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Hacking the Natural 4000 keyboard</title>
	<atom:link href="http://huddledmasses.org/hacking-the-natural-4000-keyboard/feed/" rel="self" type="application/rss+xml" />
	<link>http://HuddledMasses.org/hacking-the-natural-4000-keyboard/</link>
	<description>You can do more than breathe for free...</description>
	<pubDate>Wed, 09 Jul 2008 12:09:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Scott</title>
		<link>http://HuddledMasses.org/hacking-the-natural-4000-keyboard/#comment-166603</link>
		<dc:creator>Scott</dc:creator>
		<pubDate>Sat, 21 Jun 2008 19:24:15 +0000</pubDate>
		<guid isPermaLink="false">http://HuddledMasses.org/hacking-the-natural-4000-keyboard/#comment-166603</guid>
		<description>Thanks for this information since I'm annoyed with the limitations in the IntelliType software.  Between this information and some information on the Autohotkey site I was able to remap all my special keys on this keyboard to do whatever I want using the well-documented and feature-filled autohotkey software (rather than the limited intellitype software).

In case it's of use to anyone else, here's what I did.

You can create scripts directly using Autohotkey for any of the key codes that it can pick up.  Use its instructions to discover the key codes for the special buttons and then set these keys to "disabled" in the intellitype software control panel so you can work with them directly with Autohotkey.

Unfortunately, the favorites 1-5 and the help, undo, etc (alternate F1-F12) keys don't send any special keycodes that Autohotkey can recognize.  To send these keys to Autohotkey you need to do what you describe here and remap the keys in the IntelliType configuration files and registry to send keystrokes which Autohotkey can then pick up.  For example, I'm having the Help (F1) key send ALT-CTRL-SHIFT-F1 from the IntelliType software which Autohotkey can pick up and do something more useful with.

I ran into the issue of almost not having enough of the Microsoft command numbers to remap all the keys that Autohotkey couldn't pick up.  As you noted, some actions like "logoff" will still take their action no matter how you remap them with the commands.xml file. The command ids I used that seemed (mostly) to work globally without undesired side-effects were 100, 101, 102, 103, 200, 201, 202, 203, 204, 301, 302, 307, 308, 309, 310, 311, 315.  I deleted most of the application-specific actions from the commands.xml file and just left the "StandardSupport" section and an empty language section for English.

Removing application-specific settings isn't a problem since autohotkey can also map keys differently depending on the application or active window if you want the keys to act differently in different applications.

I ran into problems with the ids 100-103. They would fire from IntelliType when a window was active, but the keys didn't seem to fire when I was hovering the mouse over an icon on my desktop, for example.

I fixed the problem of special circumstance IntelliType keys by editing the mscmdkey.xml file and changing appCommand='36' for each of these items.  This appCommand number originally went with the copy command, but IntelliType didn't care that some other items in mscmdkey.xml also used this appCommand too.  It successfully changed the behavior so the key acted globally rather than just in a specific circumstance or window.

I'm thinking that perhaps some of the keys that don't remap well to other behaviors might be able to be remapped to do standard key combinations by changing their appCommand number to 36 or one of the appCommands that doesn't take any specialized action.  Maybe it would be possible to use the commands such as "logoff" to do other things if you change their appCommands in mscmdkey.xml.  I suspect the appCommand number references an action elsewhere (perhaps in one of those dlls) and the more extreme actions could be neutered by changing their appCommands to something else.

I hope this is helpful to someone out there.</description>
		<content:encoded><![CDATA[<p>Thanks for this information since I&#8217;m annoyed with the limitations in the IntelliType software.  Between this information and some information on the Autohotkey site I was able to remap all my special keys on this keyboard to do whatever I want using the well-documented and feature-filled autohotkey software (rather than the limited intellitype software).</p>
<p>In case it&#8217;s of use to anyone else, here&#8217;s what I did.</p>
<p>You can create scripts directly using Autohotkey for any of the key codes that it can pick up.  Use its instructions to discover the key codes for the special buttons and then set these keys to &#8220;disabled&#8221; in the intellitype software control panel so you can work with them directly with Autohotkey.</p>
<p>Unfortunately, the favorites 1-5 and the help, undo, etc (alternate F1-F12) keys don&#8217;t send any special keycodes that Autohotkey can recognize.  To send these keys to Autohotkey you need to do what you describe here and remap the keys in the IntelliType configuration files and registry to send keystrokes which Autohotkey can then pick up.  For example, I&#8217;m having the Help (F1) key send ALT-CTRL-SHIFT-F1 from the IntelliType software which Autohotkey can pick up and do something more useful with.</p>
<p>I ran into the issue of almost not having enough of the Microsoft command numbers to remap all the keys that Autohotkey couldn&#8217;t pick up.  As you noted, some actions like &#8220;logoff&#8221; will still take their action no matter how you remap them with the commands.xml file. The command ids I used that seemed (mostly) to work globally without undesired side-effects were 100, 101, 102, 103, 200, 201, 202, 203, 204, 301, 302, 307, 308, 309, 310, 311, 315.  I deleted most of the application-specific actions from the commands.xml file and just left the &#8220;StandardSupport&#8221; section and an empty language section for English.</p>
<p>Removing application-specific settings isn&#8217;t a problem since autohotkey can also map keys differently depending on the application or active window if you want the keys to act differently in different applications.</p>
<p>I ran into problems with the ids 100-103. They would fire from IntelliType when a window was active, but the keys didn&#8217;t seem to fire when I was hovering the mouse over an icon on my desktop, for example.</p>
<p>I fixed the problem of special circumstance IntelliType keys by editing the mscmdkey.xml file and changing appCommand=&#8216;36&#8217; for each of these items.  This appCommand number originally went with the copy command, but IntelliType didn&#8217;t care that some other items in mscmdkey.xml also used this appCommand too.  It successfully changed the behavior so the key acted globally rather than just in a specific circumstance or window.</p>
<p>I&#8217;m thinking that perhaps some of the keys that don&#8217;t remap well to other behaviors might be able to be remapped to do standard key combinations by changing their appCommand number to 36 or one of the appCommands that doesn&#8217;t take any specialized action.  Maybe it would be possible to use the commands such as &#8220;logoff&#8221; to do other things if you change their appCommands in mscmdkey.xml.  I suspect the appCommand number references an action elsewhere (perhaps in one of those dlls) and the more extreme actions could be neutered by changing their appCommands to something else.</p>
<p>I hope this is helpful to someone out there.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adam</title>
		<link>http://HuddledMasses.org/hacking-the-natural-4000-keyboard/#comment-141027</link>
		<dc:creator>Adam</dc:creator>
		<pubDate>Mon, 04 Feb 2008 17:55:20 +0000</pubDate>
		<guid isPermaLink="false">http://HuddledMasses.org/hacking-the-natural-4000-keyboard/#comment-141027</guid>
		<description>Thanks for taking the time to put this together! I found it extremely helpful.  Karma++!</description>
		<content:encoded><![CDATA[<p>Thanks for taking the time to put this together! I found it extremely helpful.  Karma++!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
