kbvm 0.1.5

An implementation of the XKB specification
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
use super::*;

pub(super) const LONGEST: usize = 25;

#[derive(Copy, Clone, Eq, PartialEq, Debug)]
#[allow(non_camel_case_types)]
pub(crate) enum Meaning {
    __Unknown,
    Accel,
    Accelerate,
    AccessXFeedback,
    AccessXKeys,
    AccessXTimeout,
    Action,
    ActionMessage,
    Actions,
    Affect,
    Alias,
    All,
    AllOf,
    Allowexplicit,
    Allownone,
    ALPHABETIC,
    AlphanumericKeys,
    Alt,
    Alternate,
    AlternateGroup,
    LessThan_Any_GreaterThan,
    Any,
    Anylevel,
    AnyOf,
    AnyOfOrNone,
    AudibleBell,
    Augment,
    AutoRepeat,
    Base,
    Both,
    BounceKeys,
    Button,
    Caps,
    Clampgroups,
    ClearLocks,
    Clearmodifiers,
    Clearmods,
    Compat,
    Control,
    Controls,
    Count,
    Ctrl,
    Ctrls,
    Data,
    Default,
    Defaultbutton,
    Dev,
    DevBtn,
    DevButton,
    Device,
    DeviceBtn,
    DeviceButton,
    DeviceVal,
    DeviceValuator,
    DevVal,
    DevValuator,
    Dfltbtn,
    Driveskbd,
    Driveskeyboard,
    Effective,
    Exactly,
    False,
    FOUR_LEVEL,
    FOUR_LEVEL_ALPHABETIC,
    FOUR_LEVEL_KEYPAD,
    FOUR_LEVEL_SEMIALPHABETIC,
    FunctionKeys,
    GenerateKeyEvent,
    GenKeyEvent,
    Geometry,
    Group,
    Groupname,
    Groups,
    Groupsclamp,
    Groupsredirect,
    Groupswrap,
    Hidden,
    IgnoreGroupLock,
    Include,
    Increment,
    Index,
    Indicator,
    Indicatordriveskbd,
    Indicatordriveskeyboard,
    Interpret,
    ISOLock,
    Kc,
    Key,
    Keycode,
    Keycodes,
    KEYPAD,
    KeypadKeys,
    Keys,
    Latched,
    LatchGroup,
    LatchMods,
    LatchToLock,
    Leddriveskbd,
    Leddriveskeyboard,
    Level1,
    LevelName,
    Levelname,
    Levelone,
    Lock,
    LockControls,
    LockDevBtn,
    LockDevButton,
    LockDeviceBtn,
    LockDeviceButton,
    Locked,
    LockGroup,
    Locking,
    LockMods,
    LockPointerBtn,
    LockPointerButton,
    LockPtrBtn,
    LockPtrButton,
    Locks,
    Logo,
    Map,
    Maximum,
    Message,
    MessageAction,
    Meta,
    Minimum,
    Mod1,
    Mod2,
    Mod3,
    Mod4,
    Mod5,
    ModifierKeys,
    ModifierMap,
    Modifiers,
    ModMap,
    Modmap,
    Modmapmods,
    Mods,
    MouseKeys,
    MouseKeysAccel,
    MovePointer,
    MovePtr,
    Name,
    Neither,
    No,
    NoAction,
    LessThan_None_GreaterThan,
    None,
    NoneOf,
    Nosymbol,
    Off,
    On,
    ONE_LEVEL,
    Outline,
    Overlay,
    Overlay1,
    Overlay2,
    Override,
    Partial,
    Permanentradiogroup,
    PointerButton,
    Preserve,
    Private,
    PtrBtn,
    Radiogroup,
    Redirect,
    Redirectgroups,
    RedirectKey,
    Repeat,
    Repeating,
    RepeatKeys,
    Repeats,
    Replace,
    Report,
    Row,
    Same,
    SameServer,
    Screen,
    Section,
    SetControls,
    SetGroup,
    SetMods,
    SetPointerDefault,
    SetPtrDflt,
    Shape,
    Shift,
    SlowKeys,
    Solid,
    LessThan_Some_GreaterThan,
    StickyKeys,
    SwitchScreen,
    Symbols,
    Terminate,
    TerminateServer,
    Text,
    True,
    TWO_LEVEL,
    Type,
    Types,
    Unlock,
    Usemodmap,
    Usemodmapmods,
    Value,
    Virtual,
    Virtualmod,
    Virtualmodifier,
    VirtualModifiers,
    Virtualmodifiers,
    Virtualmods,
    Vmods,
    VoidAction,
    Voidsymbol,
    Whichgroupstate,
    Whichmodifierstate,
    Whichmodstate,
    Wrapgroups,
    X,
    XkbCompat,
    XkbCompatibility,
    XkbCompatibilityMap,
    XkbCompatMap,
    XkbGeometry,
    XkbKeycodes,
    XkbKeymap,
    XkbLayout,
    XkbSemantics,
    XkbSymbols,
    XkbTypes,
    Y,
    Yes,
}

impl Meaning {
    pub(crate) fn name(self) -> &'static str {
        match self {
            Self::__Unknown => "__Unknown",
            Self::Accel => "accel",
            Self::Accelerate => "accelerate",
            Self::AccessXFeedback => "AccessXFeedback",
            Self::AccessXKeys => "AccessXKeys",
            Self::AccessXTimeout => "AccessXTimeout",
            Self::Action => "action",
            Self::ActionMessage => "ActionMessage",
            Self::Actions => "actions",
            Self::Affect => "affect",
            Self::Alias => "alias",
            Self::All => "all",
            Self::AllOf => "AllOf",
            Self::Allowexplicit => "allowexplicit",
            Self::Allownone => "allownone",
            Self::ALPHABETIC => "ALPHABETIC",
            Self::AlphanumericKeys => "alphanumeric_keys",
            Self::Alt => "Alt",
            Self::Alternate => "alternate",
            Self::AlternateGroup => "alternate_group",
            Self::LessThan_Any_GreaterThan => "<any>",
            Self::Any => "any",
            Self::Anylevel => "anylevel",
            Self::AnyOf => "AnyOf",
            Self::AnyOfOrNone => "AnyOfOrNone",
            Self::AudibleBell => "AudibleBell",
            Self::Augment => "augment",
            Self::AutoRepeat => "AutoRepeat",
            Self::Base => "base",
            Self::Both => "both",
            Self::BounceKeys => "BounceKeys",
            Self::Button => "button",
            Self::Caps => "Caps",
            Self::Clampgroups => "clampgroups",
            Self::ClearLocks => "clearLocks",
            Self::Clearmodifiers => "clearmodifiers",
            Self::Clearmods => "clearmods",
            Self::Compat => "compat",
            Self::Control => "Control",
            Self::Controls => "controls",
            Self::Count => "count",
            Self::Ctrl => "ctrl",
            Self::Ctrls => "ctrls",
            Self::Data => "data",
            Self::Default => "default",
            Self::Defaultbutton => "defaultbutton",
            Self::Dev => "dev",
            Self::DevBtn => "DevBtn",
            Self::DevButton => "DevButton",
            Self::Device => "device",
            Self::DeviceBtn => "DeviceBtn",
            Self::DeviceButton => "DeviceButton",
            Self::DeviceVal => "DeviceVal",
            Self::DeviceValuator => "DeviceValuator",
            Self::DevVal => "DevVal",
            Self::DevValuator => "DevValuator",
            Self::Dfltbtn => "dfltbtn",
            Self::Driveskbd => "driveskbd",
            Self::Driveskeyboard => "driveskeyboard",
            Self::Effective => "effective",
            Self::Exactly => "Exactly",
            Self::False => "false",
            Self::FOUR_LEVEL => "FOUR_LEVEL",
            Self::FOUR_LEVEL_ALPHABETIC => "FOUR_LEVEL_ALPHABETIC",
            Self::FOUR_LEVEL_KEYPAD => "FOUR_LEVEL_KEYPAD",
            Self::FOUR_LEVEL_SEMIALPHABETIC => "FOUR_LEVEL_SEMIALPHABETIC",
            Self::FunctionKeys => "function_keys",
            Self::GenerateKeyEvent => "generateKeyEvent",
            Self::GenKeyEvent => "genKeyEvent",
            Self::Geometry => "geometry",
            Self::Group => "group",
            Self::Groupname => "groupname",
            Self::Groups => "groups",
            Self::Groupsclamp => "groupsclamp",
            Self::Groupsredirect => "groupsredirect",
            Self::Groupswrap => "groupswrap",
            Self::Hidden => "hidden",
            Self::IgnoreGroupLock => "IgnoreGroupLock",
            Self::Include => "include",
            Self::Increment => "increment",
            Self::Index => "index",
            Self::Indicator => "indicator",
            Self::Indicatordriveskbd => "indicatordriveskbd",
            Self::Indicatordriveskeyboard => "indicatordriveskeyboard",
            Self::Interpret => "interpret",
            Self::ISOLock => "ISOLock",
            Self::Kc => "kc",
            Self::Key => "key",
            Self::Keycode => "keycode",
            Self::Keycodes => "keycodes",
            Self::KEYPAD => "KEYPAD",
            Self::KeypadKeys => "keypad_keys",
            Self::Keys => "keys",
            Self::Latched => "latched",
            Self::LatchGroup => "LatchGroup",
            Self::LatchMods => "LatchMods",
            Self::LatchToLock => "latchToLock",
            Self::Leddriveskbd => "leddriveskbd",
            Self::Leddriveskeyboard => "leddriveskeyboard",
            Self::Level1 => "level1",
            Self::LevelName => "level_name",
            Self::Levelname => "levelname",
            Self::Levelone => "levelone",
            Self::Lock => "Lock",
            Self::LockControls => "LockControls",
            Self::LockDevBtn => "LockDevBtn",
            Self::LockDevButton => "LockDevButton",
            Self::LockDeviceBtn => "LockDeviceBtn",
            Self::LockDeviceButton => "LockDeviceButton",
            Self::Locked => "locked",
            Self::LockGroup => "LockGroup",
            Self::Locking => "locking",
            Self::LockMods => "LockMods",
            Self::LockPointerBtn => "LockPointerBtn",
            Self::LockPointerButton => "LockPointerButton",
            Self::LockPtrBtn => "LockPtrBtn",
            Self::LockPtrButton => "LockPtrButton",
            Self::Locks => "locks",
            Self::Logo => "logo",
            Self::Map => "map",
            Self::Maximum => "maximum",
            Self::Message => "Message",
            Self::MessageAction => "MessageAction",
            Self::Meta => "Meta",
            Self::Minimum => "minimum",
            Self::Mod1 => "Mod1",
            Self::Mod2 => "Mod2",
            Self::Mod3 => "Mod3",
            Self::Mod4 => "Mod4",
            Self::Mod5 => "Mod5",
            Self::ModifierKeys => "modifier_keys",
            Self::ModifierMap => "modifier_map",
            Self::Modifiers => "modifiers",
            Self::ModMap => "mod_map",
            Self::Modmap => "modmap",
            Self::Modmapmods => "modmapmods",
            Self::Mods => "mods",
            Self::MouseKeys => "MouseKeys",
            Self::MouseKeysAccel => "MouseKeysAccel",
            Self::MovePointer => "MovePointer",
            Self::MovePtr => "MovePtr",
            Self::Name => "name",
            Self::Neither => "neither",
            Self::No => "no",
            Self::NoAction => "NoAction",
            Self::LessThan_None_GreaterThan => "<none>",
            Self::None => "none",
            Self::NoneOf => "NoneOf",
            Self::Nosymbol => "nosymbol",
            Self::Off => "off",
            Self::On => "on",
            Self::ONE_LEVEL => "ONE_LEVEL",
            Self::Outline => "outline",
            Self::Overlay => "overlay",
            Self::Overlay1 => "Overlay1",
            Self::Overlay2 => "Overlay2",
            Self::Override => "override",
            Self::Partial => "partial",
            Self::Permanentradiogroup => "permanentradiogroup",
            Self::PointerButton => "PointerButton",
            Self::Preserve => "preserve",
            Self::Private => "Private",
            Self::PtrBtn => "PtrBtn",
            Self::Radiogroup => "radiogroup",
            Self::Redirect => "Redirect",
            Self::Redirectgroups => "redirectgroups",
            Self::RedirectKey => "RedirectKey",
            Self::Repeat => "repeat",
            Self::Repeating => "repeating",
            Self::RepeatKeys => "RepeatKeys",
            Self::Repeats => "repeats",
            Self::Replace => "replace",
            Self::Report => "report",
            Self::Row => "row",
            Self::Same => "same",
            Self::SameServer => "sameServer",
            Self::Screen => "screen",
            Self::Section => "section",
            Self::SetControls => "SetControls",
            Self::SetGroup => "SetGroup",
            Self::SetMods => "SetMods",
            Self::SetPointerDefault => "SetPointerDefault",
            Self::SetPtrDflt => "SetPtrDflt",
            Self::Shape => "shape",
            Self::Shift => "Shift",
            Self::SlowKeys => "SlowKeys",
            Self::Solid => "solid",
            Self::LessThan_Some_GreaterThan => "<some>",
            Self::StickyKeys => "StickyKeys",
            Self::SwitchScreen => "SwitchScreen",
            Self::Symbols => "symbols",
            Self::Terminate => "Terminate",
            Self::TerminateServer => "TerminateServer",
            Self::Text => "text",
            Self::True => "true",
            Self::TWO_LEVEL => "TWO_LEVEL",
            Self::Type => "type",
            Self::Types => "types",
            Self::Unlock => "unlock",
            Self::Usemodmap => "usemodmap",
            Self::Usemodmapmods => "usemodmapmods",
            Self::Value => "value",
            Self::Virtual => "virtual",
            Self::Virtualmod => "virtualmod",
            Self::Virtualmodifier => "virtualmodifier",
            Self::VirtualModifiers => "virtual_modifiers",
            Self::Virtualmodifiers => "virtualmodifiers",
            Self::Virtualmods => "virtualmods",
            Self::Vmods => "vmods",
            Self::VoidAction => "VoidAction",
            Self::Voidsymbol => "voidsymbol",
            Self::Whichgroupstate => "whichgroupstate",
            Self::Whichmodifierstate => "whichmodifierstate",
            Self::Whichmodstate => "whichmodstate",
            Self::Wrapgroups => "wrapgroups",
            Self::X => "x",
            Self::XkbCompat => "xkb_compat",
            Self::XkbCompatibility => "xkb_compatibility",
            Self::XkbCompatibilityMap => "xkb_compatibility_map",
            Self::XkbCompatMap => "xkb_compat_map",
            Self::XkbGeometry => "xkb_geometry",
            Self::XkbKeycodes => "xkb_keycodes",
            Self::XkbKeymap => "xkb_keymap",
            Self::XkbLayout => "xkb_layout",
            Self::XkbSemantics => "xkb_semantics",
            Self::XkbSymbols => "xkb_symbols",
            Self::XkbTypes => "xkb_types",
            Self::Y => "y",
            Self::Yes => "yes",
        }
    }

    pub(super) fn lowercase(self) -> &'static str {
        match self {
            Self::__Unknown => "__Unknown",
            Self::Accel => "accel",
            Self::Accelerate => "accelerate",
            Self::AccessXFeedback => "accessxfeedback",
            Self::AccessXKeys => "accessxkeys",
            Self::AccessXTimeout => "accessxtimeout",
            Self::Action => "action",
            Self::ActionMessage => "actionmessage",
            Self::Actions => "actions",
            Self::Affect => "affect",
            Self::Alias => "alias",
            Self::All => "all",
            Self::AllOf => "allof",
            Self::Allowexplicit => "allowexplicit",
            Self::Allownone => "allownone",
            Self::ALPHABETIC => "alphabetic",
            Self::AlphanumericKeys => "alphanumeric_keys",
            Self::Alt => "alt",
            Self::Alternate => "alternate",
            Self::AlternateGroup => "alternate_group",
            Self::LessThan_Any_GreaterThan => "<any>",
            Self::Any => "any",
            Self::Anylevel => "anylevel",
            Self::AnyOf => "anyof",
            Self::AnyOfOrNone => "anyofornone",
            Self::AudibleBell => "audiblebell",
            Self::Augment => "augment",
            Self::AutoRepeat => "autorepeat",
            Self::Base => "base",
            Self::Both => "both",
            Self::BounceKeys => "bouncekeys",
            Self::Button => "button",
            Self::Caps => "caps",
            Self::Clampgroups => "clampgroups",
            Self::ClearLocks => "clearlocks",
            Self::Clearmodifiers => "clearmodifiers",
            Self::Clearmods => "clearmods",
            Self::Compat => "compat",
            Self::Control => "control",
            Self::Controls => "controls",
            Self::Count => "count",
            Self::Ctrl => "ctrl",
            Self::Ctrls => "ctrls",
            Self::Data => "data",
            Self::Default => "default",
            Self::Defaultbutton => "defaultbutton",
            Self::Dev => "dev",
            Self::DevBtn => "devbtn",
            Self::DevButton => "devbutton",
            Self::Device => "device",
            Self::DeviceBtn => "devicebtn",
            Self::DeviceButton => "devicebutton",
            Self::DeviceVal => "deviceval",
            Self::DeviceValuator => "devicevaluator",
            Self::DevVal => "devval",
            Self::DevValuator => "devvaluator",
            Self::Dfltbtn => "dfltbtn",
            Self::Driveskbd => "driveskbd",
            Self::Driveskeyboard => "driveskeyboard",
            Self::Effective => "effective",
            Self::Exactly => "exactly",
            Self::False => "false",
            Self::FOUR_LEVEL => "four_level",
            Self::FOUR_LEVEL_ALPHABETIC => "four_level_alphabetic",
            Self::FOUR_LEVEL_KEYPAD => "four_level_keypad",
            Self::FOUR_LEVEL_SEMIALPHABETIC => "four_level_semialphabetic",
            Self::FunctionKeys => "function_keys",
            Self::GenerateKeyEvent => "generatekeyevent",
            Self::GenKeyEvent => "genkeyevent",
            Self::Geometry => "geometry",
            Self::Group => "group",
            Self::Groupname => "groupname",
            Self::Groups => "groups",
            Self::Groupsclamp => "groupsclamp",
            Self::Groupsredirect => "groupsredirect",
            Self::Groupswrap => "groupswrap",
            Self::Hidden => "hidden",
            Self::IgnoreGroupLock => "ignoregrouplock",
            Self::Include => "include",
            Self::Increment => "increment",
            Self::Index => "index",
            Self::Indicator => "indicator",
            Self::Indicatordriveskbd => "indicatordriveskbd",
            Self::Indicatordriveskeyboard => "indicatordriveskeyboard",
            Self::Interpret => "interpret",
            Self::ISOLock => "isolock",
            Self::Kc => "kc",
            Self::Key => "key",
            Self::Keycode => "keycode",
            Self::Keycodes => "keycodes",
            Self::KEYPAD => "keypad",
            Self::KeypadKeys => "keypad_keys",
            Self::Keys => "keys",
            Self::Latched => "latched",
            Self::LatchGroup => "latchgroup",
            Self::LatchMods => "latchmods",
            Self::LatchToLock => "latchtolock",
            Self::Leddriveskbd => "leddriveskbd",
            Self::Leddriveskeyboard => "leddriveskeyboard",
            Self::Level1 => "level1",
            Self::LevelName => "level_name",
            Self::Levelname => "levelname",
            Self::Levelone => "levelone",
            Self::Lock => "lock",
            Self::LockControls => "lockcontrols",
            Self::LockDevBtn => "lockdevbtn",
            Self::LockDevButton => "lockdevbutton",
            Self::LockDeviceBtn => "lockdevicebtn",
            Self::LockDeviceButton => "lockdevicebutton",
            Self::Locked => "locked",
            Self::LockGroup => "lockgroup",
            Self::Locking => "locking",
            Self::LockMods => "lockmods",
            Self::LockPointerBtn => "lockpointerbtn",
            Self::LockPointerButton => "lockpointerbutton",
            Self::LockPtrBtn => "lockptrbtn",
            Self::LockPtrButton => "lockptrbutton",
            Self::Locks => "locks",
            Self::Logo => "logo",
            Self::Map => "map",
            Self::Maximum => "maximum",
            Self::Message => "message",
            Self::MessageAction => "messageaction",
            Self::Meta => "meta",
            Self::Minimum => "minimum",
            Self::Mod1 => "mod1",
            Self::Mod2 => "mod2",
            Self::Mod3 => "mod3",
            Self::Mod4 => "mod4",
            Self::Mod5 => "mod5",
            Self::ModifierKeys => "modifier_keys",
            Self::ModifierMap => "modifier_map",
            Self::Modifiers => "modifiers",
            Self::ModMap => "mod_map",
            Self::Modmap => "modmap",
            Self::Modmapmods => "modmapmods",
            Self::Mods => "mods",
            Self::MouseKeys => "mousekeys",
            Self::MouseKeysAccel => "mousekeysaccel",
            Self::MovePointer => "movepointer",
            Self::MovePtr => "moveptr",
            Self::Name => "name",
            Self::Neither => "neither",
            Self::No => "no",
            Self::NoAction => "noaction",
            Self::LessThan_None_GreaterThan => "<none>",
            Self::None => "none",
            Self::NoneOf => "noneof",
            Self::Nosymbol => "nosymbol",
            Self::Off => "off",
            Self::On => "on",
            Self::ONE_LEVEL => "one_level",
            Self::Outline => "outline",
            Self::Overlay => "overlay",
            Self::Overlay1 => "overlay1",
            Self::Overlay2 => "overlay2",
            Self::Override => "override",
            Self::Partial => "partial",
            Self::Permanentradiogroup => "permanentradiogroup",
            Self::PointerButton => "pointerbutton",
            Self::Preserve => "preserve",
            Self::Private => "private",
            Self::PtrBtn => "ptrbtn",
            Self::Radiogroup => "radiogroup",
            Self::Redirect => "redirect",
            Self::Redirectgroups => "redirectgroups",
            Self::RedirectKey => "redirectkey",
            Self::Repeat => "repeat",
            Self::Repeating => "repeating",
            Self::RepeatKeys => "repeatkeys",
            Self::Repeats => "repeats",
            Self::Replace => "replace",
            Self::Report => "report",
            Self::Row => "row",
            Self::Same => "same",
            Self::SameServer => "sameserver",
            Self::Screen => "screen",
            Self::Section => "section",
            Self::SetControls => "setcontrols",
            Self::SetGroup => "setgroup",
            Self::SetMods => "setmods",
            Self::SetPointerDefault => "setpointerdefault",
            Self::SetPtrDflt => "setptrdflt",
            Self::Shape => "shape",
            Self::Shift => "shift",
            Self::SlowKeys => "slowkeys",
            Self::Solid => "solid",
            Self::LessThan_Some_GreaterThan => "<some>",
            Self::StickyKeys => "stickykeys",
            Self::SwitchScreen => "switchscreen",
            Self::Symbols => "symbols",
            Self::Terminate => "terminate",
            Self::TerminateServer => "terminateserver",
            Self::Text => "text",
            Self::True => "true",
            Self::TWO_LEVEL => "two_level",
            Self::Type => "type",
            Self::Types => "types",
            Self::Unlock => "unlock",
            Self::Usemodmap => "usemodmap",
            Self::Usemodmapmods => "usemodmapmods",
            Self::Value => "value",
            Self::Virtual => "virtual",
            Self::Virtualmod => "virtualmod",
            Self::Virtualmodifier => "virtualmodifier",
            Self::VirtualModifiers => "virtual_modifiers",
            Self::Virtualmodifiers => "virtualmodifiers",
            Self::Virtualmods => "virtualmods",
            Self::Vmods => "vmods",
            Self::VoidAction => "voidaction",
            Self::Voidsymbol => "voidsymbol",
            Self::Whichgroupstate => "whichgroupstate",
            Self::Whichmodifierstate => "whichmodifierstate",
            Self::Whichmodstate => "whichmodstate",
            Self::Wrapgroups => "wrapgroups",
            Self::X => "x",
            Self::XkbCompat => "xkb_compat",
            Self::XkbCompatibility => "xkb_compatibility",
            Self::XkbCompatibilityMap => "xkb_compatibility_map",
            Self::XkbCompatMap => "xkb_compat_map",
            Self::XkbGeometry => "xkb_geometry",
            Self::XkbKeycodes => "xkb_keycodes",
            Self::XkbKeymap => "xkb_keymap",
            Self::XkbLayout => "xkb_layout",
            Self::XkbSemantics => "xkb_semantics",
            Self::XkbSymbols => "xkb_symbols",
            Self::XkbTypes => "xkb_types",
            Self::Y => "y",
            Self::Yes => "yes",
        }
    }
}

pub(super) static LOWERCASE_TO_MEANING: PhfMap<[u8], Meaning> = PhfMap {
    key: 12913932095322966823,
    disps: &[(0, 1), (0, 74), (0, 19), (0, 0), (0, 1), (0, 5), (0, 0), (0, 3), (0, 1), (0, 15), (0, 225), (0, 111), (0, 24), (0, 0), (0, 62), (0, 4), (0, 1), (0, 0), (0, 12), (0, 2), (0, 2), (0, 33), (0, 0), (0, 4), (0, 64), (0, 9), (0, 1), (0, 27), (0, 9), (0, 104), (0, 7), (0, 8), (0, 64), (0, 12), (0, 67), (0, 130), (0, 65), (1, 90), (0, 15), (0, 6), (0, 69), (0, 5), (0, 67), (0, 36), (0, 72), (0, 93), (0, 5), (0, 1), (2, 200), (0, 64), (0, 1), (1, 143), (0, 6), (3, 65), (1, 16), (0, 1), (0, 46), (1, 49), (1, 37), (0, 83), (0, 53), (3, 18), (0, 10), (20, 146)],
    map: &[Meaning::LessThan_None_GreaterThan, Meaning::Allownone, Meaning::SwitchScreen, Meaning::Report, Meaning::Levelone, Meaning::Index, Meaning::Neither, Meaning::Groups, Meaning::Indicatordriveskeyboard, Meaning::XkbSemantics, Meaning::DeviceValuator, Meaning::Overlay1, Meaning::Virtualmod, Meaning::Groupname, Meaning::Control, Meaning::Private, Meaning::Alternate, Meaning::Minimum, Meaning::FOUR_LEVEL_KEYPAD, Meaning::Row, Meaning::AnyOf, Meaning::None, Meaning::LockDevBtn, Meaning::All, Meaning::Shape, Meaning::Logo, Meaning::Caps, Meaning::GenerateKeyEvent, Meaning::Meta, Meaning::FOUR_LEVEL_SEMIALPHABETIC, Meaning::Key, Meaning::Whichmodifierstate, Meaning::LockPointerBtn, Meaning::LatchToLock, Meaning::Levelname, Meaning::Whichgroupstate, Meaning::Clearmods, Meaning::ClearLocks, Meaning::ModifierMap, Meaning::DevValuator, Meaning::Ctrls, Meaning::Mod4, Meaning::Locked, Meaning::Ctrl, Meaning::Clearmodifiers, Meaning::GenKeyEvent, Meaning::Accel, Meaning::ModifierKeys, Meaning::LockDevButton, Meaning::Modmap, Meaning::Compat, Meaning::DeviceButton, Meaning::LockPtrBtn, Meaning::NoAction, Meaning::Radiogroup, Meaning::XkbGeometry, Meaning::Mod1, Meaning::AnyOfOrNone, Meaning::FOUR_LEVEL_ALPHABETIC, Meaning::Both, Meaning::MovePointer, Meaning::Virtualmodifiers, Meaning::Screen, Meaning::Types, Meaning::DeviceVal, Meaning::Y, Meaning::SlowKeys, Meaning::Partial, Meaning::Voidsymbol, Meaning::XkbCompatibility, Meaning::AccessXFeedback, Meaning::Include, Meaning::Mod2, Meaning::Alias, Meaning::KEYPAD, Meaning::PointerButton, Meaning::Override, Meaning::ActionMessage, Meaning::XkbLayout, Meaning::XkbKeymap, Meaning::Usemodmapmods, Meaning::Dfltbtn, Meaning::XkbCompatMap, Meaning::Symbols, Meaning::SetMods, Meaning::LockPointerButton, Meaning::Terminate, Meaning::No, Meaning::Groupsredirect, Meaning::Keycodes, Meaning::Locks, Meaning::Latched, Meaning::Interpret, Meaning::Replace, Meaning::Indicatordriveskbd, Meaning::Wrapgroups, Meaning::AutoRepeat, Meaning::True, Meaning::Overlay, Meaning::DevVal, Meaning::Mods, Meaning::IgnoreGroupLock, Meaning::Keycode, Meaning::Unlock, Meaning::AllOf, Meaning::Lock, Meaning::SetPointerDefault, Meaning::Effective, Meaning::RedirectKey, Meaning::Map, Meaning::Indicator, Meaning::ALPHABETIC, Meaning::Count, Meaning::LevelName, Meaning::On, Meaning::VoidAction, Meaning::Outline, Meaning::LockGroup, Meaning::Increment, Meaning::ONE_LEVEL, Meaning::Value, Meaning::False, Meaning::Base, Meaning::Redirect, Meaning::MovePtr, Meaning::Vmods, Meaning::SetGroup, Meaning::Permanentradiogroup, Meaning::DeviceBtn, Meaning::Action, Meaning::AccessXTimeout, Meaning::Virtualmods, Meaning::XkbTypes, Meaning::ISOLock, Meaning::Dev, Meaning::Virtual, Meaning::Defaultbutton, Meaning::Repeat, Meaning::Button, Meaning::LockDeviceButton, Meaning::TerminateServer, Meaning::LessThan_Some_GreaterThan, Meaning::SetControls, Meaning::BounceKeys, Meaning::NoneOf, Meaning::Virtualmodifier, Meaning::Repeats, Meaning::Section, Meaning::Maximum, Meaning::Kc, Meaning::XkbSymbols, Meaning::Default, Meaning::FunctionKeys, Meaning::Locking, Meaning::Same, Meaning::MessageAction, Meaning::Yes, Meaning::Level1, Meaning::Alt, Meaning::TWO_LEVEL, Meaning::FOUR_LEVEL, Meaning::Off, Meaning::Leddriveskeyboard, Meaning::Groupsclamp, Meaning::Groupswrap, Meaning::VirtualModifiers, Meaning::Any, Meaning::Controls, Meaning::Text, Meaning::Type, Meaning::Driveskbd, Meaning::Group, Meaning::SetPtrDflt, Meaning::SameServer, Meaning::LockDeviceBtn, Meaning::Overlay2, Meaning::X, Meaning::Shift, Meaning::MouseKeys, Meaning::Allowexplicit, Meaning::LockPtrButton, Meaning::ModMap, Meaning::Exactly, Meaning::LockControls, Meaning::DevBtn, Meaning::Usemodmap, Meaning::AlphanumericKeys, Meaning::Leddriveskbd, Meaning::Mod5, Meaning::Affect, Meaning::KeypadKeys, Meaning::Mod3, Meaning::AccessXKeys, Meaning::Hidden, Meaning::AlternateGroup, Meaning::Whichmodstate, Meaning::LatchMods, Meaning::Clampgroups, Meaning::Augment, Meaning::Solid, Meaning::Name, Meaning::Geometry, Meaning::RepeatKeys, Meaning::Driveskeyboard, Meaning::Actions, Meaning::Modifiers, Meaning::XkbCompat, Meaning::LatchGroup, Meaning::Device, Meaning::AudibleBell, Meaning::DevButton, Meaning::MouseKeysAccel, Meaning::Anylevel, Meaning::Message, Meaning::Repeating, Meaning::Redirectgroups, Meaning::PtrBtn, Meaning::XkbCompatibilityMap, Meaning::Keys, Meaning::Accelerate, Meaning::Data, Meaning::LockMods, Meaning::Modmapmods, Meaning::LessThan_Any_GreaterThan, Meaning::XkbKeycodes, Meaning::Nosymbol, Meaning::StickyKeys, Meaning::Preserve],
    _phantom: core::marker::PhantomData,
};

pub(super) static STRING_TO_MEANING: PhfMap<[u8], Meaning> = PhfMap {
    key: 12913932095322966823,
    disps: &[(0, 2), (0, 140), (0, 2), (0, 5), (0, 50), (0, 7), (0, 21), (0, 2), (0, 4), (0, 23), (0, 3), (0, 0), (0, 42), (0, 0), (0, 70), (0, 12), (0, 2), (0, 11), (0, 28), (0, 0), (0, 120), (0, 0), (0, 24), (0, 36), (0, 31), (0, 17), (0, 0), (0, 1), (1, 39), (0, 38), (0, 1), (0, 29), (0, 4), (0, 47), (0, 1), (0, 27), (0, 12), (0, 127), (0, 4), (0, 4), (0, 63), (1, 118), (0, 10), (0, 73), (0, 17), (0, 23), (0, 193), (0, 21), (0, 213), (0, 35), (0, 3), (2, 136), (0, 72), (0, 4), (0, 71), (0, 3), (1, 187), (0, 41), (0, 53), (1, 41), (3, 0), (0, 60), (0, 0), (3, 93)],
    map: &[Meaning::Accelerate, Meaning::XkbKeycodes, Meaning::LessThan_None_GreaterThan, Meaning::Levelone, Meaning::Anylevel, Meaning::TerminateServer, Meaning::Types, Meaning::LatchMods, Meaning::Indicatordriveskeyboard, Meaning::Group, Meaning::XkbSemantics, Meaning::LessThan_Any_GreaterThan, Meaning::ModifierMap, Meaning::DeviceBtn, Meaning::True, Meaning::GenKeyEvent, Meaning::LockDeviceBtn, Meaning::SetGroup, Meaning::Alternate, Meaning::SlowKeys, Meaning::Key, Meaning::Groupname, Meaning::Screen, Meaning::Index, Meaning::Shape, Meaning::All, Meaning::Defaultbutton, Meaning::Usemodmapmods, Meaning::Groups, Meaning::AllOf, Meaning::Whichmodifierstate, Meaning::Preserve, Meaning::Interpret, Meaning::Locks, Meaning::Ctrls, Meaning::AccessXTimeout, Meaning::Count, Meaning::Clearmods, Meaning::Whichgroupstate, Meaning::DevButton, Meaning::XkbSymbols, Meaning::Mod5, Meaning::Clearmodifiers, Meaning::Locked, Meaning::Voidsymbol, Meaning::Exactly, Meaning::MouseKeys, Meaning::ModifierKeys, Meaning::Unlock, Meaning::Compat, Meaning::Levelname, Meaning::BounceKeys, Meaning::AnyOf, Meaning::AccessXFeedback, Meaning::On, Meaning::Modmapmods, Meaning::MovePointer, Meaning::DeviceValuator, Meaning::LevelName, Meaning::XkbCompatibility, Meaning::NoneOf, Meaning::Both, Meaning::Radiogroup, Meaning::Ctrl, Meaning::Y, Meaning::Latched, Meaning::LockPointerBtn, Meaning::Base, Meaning::Button, Meaning::Virtualmodifiers, Meaning::Modmap, Meaning::Include, Meaning::XkbLayout, Meaning::ActionMessage, Meaning::SetPtrDflt, Meaning::DevVal, Meaning::ALPHABETIC, Meaning::Section, Meaning::Override, Meaning::Mod3, Meaning::XkbKeymap, Meaning::KEYPAD, Meaning::MessageAction, Meaning::Keycodes, Meaning::VoidAction, Meaning::ISOLock, Meaning::Dfltbtn, Meaning::Type, Meaning::DeviceVal, Meaning::No, Meaning::XkbGeometry, Meaning::Replace, Meaning::Overlay, Meaning::DeviceButton, Meaning::Alias, Meaning::TWO_LEVEL, Meaning::StickyKeys, Meaning::Leddriveskeyboard, Meaning::LockPtrBtn, Meaning::Action, Meaning::Driveskeyboard, Meaning::SetPointerDefault, Meaning::Virtual, Meaning::Symbols, Meaning::Repeating, Meaning::Keycode, Meaning::Redirect, Meaning::Map, Meaning::Effective, Meaning::Row, Meaning::SetControls, Meaning::Increment, Meaning::Alt, Meaning::Allowexplicit, Meaning::LockPointerButton, Meaning::Outline, Meaning::NoAction, Meaning::Driveskbd, Meaning::Caps, Meaning::XkbCompatMap, Meaning::Value, Meaning::DevValuator, Meaning::RepeatKeys, Meaning::Mod1, Meaning::Control, Meaning::Meta, Meaning::Vmods, Meaning::Wrapgroups, Meaning::Usemodmap, Meaning::IgnoreGroupLock, Meaning::XkbTypes, Meaning::Private, Meaning::Dev, Meaning::LatchToLock, Meaning::Default, Meaning::ClearLocks, Meaning::VirtualModifiers, Meaning::LockDeviceButton, Meaning::Repeat, Meaning::Shift, Meaning::FOUR_LEVEL, Meaning::LatchGroup, Meaning::Indicator, Meaning::Terminate, Meaning::FOUR_LEVEL_SEMIALPHABETIC, Meaning::Redirectgroups, Meaning::GenerateKeyEvent, Meaning::Virtualmods, Meaning::Kc, Meaning::LockMods, Meaning::FunctionKeys, Meaning::AutoRepeat, Meaning::LessThan_Some_GreaterThan, Meaning::Lock, Meaning::Maximum, Meaning::ModMap, Meaning::Level1, Meaning::Groupsclamp, Meaning::DevBtn, Meaning::Locking, Meaning::Indicatordriveskbd, Meaning::Virtualmodifier, Meaning::Permanentradiogroup, Meaning::Groupswrap, Meaning::Clampgroups, Meaning::False, Meaning::Repeats, Meaning::Yes, Meaning::Message, Meaning::Any, Meaning::AnyOfOrNone, Meaning::Mod2, Meaning::Groupsredirect, Meaning::Mod4, Meaning::Virtualmod, Meaning::PtrBtn, Meaning::Leddriveskbd, Meaning::AlternateGroup, Meaning::X, Meaning::LockDevButton, Meaning::Overlay1, Meaning::PointerButton, Meaning::Text, Meaning::None, Meaning::XkbCompatibilityMap, Meaning::AlphanumericKeys, Meaning::RedirectKey, Meaning::LockPtrButton, Meaning::Affect, Meaning::Allownone, Meaning::MovePtr, Meaning::LockDevBtn, Meaning::Same, Meaning::ONE_LEVEL, Meaning::Actions, Meaning::Modifiers, Meaning::AudibleBell, Meaning::Logo, Meaning::Augment, Meaning::Overlay2, Meaning::FOUR_LEVEL_ALPHABETIC, Meaning::Solid, Meaning::Controls, Meaning::LockGroup, Meaning::Hidden, Meaning::Neither, Meaning::Whichmodstate, Meaning::Keys, Meaning::XkbCompat, Meaning::Geometry, Meaning::Off, Meaning::KeypadKeys, Meaning::Minimum, Meaning::FOUR_LEVEL_KEYPAD, Meaning::Report, Meaning::LockControls, Meaning::Device, Meaning::Accel, Meaning::SetMods, Meaning::Data, Meaning::SwitchScreen, Meaning::Name, Meaning::SameServer, Meaning::AccessXKeys, Meaning::Partial, Meaning::Mods, Meaning::MouseKeysAccel, Meaning::Nosymbol],
    _phantom: core::marker::PhantomData,
};