Linux – How to use a second USB keyboard for special keys under Linux

keyboardlinuxusb

I'd like to use a second USB keyboard connected to my box running Ubuntu to generate special keystrokes. I'd like to map those in Vim to very specific actions.

I plug both my main keyboard and the secondary keyboard on two different USB ports.

How can I configura Ubuntu so that the keystrokes of only one of the keyboards are mapped to different keycodes?

For example, when I press the letter A on keyboard 2, I'd like it to appear as if I had pressed XF86XK_Launch0.

Best Answer

Assuming a sufficiently recent Ubuntu, you should be able to add your keyboard to /etc/udev/hwdb.d/. The required format can be cribbed from /lib/udev/hwdb.d/60-keyboard.hwdb.

After adding your new mapping, you need to rebuild the hwdb.bin file: udevadm hwdb --update. The next time udev sees your second keyboard (e.g. unplug and replug), it should load the mapping you wrote.

This is all assuming that your second keyboard has a distinct USB vendor:product pair to your first keyboard. If the two are identical, you might need more involved rules in /etc/udev/rules.d (check /lib/udev/rules.d/60-keyboard.rules for a starting point).

Also, look at /lib/udev/rules.d/64-xorg-xkb.rules if you're running X.

Related Question