On Wed, Dec 12, 2012 at 11:59:16PM -0500, Ryan Leavengood wrote: > > Caps lock and other such keys are handled inside the keyboard device > add-on within the input_server. I looked into this for ticket #2053, > where stpere wanted the ability to make an input_server filter that > would only put on caps lock if the shift key was pressed. It is > possible but is sort of a hack. A more simple filter could be created > which just looks for B_MODIFIERS_CHANGED and immediately turns caps > lock back off, essentially disabling it. Though it wouldn't be much > harder to just make it like in the ticket, where it is turned back off > unless shift is also pressed. There is more detail in that ticket: > > https://dev.haiku-os.org/ticket/2053 > > I'm not sure if you can code much Pete, Yeah -- I guess I code much... (:-)) However, unless you've seen something that I haven't, I don't think it's possible to suppress CapsLock with a filter. The thing is, all the keymapping is handled straight in the KeyboardInputDevice, where it keeps its own copy of the modifier state. The only input I see to the device is directly from the ioctl to the driver -- no way to tell it to change its state from a filter. The only way I can think of for a filter to handle this would be for it to revert every shifted character that came through if CapsLock is on, but that's *definitely* a hack! What I may do is just patch KeyboardInputDevice itself to either ignore CapsLock entirely or --definitely nice! -- to do as stpere suggests. I guess Keyboard Preferences could be amended to add the choice (but I'll try it out initially as an alrternate module). -- Pete --