this post was submitted on 23 Aug 2023
11 points (100.0% liked)
Linux
48003 readers
1304 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
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:
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.so this is the output for the fn+f2/3 "[32752.594169] atkbd serio0: Use 'setkeycodes e02b ' to make it known. [32752.599005] atkbd serio0: Unknown key released (translated set 2, code 0xab on isa0060/serio0)."
and the output for the closing lid "[32780.534749] atkbd serio0: Use 'setkeycodes e058 ' to make it known. [32780.538013] atkbd serio0: Unknown key released (translated set 2, code 0xd8 on isa0060/serio0)."
my question is isn't closing the lid is already assigned to "button/wlan WLAN 00000080 00000000 K" (output from acpi_listen)
"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."
basically how to actually do something like this MSC_KEY_d7=lid MSC_KEY_ab=brightness_thingies
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
thanks a lot that will certainly help