xorgproto: Branch 'master' - 20 commits
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Feb 8 04:56:50 UTC 2021
.gitlab-ci.yml | 25 ++
README.md | 24 ++
include/X11/XF86keysym.h | 233 +++++++++++++++++++++++
meson.build | 5
scripts/keysym-generator.py | 429 ++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 713 insertions(+), 3 deletions(-)
New commits:
commit ea9cf61a1097ae2c8bebb5e967999a252f696835
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Feb 1 18:28:09 2021 +1000
XF86keysyms.h: add some keycodes from kernels 2.6.11 and earlier
These keysyms were already present in 2.6.11 which is the first tag in git.
A few notes on specific keys here:
- KEY_EJECTCLOSECD is theoretically different to XF86XK_Eject (kernel
KEY_EJECTCD) but the actual usage in the hwdb remappings seems to be
random. Either way it's already mapped to XF86XK_Eject in
symbols/inet so let's just add an entry for the sake of documenting it.
- XF86XK_CycleAngle seems like the best match for KEY_ANGLE
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index 73db273..358b55b 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -271,6 +271,7 @@
*
*/
#define _EVDEVK(_v) (0x10081000 + _v)
+/* Use: XF86XK_Eject _EVDEVK(0x0A2) KEY_EJECTCLOSECD */
/* Use: XF86XK_New _EVDEVK(0x0B5) v2.6.14 KEY_NEW */
/* Use: XK_Redo _EVDEVK(0x0B6) v2.6.14 KEY_REDO */
/* KEY_DASHBOARD has been mapped to LaunchB in xkeyboard-config since 2011 */
@@ -296,8 +297,18 @@
/* Use: XF86XK_WWAN _EVDEVK(0x0F6) v3.13 KEY_WWAN */
/* Use: XF86XK_RFKill _EVDEVK(0x0F7) v2.6.33 KEY_RFKILL */
/* Use: XF86XK_AudioMicMute _EVDEVK(0x0F8) v3.1 KEY_MICMUTE */
+#define XF86XK_Info _EVDEVK(0x166) /* KEY_INFO */
+/* Use: XF86XK_CycleAngle _EVDEVK(0x173) KEY_ANGLE */
/* Use: XF86XK_FullScreen _EVDEVK(0x174) v5.1 KEY_FULL_SCREEN */
#define XF86XK_AspectRatio _EVDEVK(0x177) /* v5.1 KEY_ASPECT_RATIO */
+#define XF86XK_DVD _EVDEVK(0x185) /* KEY_DVD */
+#define XF86XK_Audio _EVDEVK(0x188) /* KEY_AUDIO */
+/* Use: XF86XK_Video _EVDEVK(0x189) KEY_VIDEO */
+/* Use: XF86XK_Calendar _EVDEVK(0x18D) KEY_CALENDAR */
+#define XF86XK_ChannelUp _EVDEVK(0x192) /* KEY_CHANNELUP */
+#define XF86XK_ChannelDown _EVDEVK(0x193) /* KEY_CHANNELDOWN */
+/* Use: XF86XK_AudioRandomPlay _EVDEVK(0x19A) KEY_SHUFFLE */
+#define XF86XK_Break _EVDEVK(0x19B) /* KEY_BREAK */
#define XF86XK_VideoPhone _EVDEVK(0x1A0) /* v2.6.20 KEY_VIDEOPHONE */
/* Use: XF86XK_Game _EVDEVK(0x1A1) v2.6.20 KEY_GAMES */
/* Use: XF86XK_ZoomIn _EVDEVK(0x1A2) v2.6.20 KEY_ZOOMIN */
@@ -328,6 +339,8 @@
#define XF86XK_NotificationCenter _EVDEVK(0x1BC) /* v5.10 KEY_NOTIFICATION_CENTER */
#define XF86XK_PickupPhone _EVDEVK(0x1BD) /* v5.10 KEY_PICKUP_PHONE */
#define XF86XK_HangupPhone _EVDEVK(0x1BE) /* v5.10 KEY_HANGUP_PHONE */
+#define XF86XK_Fn _EVDEVK(0x1D0) /* KEY_FN */
+#define XF86XK_Fn_Esc _EVDEVK(0x1D1) /* KEY_FN_ESC */
#define XF86XK_FnRightShift _EVDEVK(0x1E5) /* v5.10 KEY_FN_RIGHT_SHIFT */
/* Use: XK_braille_dot_1 _EVDEVK(0x1F1) v2.6.17 KEY_BRL_DOT1 */
/* Use: XK_braille_dot_2 _EVDEVK(0x1F2) v2.6.17 KEY_BRL_DOT2 */
commit 577a56840bdf2ca7b7fd705deaad111d6e2f9754
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Feb 1 18:28:09 2021 +1000
XF86keysyms.h: add comments for some keycodes from 2.6.1x kernels
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index 4ba6410..73db273 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -271,8 +271,22 @@
*
*/
#define _EVDEVK(_v) (0x10081000 + _v)
+/* Use: XF86XK_New _EVDEVK(0x0B5) v2.6.14 KEY_NEW */
+/* Use: XK_Redo _EVDEVK(0x0B6) v2.6.14 KEY_REDO */
/* KEY_DASHBOARD has been mapped to LaunchB in xkeyboard-config since 2011 */
/* Use: XF86XK_LaunchB _EVDEVK(0x0CC) v2.6.28 KEY_DASHBOARD */
+/* Use: XF86XK_Display _EVDEVK(0x0E3) v2.6.12 KEY_SWITCHVIDEOMODE */
+/* Use: XF86XK_KbdLightOnOff _EVDEVK(0x0E4) v2.6.12 KEY_KBDILLUMTOGGLE */
+/* Use: XF86XK_KbdBrightnessDown _EVDEVK(0x0E5) v2.6.12 KEY_KBDILLUMDOWN */
+/* Use: XF86XK_KbdBrightnessUp _EVDEVK(0x0E6) v2.6.12 KEY_KBDILLUMUP */
+/* Use: XF86XK_Send _EVDEVK(0x0E7) v2.6.14 KEY_SEND */
+/* Use: XF86XK_Reply _EVDEVK(0x0E8) v2.6.14 KEY_REPLY */
+/* Use: XF86XK_MailForward _EVDEVK(0x0E9) v2.6.14 KEY_FORWARDMAIL */
+/* Use: XF86XK_Save _EVDEVK(0x0EA) v2.6.14 KEY_SAVE */
+/* Use: XF86XK_Documents _EVDEVK(0x0EB) v2.6.14 KEY_DOCUMENTS */
+/* Use: XF86XK_Battery _EVDEVK(0x0EC) v2.6.17 KEY_BATTERY */
+/* Use: XF86XK_Bluetooth _EVDEVK(0x0ED) v2.6.19 KEY_BLUETOOTH */
+/* Use: XF86XK_WLAN _EVDEVK(0x0EE) v2.6.19 KEY_WLAN */
/* Use: XF86XK_UWB _EVDEVK(0x0EF) v2.6.24 KEY_UWB */
/* Use: XF86XK_Next_VMode _EVDEVK(0x0F1) v2.6.23 KEY_VIDEO_NEXT */
/* Use: XF86XK_Prev_VMode _EVDEVK(0x0F2) v2.6.23 KEY_VIDEO_PREV */
@@ -315,6 +329,14 @@
#define XF86XK_PickupPhone _EVDEVK(0x1BD) /* v5.10 KEY_PICKUP_PHONE */
#define XF86XK_HangupPhone _EVDEVK(0x1BE) /* v5.10 KEY_HANGUP_PHONE */
#define XF86XK_FnRightShift _EVDEVK(0x1E5) /* v5.10 KEY_FN_RIGHT_SHIFT */
+/* Use: XK_braille_dot_1 _EVDEVK(0x1F1) v2.6.17 KEY_BRL_DOT1 */
+/* Use: XK_braille_dot_2 _EVDEVK(0x1F2) v2.6.17 KEY_BRL_DOT2 */
+/* Use: XK_braille_dot_3 _EVDEVK(0x1F3) v2.6.17 KEY_BRL_DOT3 */
+/* Use: XK_braille_dot_4 _EVDEVK(0x1F4) v2.6.17 KEY_BRL_DOT4 */
+/* Use: XK_braille_dot_5 _EVDEVK(0x1F5) v2.6.17 KEY_BRL_DOT5 */
+/* Use: XK_braille_dot_6 _EVDEVK(0x1F6) v2.6.17 KEY_BRL_DOT6 */
+/* Use: XK_braille_dot_7 _EVDEVK(0x1F7) v2.6.17 KEY_BRL_DOT7 */
+/* Use: XK_braille_dot_8 _EVDEVK(0x1F8) v2.6.17 KEY_BRL_DOT8 */
/* Use: XK_braille_dot_9 _EVDEVK(0x1F9) v2.6.23 KEY_BRL_DOT9 */
/* Use: XK_braille_dot_1 _EVDEVK(0x1FA) v2.6.23 KEY_BRL_DOT10 */
#define XF86XK_Numeric0 _EVDEVK(0x200) /* v2.6.28 KEY_NUMERIC_0 */
commit 941d3952d3fa11e0cf75acf28c580c9a9109c424
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Feb 1 18:28:09 2021 +1000
XF86keysyms.h: add some keycodes from 2.6.2x kernels
A few notes on specific keys here:
- Some existing keysyms used some brand names. e.g. KEY_WORDPROCESSOR ->
existing XF86XK_Word. This introduces some minor inconsistency with
unbranded new keys like KEY_GRAPHICSEDITOR -> XF86XK_GraphicsEditor.
- XF86XK_DisplayToggle is *not* XF86XK_Display (which represents
KEY_SWITCHVIDEOMODE)
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index ec47902..4ba6410 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -271,12 +271,43 @@
*
*/
#define _EVDEVK(_v) (0x10081000 + _v)
+/* KEY_DASHBOARD has been mapped to LaunchB in xkeyboard-config since 2011 */
+/* Use: XF86XK_LaunchB _EVDEVK(0x0CC) v2.6.28 KEY_DASHBOARD */
+/* Use: XF86XK_UWB _EVDEVK(0x0EF) v2.6.24 KEY_UWB */
+/* Use: XF86XK_Next_VMode _EVDEVK(0x0F1) v2.6.23 KEY_VIDEO_NEXT */
+/* Use: XF86XK_Prev_VMode _EVDEVK(0x0F2) v2.6.23 KEY_VIDEO_PREV */
+/* Use: XF86XK_MonBrightnessCycle _EVDEVK(0x0F3) v2.6.23 KEY_BRIGHTNESS_CYCLE */
#define XF86XK_BrightnessAuto _EVDEVK(0x0F4) /* v3.16 KEY_BRIGHTNESS_AUTO */
+#define XF86XK_DisplayOff _EVDEVK(0x0F5) /* v2.6.23 KEY_DISPLAY_OFF */
/* Use: XF86XK_WWAN _EVDEVK(0x0F6) v3.13 KEY_WWAN */
/* Use: XF86XK_RFKill _EVDEVK(0x0F7) v2.6.33 KEY_RFKILL */
/* Use: XF86XK_AudioMicMute _EVDEVK(0x0F8) v3.1 KEY_MICMUTE */
/* Use: XF86XK_FullScreen _EVDEVK(0x174) v5.1 KEY_FULL_SCREEN */
#define XF86XK_AspectRatio _EVDEVK(0x177) /* v5.1 KEY_ASPECT_RATIO */
+#define XF86XK_VideoPhone _EVDEVK(0x1A0) /* v2.6.20 KEY_VIDEOPHONE */
+/* Use: XF86XK_Game _EVDEVK(0x1A1) v2.6.20 KEY_GAMES */
+/* Use: XF86XK_ZoomIn _EVDEVK(0x1A2) v2.6.20 KEY_ZOOMIN */
+/* Use: XF86XK_ZoomOut _EVDEVK(0x1A3) v2.6.20 KEY_ZOOMOUT */
+#define XF86XK_ZoomReset _EVDEVK(0x1A4) /* v2.6.20 KEY_ZOOMRESET */
+/* Use: XF86XK_Word _EVDEVK(0x1A5) v2.6.20 KEY_WORDPROCESSOR */
+#define XF86XK_Editor _EVDEVK(0x1A6) /* v2.6.20 KEY_EDITOR */
+/* Use: XF86XK_Excel _EVDEVK(0x1A7) v2.6.20 KEY_SPREADSHEET */
+#define XF86XK_GraphicsEditor _EVDEVK(0x1A8) /* v2.6.20 KEY_GRAPHICSEDITOR */
+#define XF86XK_Presentation _EVDEVK(0x1A9) /* v2.6.20 KEY_PRESENTATION */
+#define XF86XK_Database _EVDEVK(0x1AA) /* v2.6.20 KEY_DATABASE */
+/* Use: XF86XK_News _EVDEVK(0x1AB) v2.6.20 KEY_NEWS */
+#define XF86XK_Voicemail _EVDEVK(0x1AC) /* v2.6.20 KEY_VOICEMAIL */
+#define XF86XK_Addressbook _EVDEVK(0x1AD) /* v2.6.20 KEY_ADDRESSBOOK */
+/* Use: XF86XK_Messenger _EVDEVK(0x1AE) v2.6.20 KEY_MESSENGER */
+#define XF86XK_DisplayToggle _EVDEVK(0x1AF) /* v2.6.20 KEY_DISPLAYTOGGLE */
+#define XF86XK_SpellCheck _EVDEVK(0x1B0) /* v2.6.24 KEY_SPELLCHECK */
+/* Use: XF86XK_LogOff _EVDEVK(0x1B1) v2.6.24 KEY_LOGOFF */
+/* Use: dollar _EVDEVK(0x1B2) v2.6.24 KEY_DOLLAR */
+/* Use: euro _EVDEVK(0x1B3) v2.6.24 KEY_EURO */
+/* Use: XF86XK_Frameback _EVDEVK(0x1B4) v2.6.24 KEY_FRAMEBACK */
+/* Use: XF86XK_Frameforward _EVDEVK(0x1B5) v2.6.24 KEY_FRAMEFORWARD */
+#define XF86XK_ContextMenu _EVDEVK(0x1B6) /* v2.6.24 KEY_CONTEXT_MENU */
+#define XF86XK_MediaRepeat _EVDEVK(0x1B7) /* v2.6.26 KEY_MEDIA_REPEAT */
#define XF86XK_10ChannelsUp _EVDEVK(0x1B8) /* v2.6.38 KEY_10CHANNELSUP */
#define XF86XK_10ChannelsDown _EVDEVK(0x1B9) /* v2.6.38 KEY_10CHANNELSDOWN */
#define XF86XK_Images _EVDEVK(0x1BA) /* v2.6.39 KEY_IMAGES */
@@ -284,6 +315,20 @@
#define XF86XK_PickupPhone _EVDEVK(0x1BD) /* v5.10 KEY_PICKUP_PHONE */
#define XF86XK_HangupPhone _EVDEVK(0x1BE) /* v5.10 KEY_HANGUP_PHONE */
#define XF86XK_FnRightShift _EVDEVK(0x1E5) /* v5.10 KEY_FN_RIGHT_SHIFT */
+/* Use: XK_braille_dot_9 _EVDEVK(0x1F9) v2.6.23 KEY_BRL_DOT9 */
+/* Use: XK_braille_dot_1 _EVDEVK(0x1FA) v2.6.23 KEY_BRL_DOT10 */
+#define XF86XK_Numeric0 _EVDEVK(0x200) /* v2.6.28 KEY_NUMERIC_0 */
+#define XF86XK_Numeric1 _EVDEVK(0x201) /* v2.6.28 KEY_NUMERIC_1 */
+#define XF86XK_Numeric2 _EVDEVK(0x202) /* v2.6.28 KEY_NUMERIC_2 */
+#define XF86XK_Numeric3 _EVDEVK(0x203) /* v2.6.28 KEY_NUMERIC_3 */
+#define XF86XK_Numeric4 _EVDEVK(0x204) /* v2.6.28 KEY_NUMERIC_4 */
+#define XF86XK_Numeric5 _EVDEVK(0x205) /* v2.6.28 KEY_NUMERIC_5 */
+#define XF86XK_Numeric6 _EVDEVK(0x206) /* v2.6.28 KEY_NUMERIC_6 */
+#define XF86XK_Numeric7 _EVDEVK(0x207) /* v2.6.28 KEY_NUMERIC_7 */
+#define XF86XK_Numeric8 _EVDEVK(0x208) /* v2.6.28 KEY_NUMERIC_8 */
+#define XF86XK_Numeric9 _EVDEVK(0x209) /* v2.6.28 KEY_NUMERIC_9 */
+#define XF86XK_NumericStar _EVDEVK(0x20A) /* v2.6.28 KEY_NUMERIC_STAR */
+#define XF86XK_NumericPound _EVDEVK(0x20B) /* v2.6.28 KEY_NUMERIC_POUND */
#define XF86XK_NumericA _EVDEVK(0x20C) /* v4.1 KEY_NUMERIC_A */
#define XF86XK_NumericB _EVDEVK(0x20D) /* v4.1 KEY_NUMERIC_B */
#define XF86XK_NumericC _EVDEVK(0x20E) /* v4.1 KEY_NUMERIC_C */
commit 7f2093198506290168f392063db014265be20c67
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Feb 1 18:28:09 2021 +1000
XF86keysyms.h: add some keycodes from 2.6.3x kernels
A few notes on specific keys here:
- There are exiting XF86XK_ZoomIn/Out keys, but they don't seem appropriate
for KEY_CAMERA_ZOOMIN and friends. New symbols are introduced here.
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index 019f0a3..ec47902 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -273,9 +273,13 @@
#define _EVDEVK(_v) (0x10081000 + _v)
#define XF86XK_BrightnessAuto _EVDEVK(0x0F4) /* v3.16 KEY_BRIGHTNESS_AUTO */
/* Use: XF86XK_WWAN _EVDEVK(0x0F6) v3.13 KEY_WWAN */
+/* Use: XF86XK_RFKill _EVDEVK(0x0F7) v2.6.33 KEY_RFKILL */
/* Use: XF86XK_AudioMicMute _EVDEVK(0x0F8) v3.1 KEY_MICMUTE */
/* Use: XF86XK_FullScreen _EVDEVK(0x174) v5.1 KEY_FULL_SCREEN */
#define XF86XK_AspectRatio _EVDEVK(0x177) /* v5.1 KEY_ASPECT_RATIO */
+#define XF86XK_10ChannelsUp _EVDEVK(0x1B8) /* v2.6.38 KEY_10CHANNELSUP */
+#define XF86XK_10ChannelsDown _EVDEVK(0x1B9) /* v2.6.38 KEY_10CHANNELSDOWN */
+#define XF86XK_Images _EVDEVK(0x1BA) /* v2.6.39 KEY_IMAGES */
#define XF86XK_NotificationCenter _EVDEVK(0x1BC) /* v5.10 KEY_NOTIFICATION_CENTER */
#define XF86XK_PickupPhone _EVDEVK(0x1BD) /* v5.10 KEY_PICKUP_PHONE */
#define XF86XK_HangupPhone _EVDEVK(0x1BE) /* v5.10 KEY_HANGUP_PHONE */
@@ -284,6 +288,17 @@
#define XF86XK_NumericB _EVDEVK(0x20D) /* v4.1 KEY_NUMERIC_B */
#define XF86XK_NumericC _EVDEVK(0x20E) /* v4.1 KEY_NUMERIC_C */
#define XF86XK_NumericD _EVDEVK(0x20F) /* v4.1 KEY_NUMERIC_D */
+#define XF86XK_CameraFocus _EVDEVK(0x210) /* v2.6.33 KEY_CAMERA_FOCUS */
+#define XF86XK_WPSButton _EVDEVK(0x211) /* v2.6.34 KEY_WPS_BUTTON */
+/* Use: XF86XK_TouchpadToggle _EVDEVK(0x212) v2.6.37 KEY_TOUCHPAD_TOGGLE */
+/* Use: XF86XK_TouchpadOn _EVDEVK(0x213) v2.6.37 KEY_TOUCHPAD_ON */
+/* Use: XF86XK_TouchpadOff _EVDEVK(0x214) v2.6.37 KEY_TOUCHPAD_OFF */
+#define XF86XK_CameraZoomIn _EVDEVK(0x215) /* v2.6.39 KEY_CAMERA_ZOOMIN */
+#define XF86XK_CameraZoomOut _EVDEVK(0x216) /* v2.6.39 KEY_CAMERA_ZOOMOUT */
+#define XF86XK_CameraUp _EVDEVK(0x217) /* v2.6.39 KEY_CAMERA_UP */
+#define XF86XK_CameraDown _EVDEVK(0x218) /* v2.6.39 KEY_CAMERA_DOWN */
+#define XF86XK_CameraLeft _EVDEVK(0x219) /* v2.6.39 KEY_CAMERA_LEFT */
+#define XF86XK_CameraRight _EVDEVK(0x21A) /* v2.6.39 KEY_CAMERA_RIGHT */
#define XF86XK_AttendantOn _EVDEVK(0x21B) /* v3.10 KEY_ATTENDANT_ON */
#define XF86XK_AttendantOff _EVDEVK(0x21C) /* v3.10 KEY_ATTENDANT_OFF */
#define XF86XK_AttendantToggle _EVDEVK(0x21D) /* v3.10 KEY_ATTENDANT_TOGGLE */
commit c52d104fdcbf3653f94b8253b5edbcf4e5844fba
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Feb 1 18:28:09 2021 +1000
XF86keysyms.h: add comment for new keycodes from kernel v3.1
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index 946c2e8..019f0a3 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -273,6 +273,7 @@
#define _EVDEVK(_v) (0x10081000 + _v)
#define XF86XK_BrightnessAuto _EVDEVK(0x0F4) /* v3.16 KEY_BRIGHTNESS_AUTO */
/* Use: XF86XK_WWAN _EVDEVK(0x0F6) v3.13 KEY_WWAN */
+/* Use: XF86XK_AudioMicMute _EVDEVK(0x0F8) v3.1 KEY_MICMUTE */
/* Use: XF86XK_FullScreen _EVDEVK(0x174) v5.1 KEY_FULL_SCREEN */
#define XF86XK_AspectRatio _EVDEVK(0x177) /* v5.1 KEY_ASPECT_RATIO */
#define XF86XK_NotificationCenter _EVDEVK(0x1BC) /* v5.10 KEY_NOTIFICATION_CENTER */
commit 5ffc4c4baa43bcb005d9a8e67f1943bfddf2697c
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Feb 1 18:28:09 2021 +1000
XF86keysyms.h: add new keycodes from kernel v3.10
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index 2f9853a..946c2e8 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -283,6 +283,10 @@
#define XF86XK_NumericB _EVDEVK(0x20D) /* v4.1 KEY_NUMERIC_B */
#define XF86XK_NumericC _EVDEVK(0x20E) /* v4.1 KEY_NUMERIC_C */
#define XF86XK_NumericD _EVDEVK(0x20F) /* v4.1 KEY_NUMERIC_D */
+#define XF86XK_AttendantOn _EVDEVK(0x21B) /* v3.10 KEY_ATTENDANT_ON */
+#define XF86XK_AttendantOff _EVDEVK(0x21C) /* v3.10 KEY_ATTENDANT_OFF */
+#define XF86XK_AttendantToggle _EVDEVK(0x21D) /* v3.10 KEY_ATTENDANT_TOGGLE */
+#define XF86XK_LightsToggle _EVDEVK(0x21E) /* v3.10 KEY_LIGHTS_TOGGLE */
#define XF86XK_ALSToggle _EVDEVK(0x230) /* v3.13 KEY_ALS_TOGGLE */
/* Use: XF86XK_RotationLockToggle _EVDEVK(0x231) v4.16 KEY_ROTATE_LOCK_TOGGLE */
#define XF86XK_Buttonconfig _EVDEVK(0x240) /* v3.16 KEY_BUTTONCONFIG */
commit 0519088bc605a6db2f392492c992107a159eecac
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Feb 1 18:28:09 2021 +1000
XF86keysyms.h: add new keycodes from kernel v3.13
ALSToggle has a terrible name, it's the Ambient Light Sensor. But it matches
the kernel define so...
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index 219e50f..2f9853a 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -272,6 +272,7 @@
*/
#define _EVDEVK(_v) (0x10081000 + _v)
#define XF86XK_BrightnessAuto _EVDEVK(0x0F4) /* v3.16 KEY_BRIGHTNESS_AUTO */
+/* Use: XF86XK_WWAN _EVDEVK(0x0F6) v3.13 KEY_WWAN */
/* Use: XF86XK_FullScreen _EVDEVK(0x174) v5.1 KEY_FULL_SCREEN */
#define XF86XK_AspectRatio _EVDEVK(0x177) /* v5.1 KEY_ASPECT_RATIO */
#define XF86XK_NotificationCenter _EVDEVK(0x1BC) /* v5.10 KEY_NOTIFICATION_CENTER */
@@ -282,6 +283,7 @@
#define XF86XK_NumericB _EVDEVK(0x20D) /* v4.1 KEY_NUMERIC_B */
#define XF86XK_NumericC _EVDEVK(0x20E) /* v4.1 KEY_NUMERIC_C */
#define XF86XK_NumericD _EVDEVK(0x20F) /* v4.1 KEY_NUMERIC_D */
+#define XF86XK_ALSToggle _EVDEVK(0x230) /* v3.13 KEY_ALS_TOGGLE */
/* Use: XF86XK_RotationLockToggle _EVDEVK(0x231) v4.16 KEY_ROTATE_LOCK_TOGGLE */
#define XF86XK_Buttonconfig _EVDEVK(0x240) /* v3.16 KEY_BUTTONCONFIG */
#define XF86XK_Taskmanager _EVDEVK(0x241) /* v3.16 KEY_TASKMANAGER */
commit 7dbe7b7a36b7a1896a0e32db2b1c160cb80247a1
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Feb 1 18:28:09 2021 +1000
XF86keysyms.h: add new keycodes from kernel v3.16
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index a76252b..219e50f 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -271,6 +271,7 @@
*
*/
#define _EVDEVK(_v) (0x10081000 + _v)
+#define XF86XK_BrightnessAuto _EVDEVK(0x0F4) /* v3.16 KEY_BRIGHTNESS_AUTO */
/* Use: XF86XK_FullScreen _EVDEVK(0x174) v5.1 KEY_FULL_SCREEN */
#define XF86XK_AspectRatio _EVDEVK(0x177) /* v5.1 KEY_ASPECT_RATIO */
#define XF86XK_NotificationCenter _EVDEVK(0x1BC) /* v5.10 KEY_NOTIFICATION_CENTER */
@@ -282,8 +283,17 @@
#define XF86XK_NumericC _EVDEVK(0x20E) /* v4.1 KEY_NUMERIC_C */
#define XF86XK_NumericD _EVDEVK(0x20F) /* v4.1 KEY_NUMERIC_D */
/* Use: XF86XK_RotationLockToggle _EVDEVK(0x231) v4.16 KEY_ROTATE_LOCK_TOGGLE */
+#define XF86XK_Buttonconfig _EVDEVK(0x240) /* v3.16 KEY_BUTTONCONFIG */
+#define XF86XK_Taskmanager _EVDEVK(0x241) /* v3.16 KEY_TASKMANAGER */
+#define XF86XK_Journal _EVDEVK(0x242) /* v3.16 KEY_JOURNAL */
+#define XF86XK_ControlPanel _EVDEVK(0x243) /* v3.16 KEY_CONTROLPANEL */
+#define XF86XK_AppSelect _EVDEVK(0x244) /* v3.16 KEY_APPSELECT */
+#define XF86XK_Screensaver _EVDEVK(0x245) /* v3.16 KEY_SCREENSAVER */
+#define XF86XK_VoiceCommand _EVDEVK(0x246) /* v3.16 KEY_VOICECOMMAND */
#define XF86XK_Assistant _EVDEVK(0x247) /* v4.13 KEY_ASSISTANT */
/* Use: ISO_Next_Group _EVDEVK(0x248) v5.2 KEY_KBD_LAYOUT_NEXT */
+#define XF86XK_BrightnessMin _EVDEVK(0x250) /* v3.16 KEY_BRIGHTNESS_MIN */
+#define XF86XK_BrightnessMax _EVDEVK(0x251) /* v3.16 KEY_BRIGHTNESS_MAX */
#define XF86XK_KbdInputAssistPrev _EVDEVK(0x260) /* v3.18 KEY_KBDINPUTASSIST_PREV */
#define XF86XK_KbdInputAssistNext _EVDEVK(0x261) /* v3.18 KEY_KBDINPUTASSIST_NEXT */
#define XF86XK_KbdInputAssistPrevgroup _EVDEVK(0x262) /* v3.18 KEY_KBDINPUTASSIST_PREVGROUP */
commit ef0e6b8e21d008104f934ad818d2e6b4184f581a
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Feb 1 18:28:09 2021 +1000
XF86keysyms.h: add new keycodes from kernel v3.18
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index 92358ee..a76252b 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -284,6 +284,12 @@
/* Use: XF86XK_RotationLockToggle _EVDEVK(0x231) v4.16 KEY_ROTATE_LOCK_TOGGLE */
#define XF86XK_Assistant _EVDEVK(0x247) /* v4.13 KEY_ASSISTANT */
/* Use: ISO_Next_Group _EVDEVK(0x248) v5.2 KEY_KBD_LAYOUT_NEXT */
+#define XF86XK_KbdInputAssistPrev _EVDEVK(0x260) /* v3.18 KEY_KBDINPUTASSIST_PREV */
+#define XF86XK_KbdInputAssistNext _EVDEVK(0x261) /* v3.18 KEY_KBDINPUTASSIST_NEXT */
+#define XF86XK_KbdInputAssistPrevgroup _EVDEVK(0x262) /* v3.18 KEY_KBDINPUTASSIST_PREVGROUP */
+#define XF86XK_KbdInputAssistNextgroup _EVDEVK(0x263) /* v3.18 KEY_KBDINPUTASSIST_NEXTGROUP */
+#define XF86XK_KbdInputAssistAccept _EVDEVK(0x264) /* v3.18 KEY_KBDINPUTASSIST_ACCEPT */
+#define XF86XK_KbdInputAssistCancel _EVDEVK(0x265) /* v3.18 KEY_KBDINPUTASSIST_CANCEL */
#define XF86XK_RightUp _EVDEVK(0x266) /* v4.7 KEY_RIGHT_UP */
#define XF86XK_RightDown _EVDEVK(0x267) /* v4.7 KEY_RIGHT_DOWN */
#define XF86XK_LeftUp _EVDEVK(0x268) /* v4.7 KEY_LEFT_UP */
commit caca9d41b26cf0e29879ba1b94aa3751bda01652
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Feb 1 18:28:09 2021 +1000
XF86keysyms.h: add new keycodes from kernel v4.1
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index d8c7590..92358ee 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -277,6 +277,10 @@
#define XF86XK_PickupPhone _EVDEVK(0x1BD) /* v5.10 KEY_PICKUP_PHONE */
#define XF86XK_HangupPhone _EVDEVK(0x1BE) /* v5.10 KEY_HANGUP_PHONE */
#define XF86XK_FnRightShift _EVDEVK(0x1E5) /* v5.10 KEY_FN_RIGHT_SHIFT */
+#define XF86XK_NumericA _EVDEVK(0x20C) /* v4.1 KEY_NUMERIC_A */
+#define XF86XK_NumericB _EVDEVK(0x20D) /* v4.1 KEY_NUMERIC_B */
+#define XF86XK_NumericC _EVDEVK(0x20E) /* v4.1 KEY_NUMERIC_C */
+#define XF86XK_NumericD _EVDEVK(0x20F) /* v4.1 KEY_NUMERIC_D */
/* Use: XF86XK_RotationLockToggle _EVDEVK(0x231) v4.16 KEY_ROTATE_LOCK_TOGGLE */
#define XF86XK_Assistant _EVDEVK(0x247) /* v4.13 KEY_ASSISTANT */
/* Use: ISO_Next_Group _EVDEVK(0x248) v5.2 KEY_KBD_LAYOUT_NEXT */
commit 0f8b4d48b9727ec6cacdb0feb9cb84138ef056ee
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Feb 1 18:28:09 2021 +1000
XF86keysyms.h: add new keycodes from kernel v4.7
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index 582102a..d8c7590 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -280,6 +280,24 @@
/* Use: XF86XK_RotationLockToggle _EVDEVK(0x231) v4.16 KEY_ROTATE_LOCK_TOGGLE */
#define XF86XK_Assistant _EVDEVK(0x247) /* v4.13 KEY_ASSISTANT */
/* Use: ISO_Next_Group _EVDEVK(0x248) v5.2 KEY_KBD_LAYOUT_NEXT */
+#define XF86XK_RightUp _EVDEVK(0x266) /* v4.7 KEY_RIGHT_UP */
+#define XF86XK_RightDown _EVDEVK(0x267) /* v4.7 KEY_RIGHT_DOWN */
+#define XF86XK_LeftUp _EVDEVK(0x268) /* v4.7 KEY_LEFT_UP */
+#define XF86XK_LeftDown _EVDEVK(0x269) /* v4.7 KEY_LEFT_DOWN */
+#define XF86XK_RootMenu _EVDEVK(0x26A) /* v4.7 KEY_ROOT_MENU */
+#define XF86XK_MediaTopMenu _EVDEVK(0x26B) /* v4.7 KEY_MEDIA_TOP_MENU */
+#define XF86XK_Numeric11 _EVDEVK(0x26C) /* v4.7 KEY_NUMERIC_11 */
+#define XF86XK_Numeric12 _EVDEVK(0x26D) /* v4.7 KEY_NUMERIC_12 */
+#define XF86XK_AudioDesc _EVDEVK(0x26E) /* v4.7 KEY_AUDIO_DESC */
+#define XF86XK_3DMode _EVDEVK(0x26F) /* v4.7 KEY_3D_MODE */
+#define XF86XK_NextFavorite _EVDEVK(0x270) /* v4.7 KEY_NEXT_FAVORITE */
+#define XF86XK_StopRecord _EVDEVK(0x271) /* v4.7 KEY_STOP_RECORD */
+#define XF86XK_PauseRecord _EVDEVK(0x272) /* v4.7 KEY_PAUSE_RECORD */
+#define XF86XK_VOD _EVDEVK(0x273) /* v4.7 KEY_VOD */
+#define XF86XK_Unmute _EVDEVK(0x274) /* v4.7 KEY_UNMUTE */
+#define XF86XK_FastReverse _EVDEVK(0x275) /* v4.7 KEY_FASTREVERSE */
+#define XF86XK_SlowReverse _EVDEVK(0x276) /* v4.7 KEY_SLOWREVERSE */
+#define XF86XK_Data _EVDEVK(0x277) /* v4.7 KEY_DATA */
#define XF86XK_OnScreenKeyboard _EVDEVK(0x278) /* v4.12 KEY_ONSCREEN_KEYBOARD */
#define XF86XK_PrivacyScreenToggle _EVDEVK(0x279) /* v5.5 KEY_PRIVACY_SCREEN_TOGGLE */
#define XF86XK_SelectiveScreenshot _EVDEVK(0x27A) /* v5.6 KEY_SELECTIVE_SCREENSHOT */
commit 9b54c3c5391eaec9cbf699cf432fd33c35d19f68
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Feb 1 18:28:09 2021 +1000
XF86keysyms.h: add new keycodes from kernel v4.12
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index df854da..582102a 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -280,6 +280,7 @@
/* Use: XF86XK_RotationLockToggle _EVDEVK(0x231) v4.16 KEY_ROTATE_LOCK_TOGGLE */
#define XF86XK_Assistant _EVDEVK(0x247) /* v4.13 KEY_ASSISTANT */
/* Use: ISO_Next_Group _EVDEVK(0x248) v5.2 KEY_KBD_LAYOUT_NEXT */
+#define XF86XK_OnScreenKeyboard _EVDEVK(0x278) /* v4.12 KEY_ONSCREEN_KEYBOARD */
#define XF86XK_PrivacyScreenToggle _EVDEVK(0x279) /* v5.5 KEY_PRIVACY_SCREEN_TOGGLE */
#define XF86XK_SelectiveScreenshot _EVDEVK(0x27A) /* v5.6 KEY_SELECTIVE_SCREENSHOT */
#define XF86XK_Macro1 _EVDEVK(0x290) /* v5.5 KEY_MACRO1 */
commit 58f5208d87f99145105f5920131a80635d1ef821
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Feb 1 18:28:09 2021 +1000
XF86keysyms.h: add new keycodes from kernel v4.13
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index 3932cd5..df854da 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -278,6 +278,7 @@
#define XF86XK_HangupPhone _EVDEVK(0x1BE) /* v5.10 KEY_HANGUP_PHONE */
#define XF86XK_FnRightShift _EVDEVK(0x1E5) /* v5.10 KEY_FN_RIGHT_SHIFT */
/* Use: XF86XK_RotationLockToggle _EVDEVK(0x231) v4.16 KEY_ROTATE_LOCK_TOGGLE */
+#define XF86XK_Assistant _EVDEVK(0x247) /* v4.13 KEY_ASSISTANT */
/* Use: ISO_Next_Group _EVDEVK(0x248) v5.2 KEY_KBD_LAYOUT_NEXT */
#define XF86XK_PrivacyScreenToggle _EVDEVK(0x279) /* v5.5 KEY_PRIVACY_SCREEN_TOGGLE */
#define XF86XK_SelectiveScreenshot _EVDEVK(0x27A) /* v5.6 KEY_SELECTIVE_SCREENSHOT */
commit 8ad9743ccd209314d7c05b892720b1eca9f72a11
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Wed Jan 20 15:43:26 2021 +1000
XF86keysyms.h: add comment for new keycodes from kernel v4.16
This keysym is already available under a different name, see
https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/commit/000ebed576aafb44caeea8b6a5de90fba2bdc389
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index 11b1843..3932cd5 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -277,6 +277,7 @@
#define XF86XK_PickupPhone _EVDEVK(0x1BD) /* v5.10 KEY_PICKUP_PHONE */
#define XF86XK_HangupPhone _EVDEVK(0x1BE) /* v5.10 KEY_HANGUP_PHONE */
#define XF86XK_FnRightShift _EVDEVK(0x1E5) /* v5.10 KEY_FN_RIGHT_SHIFT */
+/* Use: XF86XK_RotationLockToggle _EVDEVK(0x231) v4.16 KEY_ROTATE_LOCK_TOGGLE */
/* Use: ISO_Next_Group _EVDEVK(0x248) v5.2 KEY_KBD_LAYOUT_NEXT */
#define XF86XK_PrivacyScreenToggle _EVDEVK(0x279) /* v5.5 KEY_PRIVACY_SCREEN_TOGGLE */
#define XF86XK_SelectiveScreenshot _EVDEVK(0x27A) /* v5.6 KEY_SELECTIVE_SCREENSHOT */
commit 8ed8a8064be6cc45f17689651d5bc450747c0e49
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Feb 1 18:28:09 2021 +1000
XF86keysyms.h: add new keycodes from kernel v5.1
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index 1b36270..11b1843 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -271,6 +271,8 @@
*
*/
#define _EVDEVK(_v) (0x10081000 + _v)
+/* Use: XF86XK_FullScreen _EVDEVK(0x174) v5.1 KEY_FULL_SCREEN */
+#define XF86XK_AspectRatio _EVDEVK(0x177) /* v5.1 KEY_ASPECT_RATIO */
#define XF86XK_NotificationCenter _EVDEVK(0x1BC) /* v5.10 KEY_NOTIFICATION_CENTER */
#define XF86XK_PickupPhone _EVDEVK(0x1BD) /* v5.10 KEY_PICKUP_PHONE */
#define XF86XK_HangupPhone _EVDEVK(0x1BE) /* v5.10 KEY_HANGUP_PHONE */
commit 901330ae05a3f55d42ad32d27a39dbbdb79e3abc
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Feb 1 18:28:09 2021 +1000
XF86keysyms.h: add new keycodes from kernel v5.2
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index 380b9e1..1b36270 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -275,6 +275,7 @@
#define XF86XK_PickupPhone _EVDEVK(0x1BD) /* v5.10 KEY_PICKUP_PHONE */
#define XF86XK_HangupPhone _EVDEVK(0x1BE) /* v5.10 KEY_HANGUP_PHONE */
#define XF86XK_FnRightShift _EVDEVK(0x1E5) /* v5.10 KEY_FN_RIGHT_SHIFT */
+/* Use: ISO_Next_Group _EVDEVK(0x248) v5.2 KEY_KBD_LAYOUT_NEXT */
#define XF86XK_PrivacyScreenToggle _EVDEVK(0x279) /* v5.5 KEY_PRIVACY_SCREEN_TOGGLE */
#define XF86XK_SelectiveScreenshot _EVDEVK(0x27A) /* v5.6 KEY_SELECTIVE_SCREENSHOT */
#define XF86XK_Macro1 _EVDEVK(0x290) /* v5.5 KEY_MACRO1 */
commit b87f02fe154a87c4b2574435d1b83169aa5b6370
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Wed Jan 20 15:42:49 2021 +1000
XF86keysyms.h: add new keycodes from kernel v5.5
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index b5c399b..380b9e1 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -275,5 +275,47 @@
#define XF86XK_PickupPhone _EVDEVK(0x1BD) /* v5.10 KEY_PICKUP_PHONE */
#define XF86XK_HangupPhone _EVDEVK(0x1BE) /* v5.10 KEY_HANGUP_PHONE */
#define XF86XK_FnRightShift _EVDEVK(0x1E5) /* v5.10 KEY_FN_RIGHT_SHIFT */
+#define XF86XK_PrivacyScreenToggle _EVDEVK(0x279) /* v5.5 KEY_PRIVACY_SCREEN_TOGGLE */
#define XF86XK_SelectiveScreenshot _EVDEVK(0x27A) /* v5.6 KEY_SELECTIVE_SCREENSHOT */
+#define XF86XK_Macro1 _EVDEVK(0x290) /* v5.5 KEY_MACRO1 */
+#define XF86XK_Macro2 _EVDEVK(0x291) /* v5.5 KEY_MACRO2 */
+#define XF86XK_Macro3 _EVDEVK(0x292) /* v5.5 KEY_MACRO3 */
+#define XF86XK_Macro4 _EVDEVK(0x293) /* v5.5 KEY_MACRO4 */
+#define XF86XK_Macro5 _EVDEVK(0x294) /* v5.5 KEY_MACRO5 */
+#define XF86XK_Macro6 _EVDEVK(0x295) /* v5.5 KEY_MACRO6 */
+#define XF86XK_Macro7 _EVDEVK(0x296) /* v5.5 KEY_MACRO7 */
+#define XF86XK_Macro8 _EVDEVK(0x297) /* v5.5 KEY_MACRO8 */
+#define XF86XK_Macro9 _EVDEVK(0x298) /* v5.5 KEY_MACRO9 */
+#define XF86XK_Macro10 _EVDEVK(0x299) /* v5.5 KEY_MACRO10 */
+#define XF86XK_Macro11 _EVDEVK(0x29A) /* v5.5 KEY_MACRO11 */
+#define XF86XK_Macro12 _EVDEVK(0x29B) /* v5.5 KEY_MACRO12 */
+#define XF86XK_Macro13 _EVDEVK(0x29C) /* v5.5 KEY_MACRO13 */
+#define XF86XK_Macro14 _EVDEVK(0x29D) /* v5.5 KEY_MACRO14 */
+#define XF86XK_Macro15 _EVDEVK(0x29E) /* v5.5 KEY_MACRO15 */
+#define XF86XK_Macro16 _EVDEVK(0x29F) /* v5.5 KEY_MACRO16 */
+#define XF86XK_Macro17 _EVDEVK(0x2A0) /* v5.5 KEY_MACRO17 */
+#define XF86XK_Macro18 _EVDEVK(0x2A1) /* v5.5 KEY_MACRO18 */
+#define XF86XK_Macro19 _EVDEVK(0x2A2) /* v5.5 KEY_MACRO19 */
+#define XF86XK_Macro20 _EVDEVK(0x2A3) /* v5.5 KEY_MACRO20 */
+#define XF86XK_Macro21 _EVDEVK(0x2A4) /* v5.5 KEY_MACRO21 */
+#define XF86XK_Macro22 _EVDEVK(0x2A5) /* v5.5 KEY_MACRO22 */
+#define XF86XK_Macro23 _EVDEVK(0x2A6) /* v5.5 KEY_MACRO23 */
+#define XF86XK_Macro24 _EVDEVK(0x2A7) /* v5.5 KEY_MACRO24 */
+#define XF86XK_Macro25 _EVDEVK(0x2A8) /* v5.5 KEY_MACRO25 */
+#define XF86XK_Macro26 _EVDEVK(0x2A9) /* v5.5 KEY_MACRO26 */
+#define XF86XK_Macro27 _EVDEVK(0x2AA) /* v5.5 KEY_MACRO27 */
+#define XF86XK_Macro28 _EVDEVK(0x2AB) /* v5.5 KEY_MACRO28 */
+#define XF86XK_Macro29 _EVDEVK(0x2AC) /* v5.5 KEY_MACRO29 */
+#define XF86XK_Macro30 _EVDEVK(0x2AD) /* v5.5 KEY_MACRO30 */
+#define XF86XK_MacroRecordStart _EVDEVK(0x2B0) /* v5.5 KEY_MACRO_RECORD_START */
+#define XF86XK_MacroRecordStop _EVDEVK(0x2B1) /* v5.5 KEY_MACRO_RECORD_STOP */
+#define XF86XK_MacroPresetCycle _EVDEVK(0x2B2) /* v5.5 KEY_MACRO_PRESET_CYCLE */
+#define XF86XK_MacroPreset1 _EVDEVK(0x2B3) /* v5.5 KEY_MACRO_PRESET1 */
+#define XF86XK_MacroPreset2 _EVDEVK(0x2B4) /* v5.5 KEY_MACRO_PRESET2 */
+#define XF86XK_MacroPreset3 _EVDEVK(0x2B5) /* v5.5 KEY_MACRO_PRESET3 */
+#define XF86XK_KbdLcdMenu1 _EVDEVK(0x2B8) /* v5.5 KEY_KBD_LCD_MENU1 */
+#define XF86XK_KbdLcdMenu2 _EVDEVK(0x2B9) /* v5.5 KEY_KBD_LCD_MENU2 */
+#define XF86XK_KbdLcdMenu3 _EVDEVK(0x2BA) /* v5.5 KEY_KBD_LCD_MENU3 */
+#define XF86XK_KbdLcdMenu4 _EVDEVK(0x2BB) /* v5.5 KEY_KBD_LCD_MENU4 */
+#define XF86XK_KbdLcdMenu5 _EVDEVK(0x2BC) /* v5.5 KEY_KBD_LCD_MENU5 */
#undef _EVDEVK
commit d110d97e34aefd249aac90e7640755fc69fe5d4c
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Wed Jan 20 15:40:39 2021 +1000
XF86keysyms.h: add new keycodes from kernel v5.6
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index b485b2a..b5c399b 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -275,4 +275,5 @@
#define XF86XK_PickupPhone _EVDEVK(0x1BD) /* v5.10 KEY_PICKUP_PHONE */
#define XF86XK_HangupPhone _EVDEVK(0x1BE) /* v5.10 KEY_HANGUP_PHONE */
#define XF86XK_FnRightShift _EVDEVK(0x1E5) /* v5.10 KEY_FN_RIGHT_SHIFT */
+#define XF86XK_SelectiveScreenshot _EVDEVK(0x27A) /* v5.6 KEY_SELECTIVE_SCREENSHOT */
#undef _EVDEVK
commit c833b7c0e9ed517a606a4e623db3e7a4ee2c4889
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Wed Jan 20 15:35:32 2021 +1000
XF86keysyms.h: add new keycodes from kernel v5.10
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index 26f9c39..b485b2a 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -271,4 +271,8 @@
*
*/
#define _EVDEVK(_v) (0x10081000 + _v)
+#define XF86XK_NotificationCenter _EVDEVK(0x1BC) /* v5.10 KEY_NOTIFICATION_CENTER */
+#define XF86XK_PickupPhone _EVDEVK(0x1BD) /* v5.10 KEY_PICKUP_PHONE */
+#define XF86XK_HangupPhone _EVDEVK(0x1BE) /* v5.10 KEY_HANGUP_PHONE */
+#define XF86XK_FnRightShift _EVDEVK(0x1E5) /* v5.10 KEY_FN_RIGHT_SHIFT */
#undef _EVDEVK
commit 5dbb5b76597f434ec91cfcde0750de8157c0bbf5
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Jan 18 11:37:39 2021 +1000
XF86keysym.h: reserve a range for Linux kernel keysyms
The Linux kernel adds a few evdev keycodes roughly every other release. These
aren't available as keysyms through XKB until they have been added as keycode
in xkeyboard-config and mapped there to a newly defined keysym in the X11
proto headers.
In the past, this was done manually, a suitable keysym was picked at
random and the mapping updated accordingly. This doesn't scale very well and,
given we have a large reserved range for XF86 keysyms anyway, can be done
easier.
Let's reserve the range 0x10081XXX range for a 1:1 mapping of Linux kernel
codes. That's 4095 values, the kernel currently uses only 767 anyway. The
lower 3 bytes of keysyms within that range have to match the kernel value to
make them easy to add and search for. Nothing in X must care about the actual
keysym value anyway.
Since we expect this to be parsed by other scripts for automatic updating, the
format of those #defines is quite strict. Add a script to generate keycodes as
well as verify that the existing ones match the current expected format.
The script is integrated into the CI and meson test, so we will fail if an
update breaks the expectations.
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4c648cf..3700fbd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,10 +12,11 @@ variables:
FDO_UPSTREAM_REPO: 'xorg/proto/xorgproto'
# Changing the tag will rebuild the container images. The value is just a
# string, but we use the date for human benefits.
- FDO_DISTRIBUTION_TAG: '2021-01-20.0'
+ FDO_DISTRIBUTION_TAG: '2021-01-21.1'
stages:
- prep
+ - check
- build
- test
@@ -28,7 +29,7 @@ container-prep:
# minimal set of packages required to build and install
BASE_PACKAGES: 'meson ninja gcc'
# extra packages we need for various tests
- EXTRA_PACKAGES: 'libevdev python python-libevdev'
+ EXTRA_PACKAGES: 'git libevdev python python-libevdev python-black'
FDO_DISTRIBUTION_PACKAGES: $BASE_PACKAGES $EXTRA_PACKAGES
meson:
@@ -39,8 +40,26 @@ meson:
matrix:
- MESON_OPTIONS: ['', '-Dlegacy=true']
script:
- - mkdir ../_inst
+ - mkdir -p ../_inst
- meson builddir --prefix="$PWD/../_inst" $MESON_OPTIONS
- meson configure builddir
- ninja -C builddir test
- ninja -C builddir install
+
+check evdev keysyms:
+ extends:
+ - .fdo.distribution-image at arch
+ stage: test
+ script:
+ - ./scripts/keysym-generator.py --header=include/X11/XF86keysym.h verify
+
+check formatting:
+ extends:
+ - .fdo.distribution-image at arch
+ stage: check
+ script:
+ - black scripts/keysym-generator.py
+ - git diff --exit-code || (echo "Please run Black against the Python script" && false)
+ only:
+ changes:
+ - scripts/keysym-generator.py
diff --git a/README.md b/README.md
index a5af6b6..ba0a2f9 100644
--- a/README.md
+++ b/README.md
@@ -32,3 +32,27 @@ For patch submission instructions, see:
https://www.x.org/wiki/Development/Documentation/SubmittingPatches
+
+Updating for new Linux kernel releases
+--------------------------------------
+
+The XF86keysym.h header file needs updating whenever the Linux kernel
+adds a new keycode to linux/input-event-codes.h. See the comment in
+include/X11/XF86keysym.h for details on the format.
+
+The steps to update the file are:
+
+- if the kernel release did not add new `KEY_FOO` defines, no work is
+ required
+- ensure that libevdev has been updated to the new kernel headers. This may
+ require installing libevdev from git.
+- run `scripts/keysym-generator.py` to add new keysyms. See the `--help`
+ output for the correct invocation.
+- verify that the format for any keys added by this script is correct and
+ that the keys need to be mapped. Where a key code should not get a new
+ define or is already defined otherwise, comment the line.
+- file a merge request with the new changes
+- notify the xkeyboard-config maintainers that updates are needed
+
+Note that any #define added immediately becomes API. Due diligence is
+recommended.
diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index 8310fe3..26f9c39 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -232,3 +232,43 @@
#define XF86XK_Prev_VMode 0x1008FE23 /* prev. video mode available */
#define XF86XK_LogWindowTree 0x1008FE24 /* print window tree to log */
#define XF86XK_LogGrabInfo 0x1008FE25 /* print all active grabs to log */
+
+
+/*
+ * Reserved range for evdev symbols: 0x10081000-0x10081FFF
+ *
+ * Key syms within this range must match the Linux kernel
+ * input-event-codes.h file in the format:
+ * XF86XK_CamelCaseKernelName _EVDEVK(kernel value)
+ * For example, the kernel
+ * #define KEY_MACRO_RECORD_START 0x2b0
+ * effectively ends up as:
+ * #define XF86XK_MacroRecordStart 0x100812b0
+ *
+ * For historical reasons, some keysyms within the reserved range will be
+ * missing, most notably all "normal" keys that are mapped through default
+ * XKB layouts (e.g. KEY_Q).
+ *
+ * CamelCasing is done with a human control as last authority, e.g. see VOD
+ * instead of Vod for the Video on Demand key.
+ *
+ * The format for #defines is strict:
+ *
+ * #define XF86XK_FOO<tab...>_EVDEVK(0xABC)<tab><tab> |* kver KEY_FOO *|
+ *
+ * Where
+ * - alignment by tabs
+ * - the _EVDEVK macro must be used
+ * - the hex code must be in uppercase hex
+ * - the kernel version (kver) is in the form v5.10
+ * - kver and key name are within a slash-star comment (a pipe is used in
+ * this example for technical reasons)
+ * These #defines are parsed by scripts. Do not stray from the given format.
+ *
+ * Where the evdev keycode is mapped to a different symbol, please add a
+ * comment line starting with Use: but otherwise the same format, e.g.
+ * Use: XF86XK_RotationLockToggle _EVDEVK(0x231) v4.16 KEY_ROTATE_LOCK_TOGGLE
+ *
+ */
+#define _EVDEVK(_v) (0x10081000 + _v)
+#undef _EVDEVK
diff --git a/meson.build b/meson.build
index 8da8337..fa44c38 100644
--- a/meson.build
+++ b/meson.build
@@ -95,3 +95,8 @@ ext_xorgproto = declare_dependency(
)
subdir('include')
+
+keysymfile = join_paths(meson.source_root(), 'include', 'X11', 'XF86keysym.h')
+test('evdev-keysym-check',
+ find_program('scripts/keysym-generator.py'),
+ args: ['-v', '--header', keysymfile, 'verify'])
diff --git a/scripts/keysym-generator.py b/scripts/keysym-generator.py
new file mode 100755
index 0000000..6bcde61
--- /dev/null
+++ b/scripts/keysym-generator.py
@@ -0,0 +1,429 @@
+#!/usr/bin/env python3
+#
+# SPDX-License-Identifier: MIT
+#
+# This script checks XF86keysym.h for the reserved evdev keysym range and/or
+# appends new keysym to that range. An up-to-date libevdev must be
+# available to guarantee the correct keycode ranges and names.
+#
+# Run with --help for usage information.
+#
+#
+# File is formatted with Python Black
+
+import argparse
+import logging
+import sys
+import re
+import libevdev
+import subprocess
+from pathlib import Path
+
+logging.basicConfig(level=logging.DEBUG, format="%(levelname)s: %(message)s")
+logger = logging.getLogger("ksgen")
+
+start_token = re.compile(r"#define _EVDEVK.*")
+end_token = re.compile(r"#undef _EVDEVK\n")
+
+
+def die(msg):
+ logger.critical(msg)
+ sys.exit(1)
+
+
+class Kernel(object):
+ """
+ Wrapper around the kernel git tree to simplify searching for when a
+ particular keycode was introduced.
+ """
+
+ def __init__(self, repo):
+ self.repo = repo
+
+ exitcode, stdout, stderr = self.git_command("git branch --show-current")
+ if exitcode != 0:
+ die(f"{stderr}")
+ if stdout.strip() != "master":
+ die(f"Kernel repo must be on the master branch (current: {stdout.strip()})")
+
+ exitcode, stdout, stderr = self.git_command("git tag --sort=version:refname")
+ tags = stdout.split("\n")
+ self.versions = list(
+ filter(lambda v: re.match(r"^v[2-6]\.[0-9]+(\.[0-9]+)?$", v), tags)
+ )
+ logger.debug(f"Kernel versions: {', '.join(self.versions)}")
+
+ def git_command(self, cmd):
+ """
+ Takes a single-string git command and runs it in the repo.
+
+ Returns the tuple (exitcode, stdout, stderr)
+ """
+ # logger.debug(f"git command: {cmd}")
+ try:
+ result = subprocess.run(
+ cmd.split(" "), cwd=self.repo, capture_output=True, encoding="utf8"
+ )
+ if result.returncode == 128:
+ die(f"{result.stderr}")
+
+ return result.returncode, result.stdout, result.stderr
+ except FileNotFoundError:
+ die(f"{self.repo} is not a git repository")
+
+ def introduced_in_version(self, string):
+ """
+ Search this repo for the first version with string in the headers.
+
+ Returns the kernel version number (e.g. "v5.10") or None
+ """
+
+ # The fastest approach is to git grep every version for the string
+ # and return the first. Using git log -G and then git tag --contains
+ # is an order of magnitude slower.
+ def found_in_version(v):
+ cmd = f"git grep -E \\<{string}\\> {v} -- include/"
+ exitcode, _, _ = self.git_command(cmd)
+ return exitcode == 0
+
+ def bisect(iterable, func):
+ """
+ Return the first element in iterable for which func
+ returns True.
+ """
+ # bias to speed things up: most keycodes will be in the first
+ # kernel version
+ if func(iterable[0]):
+ return iterable[0]
+
+ lo, hi = 0, len(iterable)
+ while lo < hi:
+ mid = (lo + hi) // 2
+ if func(iterable[mid]):
+ hi = mid
+ else:
+ lo = mid + 1
+ return iterable[hi]
+
+ version = bisect(self.versions, found_in_version)
+ logger.debug(f"Bisected {string} to {version}")
+ # 2.6.11 doesn't count, that's the start of git
+ return version if version != self.versions[0] else None
+
+
+def generate_keysym_line(code, kernel, kver_list=[]):
+ """
+ Generate the line to append to the keysym file.
+
+ This format is semi-ABI, scripts rely on the format of this line (e.g. in
+ xkeyboard-config).
+ """
+ evcode = libevdev.evbit(libevdev.EV_KEY.value, code)
+ if not evcode.is_defined: # codes without a #define in the kernel
+ return None
+ if evcode.name.startswith("BTN_"):
+ return None
+
+ name = "".join([s.capitalize() for s in evcode.name[4:].lower().split("_")])
+ keysym = f"XF86XK_{name}"
+ tabs = 4 - len(keysym) // 8
+ kver = kernel.introduced_in_version(evcode.name) or " "
+ if kver_list:
+ from fnmatch import fnmatch
+
+ allowed_kvers = [v.strip() for v in kver_list.split(",")]
+ for allowed in allowed_kvers:
+ if fnmatch(kver, allowed):
+ break
+ else: # no match
+ return None
+
+ return f"#define {keysym}{' ' * tabs}_EVDEVK(0x{code:03X}) /* {kver:5s} {evcode.name} */"
+
+
+def verify(ns):
+ """
+ Verify that the XF86keysym.h file follows the requirements. Since we expect
+ the header file to be parsed by outside scripts, the requirements for the format
+ are quite strict, including things like correct-case hex codes.
+ """
+
+ # No other keysym must use this range
+ reserved_range = re.compile(r"#define.*0x10081.*")
+ normal_range = re.compile(r"#define.*0x1008.*")
+
+ # This is the full pattern we expect.
+ expected_pattern = re.compile(
+ r"#define XF86XK_\w+\t+_EVDEVK\(0x([0-9A-F]{3})\)\t+/\* (v[2-6]\.[0-9]+(\.[0-9]+)?)? +KEY_\w+ \*/"
+ )
+ # This is the comment pattern we expect
+ expected_comment_pattern = re.compile(
+ r"/\* Use: \w+\t+_EVDEVK\(0x([0-9A-F]{3})\)\t+ (v[2-6]\.[0-9]+(\.[0-9]+)?)? +KEY_\w+ \*/"
+ )
+
+ # Some patterns to spot specific errors, just so we can print useful errors
+ define = re.compile(r"^#define .*")
+ name_pattern = re.compile(r"#define (XF86XK_[^\s]*)")
+ tab_check = re.compile(r"#define \w+(\s+)[^\s]+(\s+)")
+ hex_pattern = re.compile(r".*0x([a-f0-9]+).*", re.I)
+ comment_format = re.compile(r".*/\* ([^\s]+)?\s+(\w+)")
+ kver_format = re.compile(r"v[2-6]\.[0-9]+(\.[0-9]+)?")
+
+ in_evdev_codes_section = False
+ had_evdev_codes_section = False
+ success = True
+
+ all_defines = []
+
+ class ParserError(Exception):
+ pass
+
+ def error(msg, line):
+ raise ParserError(f"{msg} in '{line.strip()}'")
+
+ last_keycode = 0
+ for line in open(ns.header):
+ try:
+ if not in_evdev_codes_section:
+ if re.match(start_token, line):
+ in_evdev_codes_section = True
+ had_evdev_codes_section = True
+ continue
+
+ if re.match(reserved_range, line):
+ error("Using reserved range", line)
+ match = re.match(name_pattern, line)
+ if match:
+ all_defines.append(match.group(1))
+ else:
+ # Within the evdev defines section
+ if re.match(end_token, line):
+ in_evdev_codes_section = False
+ continue
+
+ # Comments we only search for a hex pattern and where there is one present
+ # we only check for uppercase format, ordering and update our last_keycode.
+ if not re.match(define, line):
+ match = re.match(expected_comment_pattern, line)
+ if match:
+ if match.group(1) != match.group(1).upper():
+ error(
+ f"Hex code 0x{match.group(1)} must be uppercase", line
+ )
+ if match.group(1):
+ keycode = int(match.group(1), 16)
+ if keycode < last_keycode:
+ error("Keycode must be ascending", line)
+ if keycode == last_keycode:
+ error("Duplicate keycode", line)
+ last_keycode = keycode
+ elif re.match(hex_pattern, line):
+ logger.warning(f"Unexpected hex code in {line}")
+ continue
+
+ # Anything below here is a #define line
+ # Let's check for specific errors
+ if re.match(normal_range, line):
+ error("Define must use _EVDEVK", line)
+
+ match = re.match(name_pattern, line)
+ if match:
+ if match.group(1) in all_defines:
+ error("Duplicate define", line)
+ all_defines.append(match.group(1))
+ else:
+ error("Typo", line)
+
+ match = re.match(hex_pattern, line)
+ if not match:
+ error("No hex code", line)
+ if match.group(1) != match.group(1).upper():
+ error(f"Hex code 0x{match.group(1)} must be uppercase", line)
+
+ tabs = re.match(tab_check, line)
+ if not tabs: # bug
+ error("Matching error", line)
+ if " " in tabs.group(1) or " " in tabs.group(2):
+ error("Use tabs, not spaces", line)
+
+ comment = re.match(comment_format, line)
+ if not comment:
+ error("Invalid comment format", line)
+ kver = comment.group(1)
+ if kver and not re.match(kver_format, kver):
+ error("Invalid kernel version format", line)
+
+ keyname = comment.group(2)
+ if not keyname.startswith("KEY_") or keyname.upper() != keyname:
+ error("Kernel keycode name invalid", line)
+
+ # This could be an old libevdev
+ if keyname not in [c.name for c in libevdev.EV_KEY.codes]:
+ logger.warning(f"Unknown kernel keycode name {keyname}")
+
+ # Check the full expected format, no better error messages
+ # available if this fails
+ match = re.match(expected_pattern, line)
+ if not match:
+ error("Failed match", line)
+
+ keycode = int(match.group(1), 16)
+ if keycode < last_keycode:
+ error("Keycode must be ascending", line)
+ if keycode == last_keycode:
+ error("Duplicate keycode", line)
+
+ # May cause a false positive for old libevdev if KEY_MAX is bumped
+ if keycode < 0x0A0 or keycode > libevdev.EV_KEY.KEY_MAX.value:
+ error("Keycode outside range", line)
+
+ last_keycode = keycode
+ except ParserError as e:
+ logger.error(e)
+ success = False
+
+ if not had_evdev_codes_section:
+ logger.error("Unable to locate EVDEVK section")
+ success = False
+ elif in_evdev_codes_section:
+ logger.error("Unterminated EVDEVK section")
+ success = False
+
+ if success:
+ logger.info("Verification succeeded")
+
+ return 0 if success else 1
+
+
+def add_keysyms(ns):
+ """
+ Print a new XF86keysym.h file, adding any *missing* keycodes to the existing file.
+ """
+ if verify(ns) != 0:
+ die("Header file verification failed")
+
+ # If verification succeeds, we can be a bit more lenient here because we already know
+ # what the format of the field is. Specifically, we're searching for
+ # 3-digit hexcode in brackets and use that as keycode.
+ pattern = re.compile(r".*_EVDEVK\((0x[a-fA-F0-9]{3})\).*")
+ max_code = max(
+ [
+ c.value
+ for c in libevdev.EV_KEY.codes
+ if c.is_defined
+ and c != libevdev.EV_KEY.KEY_MAX
+ and not c.name.startswith("BTN")
+ ]
+ )
+
+ def defined_keycodes(path):
+ """
+ Returns an iterator to the next #defined (or otherwise mentioned)
+ keycode, all other lines (including the returned one) are passed
+ through to printf.
+ """
+ with open(path) as fd:
+ in_evdev_codes_section = False
+
+ for line in fd:
+ if not in_evdev_codes_section:
+ if re.match(start_token, line):
+ in_evdev_codes_section = True
+ # passthrough for all other lines
+ print(line, end="")
+ else:
+ if re.match(r"#undef _EVDEVK\n", line):
+ in_evdev_codes_section = False
+ yield max_code
+ else:
+ match = re.match(pattern, line)
+ if match:
+ logger.debug(f"Found keycode in {line.strip()}")
+ yield int(match.group(1), 16)
+ print(line, end="")
+
+ kernel = Kernel(ns.kernel_git_tree)
+ prev_code = 255 - 8 # the last keycode we can map directly in X
+ for code in defined_keycodes(ns.header):
+ for missing in range(prev_code + 1, code):
+ newline = generate_keysym_line(
+ missing, kernel, kver_list=ns.kernel_versions
+ )
+ if newline:
+ print(newline)
+ prev_code = code
+
+ return 0
+
+
+def find_xf86keysym_header():
+ """
+ Search for the XF86keysym.h file in the current tree or use the system one
+ as last resort. This is a convenience function for running the script
+ locally, it should not be relied on in the CI.
+ """
+ paths = tuple(Path.cwd().glob("**/XF86keysym.h"))
+ if not paths:
+ path = Path("/usr/include/X11/XF86keysym.h")
+ if not path.exists():
+ die("Unable to find XF86keysym.h in CWD or /usr")
+ else:
+ if len(paths) > 1:
+ die("Multiple XF86keysym.h in CWD, please use --header")
+ path = paths[0]
+
+ logger.info(f"Using header file {path}")
+ return path
+
+
+def main():
+ parser = argparse.ArgumentParser(description="Keysym parser script")
+ parser.add_argument("--verbose", "-v", action="count", default=0)
+ parser.add_argument(
+ "--header",
+ type=str,
+ default=None,
+ help="Path to the XF86Keysym.h header file (default: search $CWD)",
+ )
+
+ subparsers = parser.add_subparsers(help="command-specific help", dest="command")
+ parser_verify = subparsers.add_parser(
+ "verify", help="Verify the XF86keysym.h matches requirements"
+ )
+ parser_verify.set_defaults(func=verify)
+
+ parser_generate = subparsers.add_parser(
+ "add-keysyms", help="Add missing keysyms to the existing ones"
+ )
+ parser_generate.add_argument(
+ "--kernel-git-tree",
+ type=str,
+ default=None,
+ required=True,
+ help="Path to a kernel git repo, required to find git tags",
+ )
+ parser_generate.add_argument(
+ "--kernel-versions",
+ type=str,
+ default=[],
+ required=False,
+ help="Comma-separated list of kernel versions to limit ourselves to (e.g. 'v5.10,v5.9'). Supports fnmatch.",
+ )
+ parser_generate.set_defaults(func=add_keysyms)
+ ns = parser.parse_args()
+
+ logger.setLevel(
+ {2: logging.DEBUG, 1: logging.INFO, 0: logging.WARNING}.get(ns.verbose, 2)
+ )
+
+ if not ns.header:
+ ns.header = find_xf86keysym_header()
+
+ if ns.command is None:
+ parser.error("Invalid or missing command")
+
+ sys.exit(ns.func(ns))
+
+
+if __name__ == "__main__":
+ main()
More information about the xorg-commit
mailing list