summaryrefslogtreecommitdiff
path: root/keycodes
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2021-01-08 14:33:56 +1000
committerSergey Udaltsov <sergey.udaltsov@gmail.com>2021-01-18 10:58:58 +0000
commit5dc9b48c9b31de9f9780887a79ded3b1e52591d9 (patch)
treed1482f67a6baeb6019d03bc4a58e2a20d1b03552 /keycodes
parenta9639617582bfc6ce81d9553d92dbea2ae80e061 (diff)
downloadxkeyboard-config-5dc9b48c9b31de9f9780887a79ded3b1e52591d9.tar.gz
gitlab CI: generate the evdev keycodes
The various <I123> keycodes in keycodes/evdev simply match the kernel defines + offset 8. There is no need to maintain these manually, let's generate them instead. Keycodes update rarely and irregularly (on average maybe every second kernel release) so there's no need to integrate this into the build itself, let's add it to our CI instead. The script here uses python-libevdev which has a list of the various key codes and their names (compile-time built-in in libevdev itself so it's advisable that a recent libevdev is used). The script is hooked up to a custom job that will fail if there are key codes with a #define in the kernel that are not listed in our evdev file. We allow that job to fail, it's not that urgent to prevent any other pipelines. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'keycodes')
-rw-r--r--keycodes/evdev277
-rw-r--r--keycodes/evdev.in217
2 files changed, 492 insertions, 2 deletions
diff --git a/keycodes/evdev b/keycodes/evdev
index bfad602..f31175e 100644
--- a/keycodes/evdev
+++ b/keycodes/evdev
@@ -187,10 +187,35 @@ default xkb_keycodes "evdev" {
// evdev has standardize names for these.
<LNFD> = 109; // #define KEY_LINEFEED 101
+
+ // Key codes below are autogenerated
<I120> = 120; // #define KEY_MACRO 112
+ <I121> = 121; // #define KEY_MUTE 113
+ <I122> = 122; // #define KEY_VOLUMEDOWN 114
+ <I123> = 123; // #define KEY_VOLUMEUP 115
+ <I124> = 124; // #define KEY_POWER 116
+ <I125> = 125; // #define KEY_KPEQUAL 117
<I126> = 126; // #define KEY_KPPLUSMINUS 118
+ <I127> = 127; // #define KEY_PAUSE 119
<I128> = 128; // #define KEY_SCALE 120
<I129> = 129; // #define KEY_KPCOMMA 121
+ <I130> = 130; // #define KEY_HANGEUL 122
+ <I131> = 131; // #define KEY_HANJA 123
+ <I132> = 132; // #define KEY_YEN 124
+ <I133> = 133; // #define KEY_LEFTMETA 125
+ <I134> = 134; // #define KEY_RIGHTMETA 126
+ <I135> = 135; // #define KEY_COMPOSE 127
+ <I136> = 136; // #define KEY_STOP 128
+ <I137> = 137; // #define KEY_AGAIN 129
+ <I138> = 138; // #define KEY_PROPS 130
+ <I139> = 139; // #define KEY_UNDO 131
+ <I140> = 140; // #define KEY_FRONT 132
+ <I141> = 141; // #define KEY_COPY 133
+ <I142> = 142; // #define KEY_OPEN 134
+ <I143> = 143; // #define KEY_PASTE 135
+ <I144> = 144; // #define KEY_FIND 136
+ <I145> = 145; // #define KEY_CUT 137
+ <I146> = 146; // #define KEY_HELP 138
<I147> = 147; // #define KEY_MENU 139
<I148> = 148; // #define KEY_CALC 140
<I149> = 149; // #define KEY_SETUP 141
@@ -205,7 +230,7 @@ default xkb_keycodes "evdev" {
<I158> = 158; // #define KEY_WWW 150
<I159> = 159; // #define KEY_MSDOS 151
<I160> = 160; // #define KEY_COFFEE 152
- <I161> = 161; // #define KEY_DIRECTION 153
+ <I161> = 161; // #define KEY_ROTATE_DISPLAY 153
<I162> = 162; // #define KEY_CYCLEWINDOWS 154
<I163> = 163; // #define KEY_MAIL 155
<I164> = 164; // #define KEY_BOOKMARKS 156
@@ -235,6 +260,18 @@ default xkb_keycodes "evdev" {
<I188> = 188; // #define KEY_KPRIGHTPAREN 180
<I189> = 189; // #define KEY_NEW 181
<I190> = 190; // #define KEY_REDO 182
+ <I191> = 191; // #define KEY_F13 183
+ <I192> = 192; // #define KEY_F14 184
+ <I193> = 193; // #define KEY_F15 185
+ <I194> = 194; // #define KEY_F16 186
+ <I195> = 195; // #define KEY_F17 187
+ <I196> = 196; // #define KEY_F18 188
+ <I197> = 197; // #define KEY_F19 189
+ <I198> = 198; // #define KEY_F20 190
+ <I199> = 199; // #define KEY_F21 191
+ <I200> = 200; // #define KEY_F22 192
+ <I201> = 201; // #define KEY_F23 193
+ <I202> = 202; // #define KEY_F24 194
<I208> = 208; // #define KEY_PLAYCD 200
<I209> = 209; // #define KEY_PAUSECD 201
<I210> = 210; // #define KEY_PROG3 202
@@ -279,17 +316,253 @@ default xkb_keycodes "evdev" {
<I249> = 249; // #define KEY_VIDEO_NEXT 241
<I250> = 250; // #define KEY_VIDEO_PREV 242
<I251> = 251; // #define KEY_BRIGHTNESS_CYCLE 243
- <I252> = 252; // #define KEY_BRIGHTNESS_ZERO 244
+ <I252> = 252; // #define KEY_BRIGHTNESS_AUTO 244
<I253> = 253; // #define KEY_DISPLAY_OFF 245
<I254> = 254; // #define KEY_WWAN 246
<I255> = 255; // #define KEY_RFKILL 247
+ // Key codes below cannot be used in X
+
+ <I256> = 256; // #define KEY_MICMUTE 248
+ <I360> = 360; // #define KEY_OK 352
+ <I361> = 361; // #define KEY_SELECT 353
+ <I362> = 362; // #define KEY_GOTO 354
+ <I363> = 363; // #define KEY_CLEAR 355
+ <I364> = 364; // #define KEY_POWER2 356
+ <I365> = 365; // #define KEY_OPTION 357
+ <I366> = 366; // #define KEY_INFO 358
+ <I367> = 367; // #define KEY_TIME 359
+ <I368> = 368; // #define KEY_VENDOR 360
+ <I369> = 369; // #define KEY_ARCHIVE 361
+ <I370> = 370; // #define KEY_PROGRAM 362
+ <I371> = 371; // #define KEY_CHANNEL 363
<I372> = 372; // #define KEY_FAVORITES 364
+ <I373> = 373; // #define KEY_EPG 365
+ <I374> = 374; // #define KEY_PVR 366
+ <I375> = 375; // #define KEY_MHP 367
+ <I376> = 376; // #define KEY_LANGUAGE 368
+ <I377> = 377; // #define KEY_TITLE 369
+ <I378> = 378; // #define KEY_SUBTITLE 370
+ <I379> = 379; // #define KEY_ANGLE 371
<I380> = 380; // #define KEY_FULL_SCREEN 372
+ <I381> = 381; // #define KEY_MODE 373
<I382> = 382; // #define KEY_KEYBOARD 374
+ <I383> = 383; // #define KEY_ASPECT_RATIO 375
+ <I384> = 384; // #define KEY_PC 376
+ <I385> = 385; // #define KEY_TV 377
+ <I386> = 386; // #define KEY_TV2 378
+ <I387> = 387; // #define KEY_VCR 379
+ <I388> = 388; // #define KEY_VCR2 380
+ <I389> = 389; // #define KEY_SAT 381
+ <I390> = 390; // #define KEY_SAT2 382
+ <I391> = 391; // #define KEY_CD 383
+ <I392> = 392; // #define KEY_TAPE 384
+ <I393> = 393; // #define KEY_RADIO 385
+ <I394> = 394; // #define KEY_TUNER 386
+ <I395> = 395; // #define KEY_PLAYER 387
+ <I396> = 396; // #define KEY_TEXT 388
+ <I397> = 397; // #define KEY_DVD 389
+ <I398> = 398; // #define KEY_AUX 390
+ <I399> = 399; // #define KEY_MP3 391
+ <I400> = 400; // #define KEY_AUDIO 392
+ <I401> = 401; // #define KEY_VIDEO 393
+ <I402> = 402; // #define KEY_DIRECTORY 394
+ <I403> = 403; // #define KEY_LIST 395
+ <I404> = 404; // #define KEY_MEMO 396
+ <I405> = 405; // #define KEY_CALENDAR 397
+ <I406> = 406; // #define KEY_RED 398
+ <I407> = 407; // #define KEY_GREEN 399
+ <I408> = 408; // #define KEY_YELLOW 400
+ <I409> = 409; // #define KEY_BLUE 401
+ <I410> = 410; // #define KEY_CHANNELUP 402
+ <I411> = 411; // #define KEY_CHANNELDOWN 403
+ <I412> = 412; // #define KEY_FIRST 404
+ <I413> = 413; // #define KEY_LAST 405
+ <I414> = 414; // #define KEY_AB 406
+ <I415> = 415; // #define KEY_NEXT 407
+ <I416> = 416; // #define KEY_RESTART 408
+ <I417> = 417; // #define KEY_SLOW 409
+ <I418> = 418; // #define KEY_SHUFFLE 410
+ <I419> = 419; // #define KEY_BREAK 411
+ <I420> = 420; // #define KEY_PREVIOUS 412
+ <I421> = 421; // #define KEY_DIGITS 413
+ <I422> = 422; // #define KEY_TEEN 414
+ <I423> = 423; // #define KEY_TWEN 415
+ <I424> = 424; // #define KEY_VIDEOPHONE 416
+ <I425> = 425; // #define KEY_GAMES 417
+ <I426> = 426; // #define KEY_ZOOMIN 418
+ <I427> = 427; // #define KEY_ZOOMOUT 419
+ <I428> = 428; // #define KEY_ZOOMRESET 420
+ <I429> = 429; // #define KEY_WORDPROCESSOR 421
+ <I430> = 430; // #define KEY_EDITOR 422
+ <I431> = 431; // #define KEY_SPREADSHEET 423
+ <I432> = 432; // #define KEY_GRAPHICSEDITOR 424
+ <I433> = 433; // #define KEY_PRESENTATION 425
+ <I434> = 434; // #define KEY_DATABASE 426
+ <I435> = 435; // #define KEY_NEWS 427
+ <I436> = 436; // #define KEY_VOICEMAIL 428
+ <I437> = 437; // #define KEY_ADDRESSBOOK 429
+ <I438> = 438; // #define KEY_MESSENGER 430
+ <I439> = 439; // #define KEY_DISPLAYTOGGLE 431
+ <I440> = 440; // #define KEY_SPELLCHECK 432
+ <I441> = 441; // #define KEY_LOGOFF 433
<I442> = 442; // #define KEY_DOLLAR 434
<I443> = 443; // #define KEY_EURO 435
+ <I444> = 444; // #define KEY_FRAMEBACK 436
+ <I445> = 445; // #define KEY_FRAMEFORWARD 437
+ <I446> = 446; // #define KEY_CONTEXT_MENU 438
+ <I447> = 447; // #define KEY_MEDIA_REPEAT 439
+ <I448> = 448; // #define KEY_10CHANNELSUP 440
+ <I449> = 449; // #define KEY_10CHANNELSDOWN 441
+ <I450> = 450; // #define KEY_IMAGES 442
+ <I456> = 456; // #define KEY_DEL_EOL 448
+ <I457> = 457; // #define KEY_DEL_EOS 449
+ <I458> = 458; // #define KEY_INS_LINE 450
+ <I459> = 459; // #define KEY_DEL_LINE 451
+ <I472> = 472; // #define KEY_FN 464
+ <I473> = 473; // #define KEY_FN_ESC 465
+ <I474> = 474; // #define KEY_FN_F1 466
+ <I475> = 475; // #define KEY_FN_F2 467
+ <I476> = 476; // #define KEY_FN_F3 468
+ <I477> = 477; // #define KEY_FN_F4 469
+ <I478> = 478; // #define KEY_FN_F5 470
+ <I479> = 479; // #define KEY_FN_F6 471
+ <I480> = 480; // #define KEY_FN_F7 472
+ <I481> = 481; // #define KEY_FN_F8 473
+ <I482> = 482; // #define KEY_FN_F9 474
+ <I483> = 483; // #define KEY_FN_F10 475
+ <I484> = 484; // #define KEY_FN_F11 476
+ <I485> = 485; // #define KEY_FN_F12 477
+ <I486> = 486; // #define KEY_FN_1 478
+ <I487> = 487; // #define KEY_FN_2 479
+ <I488> = 488; // #define KEY_FN_D 480
+ <I489> = 489; // #define KEY_FN_E 481
+ <I490> = 490; // #define KEY_FN_F 482
+ <I491> = 491; // #define KEY_FN_S 483
+ <I492> = 492; // #define KEY_FN_B 484
+ <I505> = 505; // #define KEY_BRL_DOT1 497
+ <I506> = 506; // #define KEY_BRL_DOT2 498
+ <I507> = 507; // #define KEY_BRL_DOT3 499
+ <I508> = 508; // #define KEY_BRL_DOT4 500
+ <I509> = 509; // #define KEY_BRL_DOT5 501
+ <I510> = 510; // #define KEY_BRL_DOT6 502
+ <I511> = 511; // #define KEY_BRL_DOT7 503
+ <I512> = 512; // #define KEY_BRL_DOT8 504
+ <I513> = 513; // #define KEY_BRL_DOT9 505
+ <I514> = 514; // #define KEY_BRL_DOT10 506
+ <I520> = 520; // #define KEY_NUMERIC_0 512
+ <I521> = 521; // #define KEY_NUMERIC_1 513
+ <I522> = 522; // #define KEY_NUMERIC_2 514
+ <I523> = 523; // #define KEY_NUMERIC_3 515
+ <I524> = 524; // #define KEY_NUMERIC_4 516
+ <I525> = 525; // #define KEY_NUMERIC_5 517
+ <I526> = 526; // #define KEY_NUMERIC_6 518
+ <I527> = 527; // #define KEY_NUMERIC_7 519
+ <I528> = 528; // #define KEY_NUMERIC_8 520
+ <I529> = 529; // #define KEY_NUMERIC_9 521
+ <I530> = 530; // #define KEY_NUMERIC_STAR 522
+ <I531> = 531; // #define KEY_NUMERIC_POUND 523
+ <I532> = 532; // #define KEY_NUMERIC_A 524
+ <I533> = 533; // #define KEY_NUMERIC_B 525
+ <I534> = 534; // #define KEY_NUMERIC_C 526
+ <I535> = 535; // #define KEY_NUMERIC_D 527
+ <I536> = 536; // #define KEY_CAMERA_FOCUS 528
+ <I537> = 537; // #define KEY_WPS_BUTTON 529
+ <I538> = 538; // #define KEY_TOUCHPAD_TOGGLE 530
+ <I539> = 539; // #define KEY_TOUCHPAD_ON 531
+ <I540> = 540; // #define KEY_TOUCHPAD_OFF 532
+ <I541> = 541; // #define KEY_CAMERA_ZOOMIN 533
+ <I542> = 542; // #define KEY_CAMERA_ZOOMOUT 534
+ <I543> = 543; // #define KEY_CAMERA_UP 535
+ <I544> = 544; // #define KEY_CAMERA_DOWN 536
+ <I545> = 545; // #define KEY_CAMERA_LEFT 537
+ <I546> = 546; // #define KEY_CAMERA_RIGHT 538
+ <I547> = 547; // #define KEY_ATTENDANT_ON 539
+ <I548> = 548; // #define KEY_ATTENDANT_OFF 540
+ <I549> = 549; // #define KEY_ATTENDANT_TOGGLE 541
+ <I550> = 550; // #define KEY_LIGHTS_TOGGLE 542
+ <I568> = 568; // #define KEY_ALS_TOGGLE 560
<I569> = 569; // #define KEY_ROTATE_LOCK_TOGGLE 561
+ <I584> = 584; // #define KEY_BUTTONCONFIG 576
+ <I585> = 585; // #define KEY_TASKMANAGER 577
+ <I586> = 586; // #define KEY_JOURNAL 578
+ <I587> = 587; // #define KEY_CONTROLPANEL 579
+ <I588> = 588; // #define KEY_APPSELECT 580
+ <I589> = 589; // #define KEY_SCREENSAVER 581
+ <I590> = 590; // #define KEY_VOICECOMMAND 582
+ <I591> = 591; // #define KEY_ASSISTANT 583
+ <I592> = 592; // #define KEY_KBD_LAYOUT_NEXT 584
+ <I600> = 600; // #define KEY_BRIGHTNESS_MIN 592
+ <I601> = 601; // #define KEY_BRIGHTNESS_MAX 593
+ <I616> = 616; // #define KEY_KBDINPUTASSIST_PREV 608
+ <I617> = 617; // #define KEY_KBDINPUTASSIST_NEXT 609
+ <I618> = 618; // #define KEY_KBDINPUTASSIST_PREVGROUP 610
+ <I619> = 619; // #define KEY_KBDINPUTASSIST_NEXTGROUP 611
+ <I620> = 620; // #define KEY_KBDINPUTASSIST_ACCEPT 612
+ <I621> = 621; // #define KEY_KBDINPUTASSIST_CANCEL 613
+ <I622> = 622; // #define KEY_RIGHT_UP 614
+ <I623> = 623; // #define KEY_RIGHT_DOWN 615
+ <I624> = 624; // #define KEY_LEFT_UP 616
+ <I625> = 625; // #define KEY_LEFT_DOWN 617
+ <I626> = 626; // #define KEY_ROOT_MENU 618
+ <I627> = 627; // #define KEY_MEDIA_TOP_MENU 619
+ <I628> = 628; // #define KEY_NUMERIC_11 620
+ <I629> = 629; // #define KEY_NUMERIC_12 621
+ <I630> = 630; // #define KEY_AUDIO_DESC 622
+ <I631> = 631; // #define KEY_3D_MODE 623
+ <I632> = 632; // #define KEY_NEXT_FAVORITE 624
+ <I633> = 633; // #define KEY_STOP_RECORD 625
+ <I634> = 634; // #define KEY_PAUSE_RECORD 626
+ <I635> = 635; // #define KEY_VOD 627
+ <I636> = 636; // #define KEY_UNMUTE 628
+ <I637> = 637; // #define KEY_FASTREVERSE 629
+ <I638> = 638; // #define KEY_SLOWREVERSE 630
+ <I639> = 639; // #define KEY_DATA 631
+ <I640> = 640; // #define KEY_ONSCREEN_KEYBOARD 632
+ <I641> = 641; // #define KEY_PRIVACY_SCREEN_TOGGLE 633
+ <I642> = 642; // #define KEY_SELECTIVE_SCREENSHOT 634
+ <I664> = 664; // #define KEY_MACRO1 656
+ <I665> = 665; // #define KEY_MACRO2 657
+ <I666> = 666; // #define KEY_MACRO3 658
+ <I667> = 667; // #define KEY_MACRO4 659
+ <I668> = 668; // #define KEY_MACRO5 660
+ <I669> = 669; // #define KEY_MACRO6 661
+ <I670> = 670; // #define KEY_MACRO7 662
+ <I671> = 671; // #define KEY_MACRO8 663
+ <I672> = 672; // #define KEY_MACRO9 664
+ <I673> = 673; // #define KEY_MACRO10 665
+ <I674> = 674; // #define KEY_MACRO11 666
+ <I675> = 675; // #define KEY_MACRO12 667
+ <I676> = 676; // #define KEY_MACRO13 668
+ <I677> = 677; // #define KEY_MACRO14 669
+ <I678> = 678; // #define KEY_MACRO15 670
+ <I679> = 679; // #define KEY_MACRO16 671
+ <I680> = 680; // #define KEY_MACRO17 672
+ <I681> = 681; // #define KEY_MACRO18 673
+ <I682> = 682; // #define KEY_MACRO19 674
+ <I683> = 683; // #define KEY_MACRO20 675
+ <I684> = 684; // #define KEY_MACRO21 676
+ <I685> = 685; // #define KEY_MACRO22 677
+ <I686> = 686; // #define KEY_MACRO23 678
+ <I687> = 687; // #define KEY_MACRO24 679
+ <I688> = 688; // #define KEY_MACRO25 680
+ <I689> = 689; // #define KEY_MACRO26 681
+ <I690> = 690; // #define KEY_MACRO27 682
+ <I691> = 691; // #define KEY_MACRO28 683
+ <I692> = 692; // #define KEY_MACRO29 684
+ <I693> = 693; // #define KEY_MACRO30 685
+ <I696> = 696; // #define KEY_MACRO_RECORD_START 688
+ <I697> = 697; // #define KEY_MACRO_RECORD_STOP 689
+ <I698> = 698; // #define KEY_MACRO_PRESET_CYCLE 690
+ <I699> = 699; // #define KEY_MACRO_PRESET1 691
+ <I700> = 700; // #define KEY_MACRO_PRESET2 692
+ <I701> = 701; // #define KEY_MACRO_PRESET3 693
+ <I704> = 704; // #define KEY_KBD_LCD_MENU1 696
+ <I705> = 705; // #define KEY_KBD_LCD_MENU2 697
+ <I706> = 706; // #define KEY_KBD_LCD_MENU3 698
+ <I707> = 707; // #define KEY_KBD_LCD_MENU4 699
+ <I708> = 708; // #define KEY_KBD_LCD_MENU5 700
+ // End of autogenerated key codes
// Fake keycodes for virtual keys
<LVL3> = 92;
diff --git a/keycodes/evdev.in b/keycodes/evdev.in
new file mode 100644
index 0000000..477152b
--- /dev/null
+++ b/keycodes/evdev.in
@@ -0,0 +1,217 @@
+// translation from evdev scancodes to something resembling xfree86 keycodes.
+
+default xkb_keycodes "evdev" {
+ minimum = 8;
+ maximum = 255;
+
+ # Added for pc105 compatibility
+ <LSGT> = 94;
+
+ <TLDE> = 49;
+ <AE01> = 10;
+ <AE02> = 11;
+ <AE03> = 12;
+ <AE04> = 13;
+ <AE05> = 14;
+ <AE06> = 15;
+ <AE07> = 16;
+ <AE08> = 17;
+ <AE09> = 18;
+ <AE10> = 19;
+ <AE11> = 20;
+ <AE12> = 21;
+ <BKSP> = 22;
+
+ <TAB> = 23;
+ <AD01> = 24;
+ <AD02> = 25;
+ <AD03> = 26;
+ <AD04> = 27;
+ <AD05> = 28;
+ <AD06> = 29;
+ <AD07> = 30;
+ <AD08> = 31;
+ <AD09> = 32;
+ <AD10> = 33;
+ <AD11> = 34;
+ <AD12> = 35;
+ <BKSL> = 51;
+ alias <AC12> = <BKSL>;
+ <RTRN> = 36;
+
+ <CAPS> = 66;
+ <AC01> = 38;
+ <AC02> = 39;
+ <AC03> = 40;
+ <AC04> = 41;
+ <AC05> = 42;
+ <AC06> = 43;
+ <AC07> = 44;
+ <AC08> = 45;
+ <AC09> = 46;
+ <AC10> = 47;
+ <AC11> = 48;
+
+ <LFSH> = 50;
+ <AB01> = 52;
+ <AB02> = 53;
+ <AB03> = 54;
+ <AB04> = 55;
+ <AB05> = 56;
+ <AB06> = 57;
+ <AB07> = 58;
+ <AB08> = 59;
+ <AB09> = 60;
+ <AB10> = 61;
+ <RTSH> = 62;
+
+ <LALT> = 64;
+ <LCTL> = 37;
+ <SPCE> = 65;
+ <RCTL> = 105;
+ <RALT> = 108;
+ // Microsoft keyboard extra keys
+ <LWIN> = 133;
+ <RWIN> = 134;
+ <COMP> = 135;
+ alias <MENU> = <COMP>;
+
+ <ESC> = 9;
+ <FK01> = 67;
+ <FK02> = 68;
+ <FK03> = 69;
+ <FK04> = 70;
+ <FK05> = 71;
+ <FK06> = 72;
+ <FK07> = 73;
+ <FK08> = 74;
+ <FK09> = 75;
+ <FK10> = 76;
+ <FK11> = 95;
+ <FK12> = 96;
+
+ <PRSC> = 107;
+ // <SYRQ> = 107;
+ <SCLK> = 78;
+ <PAUS> = 127;
+ // <BRK> = 419;
+
+ <INS> = 118;
+ <HOME> = 110;
+ <PGUP> = 112;
+ <DELE> = 119;
+ <END> = 115;
+ <PGDN> = 117;
+
+ <UP> = 111;
+ <LEFT> = 113;
+ <DOWN> = 116;
+ <RGHT> = 114;
+
+ <NMLK> = 77;
+ <KPDV> = 106;
+ <KPMU> = 63;
+ <KPSU> = 82;
+
+ <KP7> = 79;
+ <KP8> = 80;
+ <KP9> = 81;
+ <KPAD> = 86;
+
+ <KP4> = 83;
+ <KP5> = 84;
+ <KP6> = 85;
+
+ <KP1> = 87;
+ <KP2> = 88;
+ <KP3> = 89;
+ <KPEN> = 104;
+
+ <KP0> = 90;
+ <KPDL> = 91;
+ <KPEQ> = 125;
+
+ <FK13> = 191;
+ <FK14> = 192;
+ <FK15> = 193;
+ <FK16> = 194;
+ <FK17> = 195;
+ <FK18> = 196;
+ <FK19> = 197;
+ <FK20> = 198;
+ <FK21> = 199;
+ <FK22> = 200;
+ <FK23> = 201;
+ <FK24> = 202;
+
+ // Keys that are generated on Japanese keyboards
+
+ //<HZTG> = 93; // Hankaku/Zenkakau toggle - not actually used
+ alias <HZTG> = <TLDE>;
+ <HKTG> = 101; // Hiragana/Katakana toggle
+ <AB11> = 97; // backslash/underscore
+ <HENK> = 100; // Henkan
+ <MUHE> = 102; // Muhenkan
+ <AE13> = 132; // Yen
+ <KATA> = 98; // Katakana
+ <HIRA> = 99; // Hiragana
+ <JPCM> = 103; // KPJPComma
+ //<RO> = 97; // Romaji
+
+ // Keys that are generated on Korean keyboards
+
+ <HNGL> = 130; // Hangul Latin toggle
+ <HJCV> = 131; // Hangul to Hanja conversion
+
+ // Solaris compatibility
+
+ alias <LMTA> = <LWIN>;
+ alias <RMTA> = <RWIN>;
+ <MUTE> = 121;
+ <VOL-> = 122;
+ <VOL+> = 123;
+ <POWR> = 124;
+ <STOP> = 136;
+ <AGAI> = 137;
+ <PROP> = 138;
+ <UNDO> = 139;
+ <FRNT> = 140;
+ <COPY> = 141;
+ <OPEN> = 142;
+ <PAST> = 143;
+ <FIND> = 144;
+ <CUT> = 145;
+ <HELP> = 146;
+
+ // Extended keys that may be generated on "Internet" keyboards.
+ // evdev has standardize names for these.
+
+ <LNFD> = 109; // #define KEY_LINEFEED 101
+
+ @evdevkeys@
+
+ // Fake keycodes for virtual keys
+ <LVL3> = 92;
+ <MDSW> = 203;
+ <ALT> = 204;
+ <META> = 205;
+ <SUPR> = 206;
+ <HYPR> = 207;
+
+ indicator 1 = "Caps Lock";
+ indicator 2 = "Num Lock";
+ indicator 3 = "Scroll Lock";
+ indicator 4 = "Compose";
+ indicator 5 = "Kana";
+ indicator 6 = "Sleep";
+ indicator 7 = "Suspend";
+ indicator 8 = "Mute";
+ indicator 9 = "Misc";
+ indicator 10 = "Mail";
+ indicator 11 = "Charging";
+
+ alias <ALGR> = <RALT>;
+
+ // For Brazilian ABNT2
+ alias <KPPT> = <I129>;
+};