I'am trying to get the brightness control keys (fn + arrows) to work on Arch Linux x64.
So, i get a look into udev rule for my integrated ps/2 laptop keyboard using udevadm info
:
P: /devices/platform/i8042/serio0/input/input4/event4
N: input/event4
L: 0
S: input/by-path/platform-i8042-serio-0-event-kbd
E: DEVPATH=/devices/platform/i8042/serio0/input/input4/event4
E: DEVNAME=/dev/input/event4
E: MAJOR=13
E: MINOR=68
E: SUBSYSTEM=input
E: USEC_INITIALIZED=26133209
E: KEYBOARD_KEY_74=prog1
E: KEYBOARD_KEY_75=www
E: KEYBOARD_KEY_78=mail
E: KEYBOARD_KEY_82=!switchvideomode
E: KEYBOARD_KEY_83=!battery
E: KEYBOARD_KEY_84=!prog1
E: KEYBOARD_KEY_86=!wlan
E: KEYBOARD_KEY_88=!brightnessup
E: KEYBOARD_KEY_89=!brightnessdown
E: KEYBOARD_KEY_b1=!prog2
E: KEYBOARD_KEY_b3=!prog3
E: KEYBOARD_KEY_b4=!wlan
E: KEYBOARD_KEY_c5=!prog3
E: KEYBOARD_KEY_d5=!wlan
E: KEYBOARD_KEY_f7=!f22
E: KEYBOARD_KEY_f9=!f23
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_BUS=i8042
E: ID_SERIAL=noserial
E: ID_PATH=platform-i8042-serio-0
E: ID_PATH_TAG=platform-i8042-serio-0
E: LIBINPUT_DEVICE_GROUP=11/1/1:isa0060/serio0
E: DEVLINKS=/dev/input/by-path/platform-i8042-serio-0-event-kbd
E: TAGS=:power-switch:
The https://wiki.archlinux.org/index.php/Map_scancodes_to_keycodes says that syntax construction KEYBOARD_KEY_<scancode>=<keycode>
binds the keycode to scancode. List of available keycodes can be found here.
As we can see, 88 and 89 scancodes are binded (or not?) to brightness keycodes. This is absolutely correct - i trying to press brightness keys while running evtest
- and this generates 88 and 89 scancodes (but keycode information is missing). Pressing this keys while running journactl -f
prints next: atkbd serio0: Unknown key pressed (translated set 2, code 0x88 on isa0060/serio0).
So, the problem is, that i just don't understand, that does the "!" symbol mean before keycode? I can't find this syntax case in udev docs.
I guess that this construction unbinds the key from scancode - then I'm at a loss: why would the developer who wrote this rule unbinds this absolutelly correct keys?