[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: .Xmodmap and new input layer, upgrades and breakage



> > Have these keys been hardcoded?
> 
> BenH explained this before, I think he said it was a hardware problem (the 
> Caps-Lock key not sending a keycode when it goes back up, or something like 
> that), that would also explain why you can't switch these 2 keys. Is there a fix 
> for that ?

The original Apple keyboards had the capslock key implemented sticky (in
hardware), it doesn't send a key up event so the keyboard_input routine in
the kernel keyboard driver fakes a key up immediately on seeing the key
down. 

Swapping caps lock with any other modifier key in the input layer will
result in the new modifier key behave funny because the ADB layer still
generates the missing key up immediately. What you can do is read the
status of the keyboard via ADB command each time you see the caps lock
event - see the notorious space aliens technote for details on the
register format reflecting keyboard status. Please think twice before
sending ab ADB request from keyboard_input: the routine itself is called
from the ADB interrupt handler upon completion of a packet receive so you
might have to play tricks if the ADB interrupt handler still has the ADB
bus marked busy at that time. 

Sounds like fun? Thats's Apple ADB for you :-)

	Michael



Reply to: