# how to bind custom usb keyboard keys using eudev on gentoo
This is mostly for my own sanity if I ever want to edit this again. Basically if you have a custom usb device and want to bind the keys, follow these instructions on gentoo running eudev (process is similar for systemd):
- make a /etc/udev/hwdb directory (for systemd; ignore otherwise)
- look in /lib/udev/hwdb for instructions (for gentoo)
There is a mapping between scancodes and keycodes. Scancodes are what the device (usbkeyboard) generate and they’re mapped by udev to keycodes.
To view usb devices and the scancodes they generate, run evtest. The “value” is the scancode in hex. Find the keyboard (in my case, by searching “Alienware”) in the 60-keyboards.hwdb file. Then append rules in there. The syntax is
KEYBOARD_KEY_$HEX_SYM=$CODE. A concrete example I use is
KEYBOARD_KEY_92=p. Then, to reload, run
udevadm hwdb --update and then
udevadm trigger --verbose --sysname-match="event*". Only works on gentoo.