Capslock переназначить на старой клавиатуре PS / 2

409
topcat

У меня есть старая клавиатура IBM, подключенная к ноутбуку с помощью адаптера PS / 2 к USB. У меня проблемы с переназначением capslock на клавишу ctrl в Linux. Удерживание колпачка, переназначенного на ctrl, работает только для первого сочетания клавиш. Несмотря на то, что я все еще держу колпачок, каждое нажатие клавиши после этого не изменяется.

Используя, sudo showkeyя обнаружил, что хотя я все еще держу колпачок, когда я отпускаю другую клавишу, высылается и код релиза для колпачка.

Я не могу сказать, является ли это ограничением клавиатуры или USB-адаптера. Связывание клавиш работает на клавиатуре моего ноутбука, но не на моей внешней. Есть ли способ это исправить?

0

1 ответ на вопрос

0
writeTools

I had a very similar problem, an old PS2 keyboard connected through a ps2->usb adapter and after I remapped the capslock to ctrl in Windows (both XP and Win7) I could never get the second control modified keystroke to be taken as a control character. What I found was after I released the first control modified character I had to release and re-depress the capslock key in order to send another ctrl character.

I had edited the registry entry for HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout and added a Scancode Map entry

I knew that the original ctrl key worked fine on the PS2 keyboard, as it would allow multiple ctrl modified chars to be typed without re-depressing the ctrl character. I also knew that the capsLock key when remapped to ctrl char worked fine as a ctrl key when the keyboard was connected via a PS2 port to the computer. So my conclusion was that the USB converter or connection was failing to pass the multi ctrl keystrokes.

Eventually I tried a USB keyboard connected to the USB port on the PC and I found it works fine, either with the original ctrl key or with the remapped caps-lock key. With a working solution I did not do any further research but it seems conceivable that the problem is in the PS/2 -> USB converter I was using.