iBook caps lock as control in Linux
The short version of this saga is here: http://www.xmission.com/~fugalh/capslock/
ADB keyboards (like the one in my iBook) send the following events (oversimplified) on caps lock presses:
caps pressed on: 0x39
caps released: 0xff
caps pressed off: 0xff
caps released: 0xb9
Those 0xff events are not true caps lock events, they are some sort of special not-quite event. They probably aren't even mentioned in the spec. In any case, the linux kernel uses this logic to deal with this interesting hardware quirk: on 0x39 and 0xb9 both, generate both a key press and key release event, and do nothing for the 0xff events (or at least, nothing related to caps lock). This makes caps lock work perfectly, but it also makes it impossible to remap caps lock to a modifier because there is no way to hold down the key.
But in practice those 0xff events are mostly generated by caps lock. This is how uControl and Tiger remap caps lock to control. The patch at the above link will give linux the ability to do the same thing, with the same caveats. The only difference is that that patch is changing the kernel behavior for caps lock, not only when caps lock is remapped, so if you don't remap caps lock you might end up with an inverted caps lock occasionally. Depending on your personality, that may really bug you. Personally, I can't see the caps lock light through my hands anyway, so it doesn't bother me. (Not that I'd ever have caps lock as caps lock…)
And now you know the rest of the story.


