[PATCH xkeyboard-config] Add evdev mappings for KEY_SOUND, KEY_UWB, KEY_WWAN and KEY_RFKILL
Hans de Goede
hdegoede at redhat.com
Mon May 15 07:07:39 UTC 2017
Hi,
On 15-05-17 08:50, Bastien Nocera wrote:
> Hey,
>
> Comments inline.
>
> On Mon, 2017-05-15 at 08:36 +0200, Hans de Goede wrote:
>> KEY_SOUND, KEY_WWAN and KEY_RFKILL are used on actual devices and
>> current xproto master defines keysyms for these. Add mappings for
>> these keys.
>>
>> The XF86UWB keysm exists for quite a while now, as does the KEY_SOUND
>
> "keysym has existed"
>
>> evdev code for it, so lets adds a mapping for that too.
>
> "let's add"
Thank you both fixed.
>
>> Note that this replaces the I255 to XF86Hibernate mapping in
>> xkb_symbols "evdev", I don't know where that came from, but it is
>> wrong, I255 was until now not defined in keycodes/evdev and
>> KEY_HIBERNATE is not defined in linux/input-event-codes.h .
>>
>> BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=100970
>> Cc: Bastien Nocera <hadess at hadess.net>
>> Cc: Benjamin Berg <bberg at redhat.com>
>> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
>> Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
>> ---
>> keycodes/evdev | 2 ++
>> symbols/inet | 7 ++++---
>> 2 files changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/keycodes/evdev b/keycodes/evdev
>> index 624ac68..51a6e26 100644
>> --- a/keycodes/evdev
>> +++ b/keycodes/evdev
>> @@ -281,6 +281,8 @@ default xkb_keycodes "evdev" {
>> <I251> = 251; // #define KEY_BRIGHTNESS_CYCLE 243
>> <I252> = 252; // #define KEY_BRIGHTNESS_ZERO 244
>> <I253> = 253; // #define KEY_DISPLAY_OFF 245
>> + <I254> = 254; // #define KEY_WWAN 246
>> + <I255> = 255; // #define KEY_RFKILL 247
>>
>> // Fake keycodes for virtual keys
>> <LVL3> = 92;
>> diff --git a/symbols/inet b/symbols/inet
>> index 5403e77..1e06aa9 100644
>> --- a/symbols/inet
>> +++ b/symbols/inet
>> @@ -184,7 +184,7 @@ xkb_symbols "evdev" {
>> key <I218> { [ Print ] };
>> // key <I219> { [ ] }; // KEY_HP
>> key <I220> { [ XF86WebCam ] };
>> -// key <I221> { [ ] }; // KEY_SOUND
>> + key <I221> { [ XF86AudioPreset ] };
>
> This is an existing keysym, but what does it correspond to?
From XF86keysym.h :
#define XF86XK_AudioPreset 0x1008FFB6 /* Select equalizer preset, e.g. theatre-mode */
I221 corresponds to KEY_SOUND which gets used in the kernel in
the following ways:
drivers/platform/x86/peaq-wmi.c:
Used for the Dolby button which under windows toggles through theater/game/speach/music mode.
drivers/media/rc/keymaps/rc-kworld-pc150u.c
73: { 0x48, KEY_SOUND}, /* switch theater mode */
drivers/media/rc/keymaps/rc-cec.c
67: { 0x33, KEY_SOUND }, /* CEC Spec: Sound Select */
drivers/media/rc/keymaps/rc-encore-enltv.c
74: { 0x4d, KEY_SOUND }, /* DVD sound */
>
>> // key <I222> { [ ] }; // KEY_QUESTION
>> key <I223> { [ XF86Mail ] };
>> key <I224> { [ XF86Messenger ] }; //
>> KEY_CHAT
>> @@ -210,13 +210,14 @@ xkb_symbols "evdev" {
>> key <I244> { [ XF86Battery ] };
>> key <I245> { [ XF86Bluetooth ] };
>> key <I246> { [ XF86WLAN ] };
>> + key <I247> { [ XF86UWB ] };
>
> Feels weird using up a slot for a key that toggles an obsolete wireless
> protocol...
The keycodes such as I247 are hardcoded to EV_FOO keycodes (with an
offset of 8) and the kernel has had:
#define KEY_UWB 239
For ages, so this is not taking a slot, it is merely adding a
mapping since both the keycode and the keysym have existed for
quite a while now.
>
>> // key <I249> { [ ] }; // KEY_VIDEO_NEXT -- drive
>> next video source
>> // key <I250> { [ ] }; // KEY_VIDEO_PREV -- drive
>> previous video source
>> // key <I251> { [ ] }; // KEY_BRIGHTNESS_CYCLE
>> -- bright up, max++ == min
>> // key <I252> { [ ] }; // KEY_BRIGHTNESS_ZERO
>> -- brightness off
>> // key <I253> { [ ] }; // KEY_DISPLAY_OFF -- turn
>> off display
>> -// key <I254> { [ ] }; // KEY_WIMAX
>> - key <I255> { [ XF86Hibernate ] }; //
>> KEY_HIBERNATE
>> + key <I254> { [ XF86WWAN ] }; //
>> KEY_WWAN
>> + key <I255> { [ XF86RFKill ] }; //
>> KEY_RFKILL
>>
>> key <FK13> { [ XF86Tools ] };
>> key <FK14> { [ XF86Launch5 ] };
>
> Cheers
>
Regards,
Hans
More information about the xorg-devel
mailing list