pastaq

joined 1 year ago
[–] pastaq@lemmy.ml 2 points 1 year ago (1 children)

You will notice that every keypress in evtest is also preceded by a KEY_MSC. This is just the evdev responding to a scancode. If the hwdb has this scancode pre-assigned in 60-keyboard.hwdb then it creates the EV_KEY event that is mapped. What you want to do is turn this EV_MSC into an EV_KEY by mapping the unknown scancode to a evdev event code using the hwdb file.

The arch wiki has a good article on how to map these scancodes and identify what keycode you want to map. It is generic enough that it should work for most distros. Read all of section 2, it goes into specific detail about your question.

https://wiki.archlinux.org/title/Map_scancodes_to_keycodes#Using_udev

[–] pastaq@lemmy.ml 3 points 1 year ago (3 children)

If you run sudo dmesg -w it should tell you the scancodes that each of those events is triggering. You can then create a /etc/udev/hwdb.d/50-my-device.hwdb file to map those scan codes to keycodes.

Here's an example of a .hwdb file I made for Ayaneo handhelds:

## AYANEO DEVICES
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnAYANEO:*
  KEYBOARD_KEY_66=f15
  KEYBOARD_KEY_67=f16
  KEYBOARD_KEY_68=f17

You can find the appropriate evdev:* information by running sudo udevadm test /dev/input/eventX where eventX is the evdev fd for the device in question. evtest will show you the names.

[–] pastaq@lemmy.ml 12 points 1 year ago

I'm fairly confident they were referring to the criticism from China FTA, but you'd need to read past the headline for that context so...

[–] pastaq@lemmy.ml 4 points 1 year ago

That's ageist.