summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRan Benita <ran234@gmail.com>2012-09-27 20:16:12 +0200
committerRan Benita <ran234@gmail.com>2012-09-27 21:41:54 +0200
commit92e07726b29d129d2ca793c3614353d35a1a6b40 (patch)
tree78c15f6e161ff2979970c230f13e75e994d4a3a8
parent32c19f4b449f3c23297621181882cf7143ec666e (diff)
test: add keycodes files which map directly to evdev codes
This is a proof-of-concept for the long key names. The keycodes in the file evdev-xkbcommon are autogenerated from linux/input.h, and uses the names given there; all of the previous names are aliased to the new names, so they continue to work with the symbols files, etc. You can try it with 'sudo ./test/interactive -r evdev-xkbcommon -n 0' The -n 0 means that we don't offset the evdev scan codes - just feed them directly. The -r evdev-xkbcommon just means to use a new rules file which makes us use the new keycodes file. (The only problem I can see is with the MENU and LSGT names which has some conflicts). Maybe some day xkeyboard-config could ship something similar, so that the 8 offset is unneeded. Signed-off-by: Ran Benita <ran234@gmail.com>
-rw-r--r--test/data/keycodes/aliases-xkbcommon99
-rw-r--r--test/data/keycodes/evdev-xkbcommon504
-rw-r--r--test/data/rules/evdev-xkbcommon1092
3 files changed, 1695 insertions, 0 deletions
diff --git a/test/data/keycodes/aliases-xkbcommon b/test/data/keycodes/aliases-xkbcommon
new file mode 100644
index 0000000..96a17ab
--- /dev/null
+++ b/test/data/keycodes/aliases-xkbcommon
@@ -0,0 +1,99 @@
+
+// keycode aliases for phonetic keyboard maps
+
+default
+xkb_keycodes "qwerty" {
+
+ alias <LatQ> = <Q>;
+ alias <LatW> = <W>;
+ alias <LatE> = <E>;
+ alias <LatR> = <R>;
+ alias <LatT> = <T>;
+ alias <LatY> = <Y>;
+ alias <LatU> = <U>;
+ alias <LatI> = <I>;
+ alias <LatO> = <O>;
+ alias <LatP> = <P>;
+
+ alias <LatA> = <A>;
+ alias <LatS> = <S>;
+ alias <LatD> = <D>;
+ alias <LatF> = <F>;
+ alias <LatG> = <G>;
+ alias <LatH> = <H>;
+ alias <LatJ> = <J>;
+ alias <LatK> = <K>;
+ alias <LatL> = <L>;
+
+ alias <LatZ> = <Z>;
+ alias <LatX> = <X>;
+ alias <LatC> = <C>;
+ alias <LatV> = <V>;
+ alias <LatB> = <B>;
+ alias <LatN> = <N>;
+ alias <LatM> = <M>;
+};
+
+xkb_keycodes "azerty" {
+
+ alias <LatA> = <Q>;
+ alias <LatZ> = <W>;
+ alias <LatE> = <E>;
+ alias <LatR> = <R>;
+ alias <LatT> = <T>;
+ alias <LatY> = <Y>;
+ alias <LatU> = <U>;
+ alias <LatI> = <I>;
+ alias <LatO> = <O>;
+ alias <LatP> = <P>;
+
+ alias <LatQ> = <A>;
+ alias <LatS> = <S>;
+ alias <LatD> = <D>;
+ alias <LatF> = <F>;
+ alias <LatG> = <G>;
+ alias <LatH> = <H>;
+ alias <LatJ> = <J>;
+ alias <LatK> = <K>;
+ alias <LatL> = <L>;
+ alias <LatM> = <SEMICOLON>;
+
+ alias <LatW> = <Z>;
+ alias <LatX> = <X>;
+ alias <LatC> = <C>;
+ alias <LatV> = <V>;
+ alias <LatB> = <B>;
+ alias <LatN> = <N>;
+};
+
+xkb_keycodes "qwertz" {
+
+ alias <LatQ> = <Q>;
+ alias <LatW> = <W>;
+ alias <LatE> = <E>;
+ alias <LatR> = <R>;
+ alias <LatT> = <T>;
+ alias <LatZ> = <Y>;
+ alias <LatU> = <U>;
+ alias <LatI> = <I>;
+ alias <LatO> = <O>;
+ alias <LatP> = <P>;
+
+ alias <LatA> = <A>;
+ alias <LatS> = <S>;
+ alias <LatD> = <D>;
+ alias <LatF> = <F>;
+ alias <LatG> = <G>;
+ alias <LatH> = <H>;
+ alias <LatJ> = <J>;
+ alias <LatK> = <K>;
+ alias <LatL> = <L>;
+
+ alias <LatY> = <Z>;
+ alias <LatX> = <X>;
+ alias <LatC> = <C>;
+ alias <LatV> = <V>;
+ alias <LatB> = <B>;
+ alias <LatN> = <N>;
+ alias <LatM> = <M>;
+};
diff --git a/test/data/keycodes/evdev-xkbcommon b/test/data/keycodes/evdev-xkbcommon
new file mode 100644
index 0000000..e388362
--- /dev/null
+++ b/test/data/keycodes/evdev-xkbcommon
@@ -0,0 +1,504 @@
+default xkb_keycodes "evdev" {
+ <ESC> = 1;
+ <1> = 2;
+ <2> = 3;
+ <3> = 4;
+ <4> = 5;
+ <5> = 6;
+ <6> = 7;
+ <7> = 8;
+ <8> = 9;
+ <9> = 10;
+ <0> = 11;
+ <MINUS> = 12;
+ <EQUAL> = 13;
+ <BACKSPACE> = 14;
+ <TAB> = 15;
+ <Q> = 16;
+ <W> = 17;
+ <E> = 18;
+ <R> = 19;
+ <T> = 20;
+ <Y> = 21;
+ <U> = 22;
+ <I> = 23;
+ <O> = 24;
+ <P> = 25;
+ <LEFTBRACE> = 26;
+ <RIGHTBRACE> = 27;
+ <ENTER> = 28;
+ <LEFTCTRL> = 29;
+ <A> = 30;
+ <S> = 31;
+ <D> = 32;
+ <F> = 33;
+ <G> = 34;
+ <H> = 35;
+ <J> = 36;
+ <K> = 37;
+ <L> = 38;
+ <SEMICOLON> = 39;
+ <APOSTROPHE> = 40;
+ <GRAVE> = 41;
+ <LEFTSHIFT> = 42;
+ <BACKSLASH> = 43;
+ <Z> = 44;
+ <X> = 45;
+ <C> = 46;
+ <V> = 47;
+ <B> = 48;
+ <N> = 49;
+ <M> = 50;
+ <COMMA> = 51;
+ <DOT> = 52;
+ <SLASH> = 53;
+ <RIGHTSHIFT> = 54;
+ <KPASTERISK> = 55;
+ <LEFTALT> = 56;
+ <SPACE> = 57;
+ <CAPSLOCK> = 58;
+ <F1> = 59;
+ <F2> = 60;
+ <F3> = 61;
+ <F4> = 62;
+ <F5> = 63;
+ <F6> = 64;
+ <F7> = 65;
+ <F8> = 66;
+ <F9> = 67;
+ <F10> = 68;
+ <NUMLOCK> = 69;
+ <SCROLLLOCK> = 70;
+ <KP7> = 71;
+ <KP8> = 72;
+ <KP9> = 73;
+ <KPMINUS> = 74;
+ <KP4> = 75;
+ <KP5> = 76;
+ <KP6> = 77;
+ <KPPLUS> = 78;
+ <KP1> = 79;
+ <KP2> = 80;
+ <KP3> = 81;
+ <KP0> = 82;
+ <KPDOT> = 83;
+ <ZENKAKUHANKAKU> = 85;
+ <102ND> = 86;
+ <F11> = 87;
+ <F12> = 88;
+ <RO> = 89;
+ <KATAKANA> = 90;
+ <HIRAGANA> = 91;
+ <HENKAN> = 92;
+ <KATAKANAHIRAGANA> = 93;
+ <MUHENKAN> = 94;
+ <KPJPCOMMA> = 95;
+ <KPENTER> = 96;
+ <RIGHTCTRL> = 97;
+ <KPSLASH> = 98;
+ <SYSRQ> = 99;
+ <RIGHTALT> = 100;
+ <LINEFEED> = 101;
+ <HOME> = 102;
+ <UP> = 103;
+ <PAGEUP> = 104;
+ <LEFT> = 105;
+ <RIGHT> = 106;
+ <END> = 107;
+ <DOWN> = 108;
+ <PAGEDOWN> = 109;
+ <INSERT> = 110;
+ <DELETE> = 111;
+ <MACRO> = 112;
+ <MUTE> = 113;
+ <VOLUMEDOWN> = 114;
+ <VOLUMEUP> = 115;
+ <POWER> = 116;
+ <KPEQUAL> = 117;
+ <KPPLUSMINUS> = 118;
+ <PAUSE> = 119;
+ <SCALE> = 120;
+ <KPCOMMA> = 121;
+ <HANGEUL> = 122;
+ <HANJA> = 123;
+ <YEN> = 124;
+ <LEFTMETA> = 125;
+ <RIGHTMETA> = 126;
+ <COMPOSE> = 127;
+ <STOP> = 128;
+ <AGAIN> = 129;
+ <PROPS> = 130;
+ <UNDO> = 131;
+ <FRONT> = 132;
+ <COPY> = 133;
+ <OPEN> = 134;
+ <PASTE> = 135;
+ <FIND> = 136;
+ <CUT> = 137;
+ <HELP> = 138;
+ <MENU> = 139;
+ <CALC> = 140;
+ <SETUP> = 141;
+ <SLEEP> = 142;
+ <WAKEUP> = 143;
+ <FILE> = 144;
+ <SENDFILE> = 145;
+ <DELETEFILE> = 146;
+ <XFER> = 147;
+ <PROG1> = 148;
+ <PROG2> = 149;
+ <WWW> = 150;
+ <MSDOS> = 151;
+ <COFFEE> = 152;
+ <DIRECTION> = 153;
+ <CYCLEWINDOWS> = 154;
+ <MAIL> = 155;
+ <BOOKMARKS> = 156;
+ <COMPUTER> = 157;
+ <BACK> = 158;
+ <FORWARD> = 159;
+ <CLOSECD> = 160;
+ <EJECTCD> = 161;
+ <EJECTCLOSECD> = 162;
+ <NEXTSONG> = 163;
+ <PLAYPAUSE> = 164;
+ <PREVIOUSSONG> = 165;
+ <STOPCD> = 166;
+ <RECORD> = 167;
+ <REWIND> = 168;
+ <PHONE> = 169;
+ <ISO> = 170;
+ <CONFIG> = 171;
+ <HOMEPAGE> = 172;
+ <REFRESH> = 173;
+ <EXIT> = 174;
+ <MOVE> = 175;
+ <EDIT> = 176;
+ <SCROLLUP> = 177;
+ <SCROLLDOWN> = 178;
+ <KPLEFTPAREN> = 179;
+ <KPRIGHTPAREN> = 180;
+ <NEW> = 181;
+ <REDO> = 182;
+ <F13> = 183;
+ <F14> = 184;
+ <F15> = 185;
+ <F16> = 186;
+ <F17> = 187;
+ <F18> = 188;
+ <F19> = 189;
+ <F20> = 190;
+ <F21> = 191;
+ <F22> = 192;
+ <F23> = 193;
+ <F24> = 194;
+ <PLAYCD> = 200;
+ <PAUSECD> = 201;
+ <PROG3> = 202;
+ <PROG4> = 203;
+ <DASHBOARD> = 204;
+ <SUSPEND> = 205;
+ <CLOSE> = 206;
+ <PLAY> = 207;
+ <FASTFORWARD> = 208;
+ <BASSBOOST> = 209;
+ <PRINT> = 210;
+ <HP> = 211;
+ <CAMERA> = 212;
+ <SOUND> = 213;
+ <QUESTION> = 214;
+ <EMAIL> = 215;
+ <CHAT> = 216;
+ <SEARCH> = 217;
+ <CONNECT> = 218;
+ <FINANCE> = 219;
+ <SPORT> = 220;
+ <SHOP> = 221;
+ <ALTERASE> = 222;
+ <CANCEL> = 223;
+ <BRIGHTNESSDOWN> = 224;
+ <BRIGHTNESSUP> = 225;
+ <MEDIA> = 226;
+ <SWITCHVIDEOMODE> = 227;
+ <KBDILLUMTOGGLE> = 228;
+ <KBDILLUMDOWN> = 229;
+ <KBDILLUMUP> = 230;
+ <SEND> = 231;
+ <REPLY> = 232;
+ <FORWARDMAIL> = 233;
+ <SAVE> = 234;
+ <DOCUMENTS> = 235;
+ <BATTERY> = 236;
+ <BLUETOOTH> = 237;
+ <WLAN> = 238;
+ <UWB> = 239;
+ <UNKNOWN> = 240;
+ <VIDEO_NEXT> = 241;
+ <VIDEO_PREV> = 242;
+ <BRIGHTNESS_CYCLE> = 243;
+ <BRIGHTNESS_ZERO> = 244;
+ <DISPLAY_OFF> = 245;
+ <WIMAX> = 246;
+ <RFKILL> = 247;
+ <MICMUTE> = 248;
+
+ // Fake keycodes for virtual keys
+ <LVL3> = 84;
+ <MDSW> = 195;
+ <ALT> = 196;
+ <META> = 197;
+ <SUPR> = 198;
+ <HYPR> = 199;
+
+ indicator 0x01 = "Num Lock"; // NUML
+ indicator 0x02 = "Caps Lock"; // CAPSL
+ indicator 0x03 = "Scroll Lock"; // SCROLLL
+ indicator 0x04 = "Compose"; // COMPOSE
+ indicator 0x05 = "Kana"; // KANA
+ indicator 0x06 = "Sleep"; // SLEEP
+ indicator 0x07 = "Suspend"; // SUSPEND
+ indicator 0x08 = "Mute"; // MUTE
+ indicator 0x09 = "Misc"; // MISC
+ indicator 0x0a = "Mail"; // MAIL
+ indicator 0x0b = "Charging"; // CHARGING
+
+ alias <TLDE> = <GRAVE>;
+ alias <AE01> = <1>;
+ alias <AE02> = <2>;
+ alias <AE03> = <3>;
+ alias <AE04> = <4>;
+ alias <AE05> = <5>;
+ alias <AE06> = <6>;
+ alias <AE07> = <7>;
+ alias <AE08> = <8>;
+ alias <AE09> = <9>;
+ alias <AE10> = <0>;
+ alias <AE11> = <MINUS>;
+ alias <AE12> = <EQUAL>;
+ alias <BKSP> = <BACKSPACE>;
+
+ alias <AD01> = <Q>;
+ alias <AD02> = <W>;
+ alias <AD03> = <E>;
+ alias <AD04> = <R>;
+ alias <AD05> = <T>;
+ alias <AD06> = <Y>;
+ alias <AD07> = <U>;
+ alias <AD08> = <I>;
+ alias <AD09> = <O>;
+ alias <AD10> = <P>;
+ alias <AD11> = <LEFTBRACE>;
+ alias <AD12> = <RIGHTBRACE>;
+ alias <BKSL> = <BACKSLASH>;
+ alias <AC12> = <BACKSLASH>;
+ alias <RTRN> = <ENTER>;
+
+ alias <CAPS> = <CAPSLOCK>;
+ alias <AC01> = <A>;
+ alias <AC02> = <S>;
+ alias <AC03> = <D>;
+ alias <AC04> = <F>;
+ alias <AC05> = <G>;
+ alias <AC06> = <H>;
+ alias <AC07> = <J>;
+ alias <AC08> = <K>;
+ alias <AC09> = <L>;
+ alias <AC10> = <SEMICOLON>;
+ alias <AC11> = <APOSTROPHE>;
+
+ alias <LFSH> = <LEFTSHIFT>;
+ alias <AB01> = <Z>;
+ alias <AB02> = <X>;
+ alias <AB03> = <C>;
+ alias <AB04> = <V>;
+ alias <AB05> = <B>;
+ alias <AB06> = <N>;
+ alias <AB07> = <M>;
+ alias <AB08> = <COMMA>;
+ alias <AB09> = <DOT>;
+ alias <AB10> = <SLASH>;
+ alias <RTSH> = <RIGHTSHIFT>;
+
+ alias <LALT> = <LEFTALT>;
+ alias <LCTL> = <LEFTCTRL>;
+ alias <SPCE> = <SPACE>;
+ alias <RCTL> = <RIGHTCTRL>;
+ alias <RALT> = <RIGHTALT>;
+ alias <LWIN> = <LEFTMETA>;
+ alias <RWIN> = <RIGHTMETA>;
+ alias <COMP> = <COMPOSE>;
+ alias <MENU> = <COMPOSE>;
+
+ alias <FK01> = <F1>;
+ alias <FK02> = <F2>;
+ alias <FK03> = <F3>;
+ alias <FK04> = <F4>;
+ alias <FK05> = <F5>;
+ alias <FK06> = <F6>;
+ alias <FK07> = <F7>;
+ alias <FK08> = <F8>;
+ alias <FK09> = <F9>;
+ alias <FK10> = <F10>;
+ alias <FK11> = <F11>;
+ alias <FK12> = <F12>;
+
+ alias <PRSC> = <SYSRQ>;
+ alias <SCLK> = <SCROLLLOCK>;
+ alias <PAUS> = <PAUSE>;
+
+ alias <INS> = <INSERT>;
+ alias <PGUP> = <PAGEUP>;
+ alias <DELE> = <DELETE>;
+ alias <PGDN> = <PAGEDOWN>;
+
+ alias <RGHT> = <RIGHT>;
+
+ alias <NMLK> = <NUMLOCK>;
+ alias <KPDV> = <KPSLASH>;
+ alias <KPMU> = <KPASTERISK>;
+ alias <KPSU> = <KPMINUS>;
+
+ alias <KPAD> = <KPPLUS>;
+
+ alias <KPEN> = <KPENTER>;
+
+ alias <KPDL> = <KPDOT>;
+ alias <KPEQ> = <KPEQUAL>;
+
+ alias <FK13> = <F13>;
+ alias <FK14> = <F14>;
+ alias <FK15> = <F15>;
+ alias <FK16> = <F16>;
+ alias <FK17> = <F17>;
+ alias <FK18> = <F18>;
+ alias <FK19> = <F19>;
+ alias <FK20> = <F20>;
+ alias <FK21> = <F21>;
+ alias <FK22> = <F22>;
+ alias <FK23> = <F23>;
+ alias <FK24> = <F24>;
+
+ alias <HZTG> = <APOSTROPHE>;
+ alias <HKTG> = <KATAKANAHIRAGANA>;
+ alias <AB11> = <RO>;
+ alias <HENK> = <HENKAN>;
+ alias <MUHE> = <MUHENKAN>;
+ alias <AE13> = <YEN>;
+ alias <KATA> = <KATAKANA>;
+ alias <HIRA> = <HIRAGANA>;
+ alias <JPCM> = <KPJPCOMMA>;
+
+ alias <HNGL> = <HANGEUL>;
+ alias <HJCV> = <HANJA>;
+
+ alias <LMTA> = <LEFTMETA>;
+ alias <RMTA> = <RIGHTMETA>;
+ alias <VOL-> = <VOLUMEDOWN>;
+ alias <VOL+> = <VOLUMEUP>;
+ alias <POWR> = <POWER>;
+ alias <AGAI> = <AGAIN>;
+ alias <PROP> = <PROPS>;
+ alias <FRNT> = <FRONT>;
+ alias <PAST> = <PASTE>;
+
+ alias <LNFD> = <LINEFEED>;
+ alias <I120> = <MACRO>;
+ alias <I126> = <KPPLUSMINUS>;
+ alias <I128> = <SCALE>;
+ alias <I129> = <KPCOMMA>;
+ alias <I147> = <MENU>;
+ alias <I148> = <CALC>;
+ alias <I149> = <SETUP>;
+ alias <I150> = <SLEEP>;
+ alias <I151> = <WAKEUP>;
+ alias <I152> = <FILE>;
+ alias <I153> = <SENDFILE>;
+ alias <I154> = <DELETEFILE>;
+ alias <I155> = <XFER>;
+ alias <I156> = <PROG1>;
+ alias <I157> = <PROG2>;
+ alias <I158> = <WWW>;
+ alias <I159> = <MSDOS>;
+ alias <I160> = <COFFEE>;
+ alias <I161> = <DIRECTION>;
+ alias <I162> = <CYCLEWINDOWS>;
+ alias <I163> = <MAIL>;
+ alias <I164> = <BOOKMARKS>;
+ alias <I165> = <COMPUTER>;
+ alias <I166> = <BACK>;
+ alias <I167> = <FORWARD>;
+ alias <I168> = <CLOSECD>;
+ alias <I169> = <EJECTCD>;
+ alias <I170> = <EJECTCLOSECD>;
+ alias <I171> = <NEXTSONG>;
+ alias <I172> = <PLAYPAUSE>;
+ alias <I173> = <PREVIOUSSONG>;
+ alias <I174> = <STOPCD>;
+ alias <I175> = <RECORD>;
+ alias <I176> = <REWIND>;
+ alias <I177> = <PHONE>;
+ alias <I178> = <ISO>;
+ alias <I179> = <CONFIG>;
+ alias <I180> = <HOMEPAGE>;
+ alias <I181> = <REFRESH>;
+ alias <I182> = <EXIT>;
+ alias <I183> = <MOVE>;
+ alias <I184> = <EDIT>;
+ alias <I185> = <SCROLLUP>;
+ alias <I186> = <SCROLLDOWN>;
+ alias <I187> = <KPLEFTPAREN>;
+ alias <I188> = <KPRIGHTPAREN>;
+ alias <I189> = <NEW>;
+ alias <I190> = <REDO>;
+ alias <I208> = <PLAYCD>;
+ alias <I209> = <PAUSECD>;
+ alias <I210> = <PROG3>;
+ alias <I211> = <PROG4>;
+ alias <I212> = <DASHBOARD>;
+ alias <I213> = <SUSPEND>;
+ alias <I214> = <CLOSE>;
+ alias <I215> = <PLAY>;
+ alias <I216> = <FASTFORWARD>;
+ alias <I217> = <BASSBOOST>;
+ alias <I218> = <PRINT>;
+ alias <I219> = <HP>;
+ alias <I220> = <CAMERA>;
+ alias <I221> = <SOUND>;
+ alias <I222> = <QUESTION>;
+ alias <I223> = <EMAIL>;
+ alias <I224> = <CHAT>;
+ alias <I225> = <SEARCH>;
+ alias <I226> = <CONNECT>;
+ alias <I227> = <FINANCE>;
+ alias <I228> = <SPORT>;
+ alias <I229> = <SHOP>;
+ alias <I230> = <ALTERASE>;
+ alias <I231> = <CANCEL>;
+ alias <I232> = <BRIGHTNESSDOWN>;
+ alias <I233> = <BRIGHTNESSUP>;
+ alias <I234> = <MEDIA>;
+ alias <I235> = <SWITCHVIDEOMODE>;
+ alias <I236> = <KBDILLUMTOGGLE>;
+ alias <I237> = <KBDILLUMDOWN>;
+ alias <I238> = <KBDILLUMUP>;
+ alias <I239> = <SEND>;
+ alias <I240> = <REPLY>;
+ alias <I241> = <FORWARDMAIL>;
+ alias <I242> = <SAVE>;
+ alias <I243> = <DOCUMENTS>;
+ alias <I244> = <BATTERY>;
+ alias <I245> = <BLUETOOTH>;
+ alias <I246> = <WLAN>;
+ alias <I247> = <UWB>;
+ alias <I248> = <UNKNOWN>;
+ alias <I249> = <VIDEO_NEXT>;
+ alias <I250> = <VIDEO_PREV>;
+ alias <I251> = <BRIGHTNESS_CYCLE>;
+ alias <I252> = <BRIGHTNESS_ZERO>;
+ alias <I253> = <DISPLAY_OFF>;
+
+ alias <ALGR> = <RIGHTALT>;
+
+ // For Brazilian ABNT2
+ alias <KPPT> = <KPCOMMA>;
+};
diff --git a/test/data/rules/evdev-xkbcommon b/test/data/rules/evdev-xkbcommon
new file mode 100644
index 0000000..bde6ad2
--- /dev/null
+++ b/test/data/rules/evdev-xkbcommon
@@ -0,0 +1,1092 @@
+// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part
+//
+// Rules for resolving XKB components for use with XFree86
+// Copyright 1996 by Joseph Moss
+//
+// 2002 Modifier: Ivan Pascal The XFree86 Project
+//
+
+// If you want non-latin layouts implicitly include the en_US layout
+// uncomment lines below
+//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \
+// in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \
+// ru scc sy syr tel th tj tam ua uz
+
+// PC models
+! $pcmodels = pc101 pc102 pc104 pc105
+
+// Microsoft models (using MS geometry)
+! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose
+
+// Nokia devices and keyboards
+! $nokiamodels = nokiasu8w nokiarx44 nokiarx51
+
+// PC geometries - they have special geometry but symbols are mostly pc105
+! $pcgeometries = latitude
+
+// TypeMatrix geometries
+! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106
+
+// Layouts that provide further specializations for the OLPC
+! $olpclayouts = af am ara br ca es et fr it kh kz in mn np ru th tr us
+
+! $macbooks = macbook78 macbook79
+! $maclaptop = ibook powerbook macbook78 macbook79
+! $applealu = applealu_ansi applealu_iso applealu_jis
+! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79
+
+! $macvendorlayouts = ch de dk fi fr gb is it latam nl no pt se us
+
+! $azerty = be fr
+! $qwertz = al cz de hr hu ro si sk
+
+! $inetkbds = acer_c300 acer_ferrari4k acer_laptop \
+ airkey \
+ apple armada azonaRF2300 \
+ benqx brother \
+ btc5113rf btc9000 btc9000a btc9001ah btc5090 btc9019u \
+ cherryblue cherrybluea cherryblueb \
+ cherrycyboard cherrycmexpert \
+ chicony chicony0108 chicony0420 chicony9885 \
+ compalfl90 \
+ compaqeak8 compaqik7 compaqik13 compaqik18 \
+ creativedw7000 \
+ cymotionlinux \
+ dell dellm65 inspiron dellusbmm \
+ emachines ennyah_dkb1008 evdev \
+ genius geniuscomfy2 \
+ gyration honeywell_euroboard \
+ hp250x hp5xx hp500fa hpdv5 \
+ hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx htcdream \
+ ibm_spacesaver ipaq inspiron intel \
+ logiaccess logicda logicink \
+ logiex110 logiclx300 \
+ logiinkse logiinkseusb logiitc logiik \
+ logitech_base itouch logiultrax \
+ logitech_g15 \
+ logidinovo logidinovoedge \
+ microsoft4000 microsoft7000 microsoftinet microsoftprousb microsoftprooem microsoftprose \
+ microsoftoffice microsoftmult \
+ mx1998 mx2500 mx2750 \
+ oretec \
+ pc105 \
+ presario propeller \
+ qtronix \
+ rapidaccess rapidaccess2 thinkpad60 \
+ samsung4500 samsung4510 \
+ silvercrest \
+ sk1300 sk2500 sk6200 sk7100 \
+ sven sven303 symplon \
+ toshiba_s3000 trust trustda \
+ unitekkb1925 yahoo
+
+// all layouts with 3rd and 4th groups
+! $threelevellayouts = al az \
+ be br bt \
+ ca ch cs cz \
+ de dk \
+ ee es \
+ fi fo fr \
+ gb gr \
+ hu \
+ ie ir is it \
+ latam \
+ lk lt \
+ mn mt \
+ nl no \
+ pl pt \
+ ro \
+ se sk \
+ tr \
+ us \
+ vn \
+ za
+
+! $evdevkbds = ibm_spacesaver
+
+! $thinkpads = thinkpad thinkpad60 thinkpadz60
+
+! $sun_t6_custom = ara be br ca ch cz de dk \
+ ee es fi fr gb gr it kr \
+ lt lv nl no pl pt ro ru \
+ se sk tr tw ua
+
+! $htcdreamlayouts = us it de
+
+! $dvoraklayouts = br ca de ee es fr gb no pl se us
+
+! model = keycodes
+ * = evdev-xkbcommon
+
+! layout[1] = keycodes
+ $azerty = +aliases-xkbcommon(azerty)
+ $qwertz = +aliases-xkbcommon(qwertz)
+ * = +aliases-xkbcommon(qwerty)
+
+! layout = keycodes
+ $azerty = +aliases-xkbcommon(azerty)
+ $qwertz = +aliases-xkbcommon(qwertz)
+ * = +aliases-xkbcommon(qwerty)
+
+! model layout = geometry
+ thinkpad us = thinkpad(us)
+
+! model = geometry
+ microsoftelite = microsoft(elite)
+ $msmodels = microsoft(natural)
+ dell101 = dell(dell101)
+ dellm65 = dell(dellm65)
+ latitude = dell(latitude)
+ flexpro = keytronic(FlexPro)
+ hp6000 = hp(omnibook)
+ hpmini110 = hp(mini110)
+ hpdv5 = hp(dv5)
+ omnikey101 = northgate(omnikey101)
+ sanwaskbkg3 = sanwa(sanwaskbkg3)
+ $pcmodels = pc(%m)
+ $pcgeometries = pc(%m)
+ everex = everex(STEPnote)
+ thinkpad = thinkpad(intl)
+ thinkpad60 = thinkpad(60)
+ thinkpadz60 = thinkpad(60)
+ $tmgeometries = typematrix(%m)
+ winbook = winbook(XP5)
+ pc98 = nec(pc98)
+ $applealu = macintosh(%m)
+ $macbooks = macintosh(%m)
+ $macs = macintosh(macintosh)
+ hhk = hhk(basic)
+ kinesis = kinesis(model100)
+ $nokiamodels = nokia(%m)
+ * = pc(pc104)
+
+! model layout variant = symbols
+ * ben basic = pc+in(ben)
+ * ben probhat = pc+in(ben_probhat)
+ * dev basic = pc+in(deva)
+ * dvorak $dvoraklayouts = pc+%v(dvorak)
+ * dvorak basic = pc+us(dvorak)
+ * dvorak pl_basic = pc+pl(dvorak)
+ * dvorak pl = pc+pl(dvorak_quotes)
+ * dvorak pl_altquotes = pc+pl(dvorak_altquotes)
+ * dzdwi basic = pc+bt(basic)
+ * fi basic = pc+fi(classic)
+ * ge azerty_tskapo = pc+fr(geo)
+ * guj basic = pc+in(guj)
+ * gur basic = pc+in(guru)
+ * ie laptop = pc+ie(basic)
+ * ie CloGaelachLaptop = pc+ie(CloGaelach)
+ * in urd = pc+in(urd-phonetic)
+ * iu basic = pc+ca(ike)
+ * lo basic = pc+la(basic)
+ * kan basic = pc+in(kan)
+ * mal basic = pc+in(mal)
+ * mal mlplusnum = pc+in(mal)
+ * ogham basic = pc+ie(ogam)
+ * ogham laptop = pc+ie(ogam)
+ * ogham is434 = pc+ie(ogam_is434)
+ * ogham is434laptop = pc+ie(ogam_is434)
+ * ori basic = pc+in(ori)
+ * ro de = pc+ro(winkeys)
+ * ro us = pc+ro(std)
+ * ro academic = pc+ro(std)
+ * ro std_comma = pc+ro(std)
+ * ro comma = pc+ro(basic)
+ * ru os = pc+ru(os_legacy)
+ * pk urd = pc+pk(urd-phonetic)
+ * sapmi basic = pc+no(smi)
+ * sapmi nodeadkeys = pc+no(smi_nodeadkeys)
+ * sapmi sefi = pc+fi(smi)
+ * sin phonetic-static = pc+in(sin_phonetic)
+ * syr basic = pc+sy(syc)
+ * syr phonetic = pc+sy(syc_phonetic)
+ * tam INSCRIPT = pc+in(tam)
+ * tam UNI = pc+in(tam_unicode)
+ * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals)
+ * tam TAB = pc+in(tam_TAB)
+ * tam TSCII = pc+in(tam_TSCII)
+ * tel basic = pc+in(tel)
+ * yu basic = pc+srp(latin)
+ * yu unicode = pc+srp(latinunicode)
+ * yu yz = pc+srp(latinyz)
+ * yu unicodeyz = pc+srp(latinunicodeyz)
+ classmate us intl = pc+us(classmate-intl)
+ classmate us alt-intl = pc+us(classmate-alt-intl)
+ classmate us altgr-intl = pc+us(classmate-altgr-intl)
+ nokiarx51 cz qwerty = nokia_vndr/rx-51(cz_qwerty)
+
+! model layout = symbols
+ * ar = pc+ara
+ * ben = pc+in(ben)
+ * bs = pc+ba
+ * cs = pc+rs
+ * cz_qwerty = pc+cz(qwerty)
+ * dev = pc+in(deva)
+ * dvorak = pc+us(dvorak)
+ * dzdwi = pc+bt
+ * el = pc+gr
+ * en_US = pc+latin
+ * guj = pc+in(guj)
+ * gur = pc+in(guru)
+ * iu = pc+ca(ike)
+ * lo = pc+la
+ * kan = pc+in(kan)
+ * mi = pc+mao
+ * ml = pc+in(mal)
+ * ogham = pc+ie(ogam)
+ * ori = pc+ie(ori)
+ * sapmi = pc+no(smi)
+ * sr = pc+srp
+ * syr = pc+sy(syc)
+ * tel = pc+in(tel)
+ * tml = pc+in(tam)
+ * yu = pc+srp
+ * fr-latin9 = pc+fr(latin9)
+ * us_intl = pc+us(alt-intl)
+ * ben(basic) = pc+in(ben)
+ * ben(probhat) = pc+in(ben_probhat)
+ * dev(basic) = pc+in(deva)
+ * dvorak($dvoraklayouts) = pc+%v(dvorak)
+ * dvorak(basic) = pc+us(dvorak)
+ * dvorak(pl_basic) = pc+pl(dvorak)
+ * dvorak(pl) = pc+pl(dvorak_quotes)
+ * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes)
+ * dzdwi(basic) = pc+bt(basic)
+ * fi(basic) = pc+fi(classic)
+ * ge(azerty_tskapo) = pc+fr(geo)
+ * guj(basic) = pc+in(guj)
+ * gur(basic) = pc+in(guru)
+ * ie(laptop) = pc+ie(basic)
+ * ie(CloGaelachLaptop) = pc+ie(CloGaelach)
+ * in(urd) = pc+in(urd-phonetic)
+ * iu(basic) = pc+ca(ike)
+ * lo(basic) = pc+la(basic)
+ * kan(basic) = pc+in(kan)
+ * mal(basic) = pc+in(mal)
+ * mal(mlplusnum) = pc+in(mal)
+ * ogham(basic) = pc+ie(ogam)
+ * ogham(laptop) = pc+ie(ogam)
+ * ogham(is434) = pc+ie(ogam_is434)
+ * ogham(is434laptop) = pc+ie(ogam_is434)
+ * ori(basic) = pc+in(ori)
+ * ro(de) = pc+ro(winkeys)
+ * ro(us) = pc+ro(std)
+ * ro(academic) = pc+ro(std)
+ * ro(std_comma) = pc+ro(std)
+ * ro(comma) = pc+ro(basic)
+ * ru(os) = pc+ru(os_legacy)
+ * pk(urd) = pc+pk(urd-phonetic)
+ * sapmi(basic) = pc+no(smi)
+ * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys)
+ * sapmi(sefi) = pc+fi(smi)
+ * sin(phonetic-static) = pc+in(sin_phonetic)
+ * syr(basic) = pc+sy(syc)
+ * syr(phonetic) = pc+sy(syc_phonetic)
+ * tam(INSCRIPT) = pc+in(tam)
+ * tam(UNI) = pc+in(tam_unicode)
+ * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals)
+ * tam(TAB) = pc+in(tam_TAB)
+ * tam(TSCII) = pc+in(tam_TSCII)
+ * tel(basic) = pc+in(tel)
+ * yu(basic) = pc+srp(latin)
+ * yu(unicode) = pc+srp(latinunicode)
+ * yu(yz) = pc+srp(latinyz)
+ * yu(unicodeyz) = pc+srp(latinunicodeyz)
+ ataritt $nonlatin = xfree68_vndr/ataritt(us)+%l%(v):2
+ ataritt * = xfree68_vndr/ataritt(us)+%l%(v)
+ amiga $nonlatin = xfree68_vndr/amiga(usa1)+%l%(v):2
+ amiga * = xfree68_vndr/amiga(usa1)+%l%(v)
+ classmate us = pc+%l(classmate)
+ empty * = empty(basic)
+ * empty = empty(basic)
+ sun4 $nonlatin = latin+sun_vndr/us(type4)+%l%(v):2
+ sun4 * = latin+sun_vndr/us(type4)+%l%(v)
+ sun5 $nonlatin = latin+sun_vndr/us(type5)+%l%(v):2
+ sun5 * = latin+sun_vndr/us(type5)+%l%(v)
+ sun6 us = pc+sun_vndr/us(type6)
+ sun6 en_US = pc+sun_vndr/us(type6)+iso9995-3(basic)
+ sun6 $sun_t6_custom = pc+sun_vndr/us(type6)+sun_vndr/%l%(v)
+ sun6 * = pc+sun_vndr/us(type6)+%l%(v)
+ sun6euro us = pc+sun_vndr/us(type6)
+ sun6euro en_US = pc+sun_vndr/us(type6)+iso9995-3(basic)
+ sun6euro $sun_t6_custom = pc+sun_vndr/us(type6)+sun_vndr/%l%(v)
+ sun6euro * = pc+sun_vndr/us(type6)+%l%(v)
+ pc98 nec_vndr/jp = nec_vndr/jp(pc98)
+ macintosh_old us = macintosh_vndr/us(oldmac)
+ macintosh_old en_US = macintosh_vndr/us(oldmac)
+ macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v)
+ macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2
+ macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v)
+ applealu_jis jp = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+macintosh_vndr/jp(mac):2
+ applealu_jis * = macintosh_vndr/apple(alukbd)+%l%(v)+macintosh_vndr/jp(mac):2
+ $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l%(v)
+ $applealu * = macintosh_vndr/apple(alukbd)+%l%(v)
+ $macs en_US = pc+macintosh_vndr/us(extended)
+ $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v)
+ nokiarx44 * = nokia_vndr/rx-44(%l)
+ nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty)
+ nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l%_v)
+ nokiasu8w * = nokia_vndr/su-8w(%l)
+ olpc $olpclayouts = olpc+%l%(m)
+ olpc * = olpc+%l%(v)
+ $thinkpads br = pc+br(thinkpad)
+ htcdream $htcdreamlayouts = %l(htcdream)
+ * $nonlatin = pc+us+%l%(v):2
+ * * = pc+%l%(v)
+
+! model layout[1] = symbols
+ * ar = pc+ara%(v[1])
+ * ben = pc+in(ben)
+ * bs = pc+ba%(v[1])
+ * cs = pc+rs%(v[1])
+ * cz_qwerty = pc+cz(qwerty)
+ * dev = pc+in(deva)
+ * dvorak = pc+us(dvorak)
+ * dzdwi = pc+bt%(v[1])
+ * el = pc+gr%(v[1])
+ * en_US = pc+latin%(v[1])
+ * guj = pc+in(guj)
+ * gur = pc+in(guru)
+ * iu = pc+ca(ike)
+ * lo = pc+la%(v[1])
+ * kan = pc+in(kan)
+ * mi = pc+mao%(v[1])
+ * ml = pc+in(mal)
+ * ogham = pc+ie(ogam)
+ * ori = pc+ie(ori)
+ * sapmi = pc+no(smi)
+ * sr = pc+srp%(v[1])
+ * syr = pc+sy(syc)
+ * tel = pc+in(tel)
+ * tml = pc+in(tam)
+ * yu = pc+srp%(v[1])
+ * fr-latin9 = pc+fr(latin9)
+ * us_intl = pc+us(alt-intl)
+ * ben(basic) = pc+in(ben)
+ * ben(probhat) = pc+in(ben_probhat)
+ * dev(basic) = pc+in(deva)
+ * dvorak($dvoraklayouts) = pc+%v(dvorak)
+ * dvorak(basic) = pc+us(dvorak)
+ * dvorak(pl_basic) = pc+pl(dvorak)
+ * dvorak(pl) = pc+pl(dvorak_quotes)
+ * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes)
+ * dzdwi(basic) = pc+bt(basic)
+ * fi(basic) = pc+fi(classic)
+ * ge(azerty_tskapo) = pc+fr(geo)
+ * guj(basic) = pc+in(guj)
+ * gur(basic) = pc+in(guru)
+ * ie(laptop) = pc+ie(basic)
+ * ie(CloGaelachLaptop) = pc+ie(CloGaelach)
+ * in(urd) = pc+in(urd-phonetic)
+ * iu(basic) = pc+ca(ike)
+ * lo(basic) = pc+la(basic)
+ * kan(basic) = pc+in(kan)
+ * mal(basic) = pc+in(mal)
+ * mal(mlplusnum) = pc+in(mal)
+ * ogham(basic) = pc+ie(ogam)
+ * ogham(laptop) = pc+ie(ogam)
+ * ogham(is434) = pc+ie(ogam_is434)
+ * ogham(is434laptop) = pc+ie(ogam_is434)
+ * ori(basic) = pc+in(ori)
+ * ro(de) = pc+ro(winkeys)
+ * ro(us) = pc+ro(std)
+ * ro(academic) = pc+ro(std)
+ * ro(std_comma) = pc+ro(std)
+ * ro(comma) = pc+ro(basic)
+ * ru(os) = pc+ru(os_legacy)
+ * pk(urd) = pc+pk(urd-phonetic)
+ * sapmi(basic) = pc+no(smi)
+ * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys)
+ * sapmi(sefi) = pc+fi(smi)
+ * sin(phonetic-static) = pc+in(sin_phonetic)
+ * syr(basic) = pc+sy(syc)
+ * syr(phonetic) = pc+sy(syc_phonetic)
+ * tam(INSCRIPT) = pc+in(tam)
+ * tam(UNI) = pc+in(tam_unicode)
+ * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals)
+ * tam(TAB) = pc+in(tam_TAB)
+ * tam(TSCII) = pc+in(tam_TSCII)
+ * tel(basic) = pc+in(tel)
+ * yu(basic) = pc+srp(latin)
+ * yu(unicode) = pc+srp(latinunicode)
+ * yu(yz) = pc+srp(latinyz)
+ * yu(unicodeyz) = pc+srp(latinunicodeyz)
+ ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1])
+ amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1])
+ sun4 * = latin+sun_vndr/us(type4)+%l[1]%(v[1])
+ sun5 * = latin+sun_vndr/us(type5)+%l[1]%(v[1])
+ macintosh_old us = macintosh_vndr/us(oldmac)
+ macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1])
+ macintosh_old * = macintosh_vndr/us(oldmac)+%l[1]%(v[1])
+ applealu_jis us = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)
+ $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l[1]%(v[1])
+ $applealu * = macintosh_vndr/apple(alukbd)+%l[1]%(v[1])
+ $macs $macvendorlayouts = pc+macintosh_vndr/%l[1]%(v[1])
+ nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty)
+ nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l[1]%_v[1])
+ $thinkpads br = pc+%l[1](thinkpad)
+ * * = pc+%l[1]%(v[1])
+
+! model layout[1] variant[1] = symbols
+ * ben basic = pc+in(ben)
+ * ben probhat = pc+in(ben_probhat)
+ * dev basic = pc+in(deva)
+ * dvorak $dvoraklayouts = pc+%v(dvorak)
+ * dvorak basic = pc+us(dvorak)
+ * dvorak pl_basic = pc+pl(dvorak)
+ * dvorak pl = pc+pl(dvorak_quotes)
+ * dvorak pl_altquotes = pc+pl(dvorak_altquotes)
+ * dzdwi basic = pc+bt(basic)
+ * fi basic = pc+fi(classic)
+ * ge azerty_tskapo = pc+fr(geo)
+ * guj basic = pc+in(guj)
+ * gur basic = pc+in(guru)
+ * ie laptop = pc+ie(basic)
+ * ie CloGaelachLaptop = pc+ie(CloGaelach)
+ * in urd = pc+in(urd-phonetic)
+ * iu basic = pc+ca(ike)
+ * lo basic = pc+la(basic)
+ * kan basic = pc+in(kan)
+ * mal basic = pc+in(mal)
+ * mal mlplusnum = pc+in(mal)
+ * ogham basic = pc+ie(ogam)
+ * ogham laptop = pc+ie(ogam)
+ * ogham is434 = pc+ie(ogam_is434)
+ * ogham is434laptop = pc+ie(ogam_is434)
+ * ori basic = pc+in(ori)
+ * ro de = pc+ro(winkeys)
+ * ro us = pc+ro(std)
+ * ro academic = pc+ro(std)
+ * ro std_comma = pc+ro(std)
+ * ro comma = pc+ro(basic)
+ * ru os = pc+ru(os_legacy)
+ * pk urd = pc+pk(urd-phonetic)
+ * sapmi basic = pc+no(smi)
+ * sapmi nodeadkeys = pc+no(smi_nodeadkeys)
+ * sapmi sefi = pc+fi(smi)
+ * sin phonetic-static = pc+in(sin_phonetic)
+ * syr basic = pc+sy(syc)
+ * syr phonetic = pc+sy(syc_phonetic)
+ * tam INSCRIPT = pc+in(tam)
+ * tam UNI = pc+in(tam_unicode)
+ * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals)
+ * tam TAB = pc+in(tam_TAB)
+ * tam TSCII = pc+in(tam_TSCII)
+ * tel basic = pc+in(tel)
+ * yu basic = pc+srp(latin)
+ * yu unicode = pc+srp(latinunicode)
+ * yu yz = pc+srp(latinyz)
+ * yu unicodeyz = pc+srp(latinunicodeyz)
+
+! model layout[2] = symbols
+ * ar = +ara%(v[2]):2
+ * ben = +in(ben):2
+ * bs = +ba%(v[2]):2
+ * cs = +rs%(v[2]):2
+ * cz_qwerty = +cz(qwerty):2
+ * dev = +in(deva):2
+ * dvorak = +us(dvorak):2
+ * dzdwi = +bt%(v[2]):2
+ * el = +gr%(v[2]):2
+ * en_US = +latin%(v[2]):2
+ * guj = +in(guj):2
+ * gur = +in(guru):2
+ * iu = +ca(ike):2
+ * lo = +la%(v[2]):2
+ * kan = +in(kan):2
+ * mi = +mao%(v[2]):2
+ * ml = +in(mal):2
+ * ogham = +ie(ogam):2
+ * ori = +ie(ori):2
+ * sapmi = +no(smi):2
+ * sr = +srp%(v[2]):2
+ * syr = +sy(syc):2
+ * tel = +in(tel):2
+ * tml = +in(tam):2
+ * yu = +srp%(v[2]):2
+ * fr-latin9 = +fr(latin9):2
+ * us_intl = +us(alt-intl):2
+ * ben(basic) = +in(ben):2
+ * ben(probhat) = +in(ben_probhat):2
+ * dev(basic) = +in(deva):2
+ * dvorak($dvoraklayouts) = +%v(dvorak):2
+ * dvorak(basic) = +us(dvorak):2
+ * dvorak(pl_basic) = +pl(dvorak):2
+ * dvorak(pl) = +pl(dvorak_quotes):2
+ * dvorak(pl_altquotes) = +pl(dvorak_altquotes):2
+ * dzdwi(basic) = +bt(basic):2
+ * fi(basic) = +fi(classic):2
+ * ge(azerty_tskapo) = +fr(geo):2
+ * guj(basic) = +in(guj):2
+ * gur(basic) = +in(guru):2
+ * ie(laptop) = +ie(basic):2
+ * ie(CloGaelachLaptop) = +ie(CloGaelach):2
+ * in(urd) = +in(urd-phonetic):2
+ * iu(basic) = +ca(ike):2
+ * lo(basic) = +la(basic):2
+ * kan(basic) = +in(kan):2
+ * mal(basic) = +in(mal):2
+ * mal(mlplusnum) = +in(mal):2
+ * ogham(basic) = +ie(ogam):2
+ * ogham(laptop) = +ie(ogam):2
+ * ogham(is434) = +ie(ogam_is434):2
+ * ogham(is434laptop) = +ie(ogam_is434):2
+ * ori(basic) = +in(ori):2
+ * ro(de) = +ro(winkeys):2
+ * ro(us) = +ro(std):2
+ * ro(academic) = +ro(std):2
+ * ro(std_comma) = +ro(std):2
+ * ro(comma) = +ro(basic):2
+ * ru(os) = +ru(os_legacy):2
+ * pk(urd) = +pk(urd-phonetic):2
+ * sapmi(basic) = +no(smi):2
+ * sapmi(nodeadkeys) = +no(smi_nodeadkeys):2
+ * sapmi(sefi) = +fi(smi):2
+ * sin(phonetic-static) = +in(sin_phonetic):2
+ * syr(basic) = +sy(syc):2
+ * syr(phonetic) = +sy(syc_phonetic):2
+ * tam(INSCRIPT) = +in(tam):2
+ * tam(UNI) = +in(tam_unicode):2
+ * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):2
+ * tam(TAB) = +in(tam_TAB):2
+ * tam(TSCII) = +in(tam_TSCII):2
+ * tel(basic) = +in(tel):2
+ * yu(basic) = +srp(latin):2
+ * yu(unicode) = +srp(latinunicode):2
+ * yu(yz) = +srp(latinyz):2
+ * yu(unicodeyz) = +srp(latinunicodeyz):2
+ nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):2
+ nokiarx51 * = +nokia_vndr/rx-51(%l[2]%_v[2]):2
+ * * = +%l[2]%(v[2]):2
+
+! model layout[3] = symbols
+ * ar = +ara%(v[3]):3
+ * ben = +in(ben):3
+ * bs = +ba%(v[3]):3
+ * cs = +rs%(v[3]):3
+ * cz_qwerty = +cz(qwerty):3
+ * dev = +in(deva):3
+ * dvorak = +us(dvorak):3
+ * dzdwi = +bt%(v[3]):3
+ * el = +gr%(v[3]):3
+ * en_US = +latin%(v[3]):3
+ * guj = +in(guj):3
+ * gur = +in(guru):3
+ * iu = +ca(ike):3
+ * lo = +la%(v[3]):3
+ * kan = +in(kan):3
+ * mi = +mao%(v[3]):3
+ * ml = +in(mal):3
+ * ogham = +ie(ogam):3
+ * ori = +ie(ori):3
+ * sapmi = +no(smi):3
+ * sr = +srp%(v[3]):3
+ * syr = +sy(syc):3
+ * tel = +in(tel):3
+ * tml = +in(tam):3
+ * yu = +srp%(v[3]):3
+ * fr-latin9 = +fr(latin9):3
+ * us_intl = +us(alt-intl):3
+ * ben(basic) = +in(ben):3
+ * ben(probhat) = +in(ben_probhat):3
+ * dev(basic) = +in(deva):3
+ * dvorak($dvoraklayouts) = +%v(dvorak):3
+ * dvorak(basic) = +us(dvorak):3
+ * dvorak(pl_basic) = +pl(dvorak):3
+ * dvorak(pl) = +pl(dvorak_quotes):3
+ * dvorak(pl_altquotes) = +pl(dvorak_altquotes):3
+ * dzdwi(basic) = +bt(basic):3
+ * fi(basic) = +fi(classic):3
+ * ge(azerty_tskapo) = +fr(geo):3
+ * guj(basic) = +in(guj):3
+ * gur(basic) = +in(guru):3
+ * ie(laptop) = +ie(basic):3
+ * ie(CloGaelachLaptop) = +ie(CloGaelach):3
+ * in(urd) = +in(urd-phonetic):3
+ * iu(basic) = +ca(ike):3
+ * lo(basic) = +la(basic):3
+ * kan(basic) = +in(kan):3
+ * mal(basic) = +in(mal):3
+ * mal(mlplusnum) = +in(mal):3
+ * ogham(basic) = +ie(ogam):3
+ * ogham(laptop) = +ie(ogam):3
+ * ogham(is434) = +ie(ogam_is434):3
+ * ogham(is434laptop) = +ie(ogam_is434):3
+ * ori(basic) = +in(ori):3
+ * ro(de) = +ro(winkeys):3
+ * ro(us) = +ro(std):3
+ * ro(academic) = +ro(std):3
+ * ro(std_comma) = +ro(std):3
+ * ro(comma) = +ro(basic):3
+ * ru(os) = +ru(os_legacy):3
+ * pk(urd) = +pk(urd-phonetic):3
+ * sapmi(basic) = +no(smi):3
+ * sapmi(nodeadkeys) = +no(smi_nodeadkeys):3
+ * sapmi(sefi) = +fi(smi):3
+ * sin(phonetic-static) = +in(sin_phonetic):3
+ * syr(basic) = +sy(syc):3
+ * syr(phonetic) = +sy(syc_phonetic):3
+ * tam(INSCRIPT) = +in(tam):3
+ * tam(UNI) = +in(tam_unicode):3
+ * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):3
+ * tam(TAB) = +in(tam_TAB):3
+ * tam(TSCII) = +in(tam_TSCII):3
+ * tel(basic) = +in(tel):3
+ * yu(basic) = +srp(latin):3
+ * yu(unicode) = +srp(latinunicode):3
+ * yu(yz) = +srp(latinyz):3
+ * yu(unicodeyz) = +srp(latinunicodeyz):3
+ nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):3
+ nokiarx51 * = +nokia_vndr/rx-51(%l[3]%_v[3]):3
+ * * = +%l[3]%(v[3]):3
+
+! model layout[4] = symbols
+ * ar = +ara%(v[4]):4
+ * ben = +in(ben):4
+ * bs = +ba%(v[4]):4
+ * cs = +rs%(v[4]):4
+ * cz_qwerty = +cz(qwerty):4
+ * dev = +in(deva):4
+ * dvorak = +us(dvorak):4
+ * dzdwi = +bt%(v[4]):4
+ * el = +gr%(v[4]):4
+ * en_US = +latin%(v[4]):4
+ * guj = +in(guj):4
+ * gur = +in(guru):4
+ * iu = +ca(ike):4
+ * lo = +la%(v[4]):4
+ * kan = +in(kan):4
+ * mi = +mao%(v[4]):4
+ * ml = +in(mal):4
+ * ogham = +ie(ogam):4
+ * ori = +ie(ori):4
+ * sapmi = +no(smi):4
+ * sr = +srp%(v[4]):4
+ * syr = +sy(syc):4
+ * tel = +in(tel):4
+ * tml = +in(tam):4
+ * yu = +srp%(v[4]):4
+ * fr-latin9 = +fr(latin9):4
+ * us_intl = +us(alt-intl):4
+ * ben(basic) = +in(ben):4
+ * ben(probhat) = +in(ben_probhat):4
+ * dev(basic) = +in(deva):4
+ * dvorak($dvoraklayouts) = +%v(dvorak):4
+ * dvorak(basic) = +us(dvorak):4
+ * dvorak(pl_basic) = +pl(dvorak):4
+ * dvorak(pl) = +pl(dvorak_quotes):4
+ * dvorak(pl_altquotes) = +pl(dvorak_altquotes):4
+ * dzdwi(basic) = +bt(basic):4
+ * fi(basic) = +fi(classic):4
+ * ge(azerty_tskapo) = +fr(geo):4
+ * guj(basic) = +in(guj):4
+ * gur(basic) = +in(guru):4
+ * ie(laptop) = +ie(basic):4
+ * ie(CloGaelachLaptop) = +ie(CloGaelach):4
+ * in(urd) = +in(urd-phonetic):4
+ * iu(basic) = +ca(ike):4
+ * lo(basic) = +la(basic):4
+ * kan(basic) = +in(kan):4
+ * mal(basic) = +in(mal):4
+ * mal(mlplusnum) = +in(mal):4
+ * ogham(basic) = +ie(ogam):4
+ * ogham(laptop) = +ie(ogam):4
+ * ogham(is434) = +ie(ogam_is434):4
+ * ogham(is434laptop) = +ie(ogam_is434):4
+ * ori(basic) = +in(ori):4
+ * ro(de) = +ro(winkeys):4
+ * ro(us) = +ro(std):4
+ * ro(academic) = +ro(std):4
+ * ro(std_comma) = +ro(std):4
+ * ro(comma) = +ro(basic):4
+ * ru(os) = +ru(os_legacy):4
+ * pk(urd) = +pk(urd-phonetic):4
+ * sapmi(basic) = +no(smi):4
+ * sapmi(nodeadkeys) = +no(smi_nodeadkeys):4
+ * sapmi(sefi) = +fi(smi):4
+ * sin(phonetic-static) = +in(sin_phonetic):4
+ * syr(basic) = +sy(syc):4
+ * syr(phonetic) = +sy(syc_phonetic):4
+ * tam(INSCRIPT) = +in(tam):4
+ * tam(UNI) = +in(tam_unicode):4
+ * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):4
+ * tam(TAB) = +in(tam_TAB):4
+ * tam(TSCII) = +in(tam_TSCII):4
+ * tel(basic) = +in(tel):4
+ * yu(basic) = +srp(latin):4
+ * yu(unicode) = +srp(latinunicode):4
+ * yu(yz) = +srp(latinyz):4
+ * yu(unicodeyz) = +srp(latinunicodeyz):4
+ nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):4
+ nokiarx51 * = +nokia_vndr/rx-51(%l[4]%_v[4]):4
+ * * = +%l[4]%(v[4]):4
+
+! model layout[2] variant[2] = symbols
+ * ben basic = +in(ben):2
+ * ben probhat = +in(ben_probhat):2
+ * dev basic = +in(deva):2
+ * dvorak $dvoraklayouts = +%v(dvorak):2
+ * dvorak basic = +us(dvorak):2
+ * dvorak pl_basic = +pl(dvorak):2
+ * dvorak pl = +pl(dvorak_quotes):2
+ * dvorak pl_altquotes = +pl(dvorak_altquotes):2
+ * dzdwi basic = +bt(basic):2
+ * fi basic = +fi(classic):2
+ * ge azerty_tskapo = +fr(geo):2
+ * guj basic = +in(guj):2
+ * gur basic = +in(guru):2
+ * ie laptop = +ie(basic):2
+ * ie CloGaelachLaptop = +ie(CloGaelach):2
+ * in urd = +in(urd-phonetic):2
+ * iu basic = +ca(ike):2
+ * lo basic = +la(basic):2
+ * kan basic = +in(kan):2
+ * mal basic = +in(mal):2
+ * mal mlplusnum = +in(mal):2
+ * ogham basic = +ie(ogam):2
+ * ogham laptop = +ie(ogam):2
+ * ogham is434 = +ie(ogam_is434):2
+ * ogham is434laptop = +ie(ogam_is434):2
+ * ori basic = +in(ori):2
+ * ro de = +ro(winkeys):2
+ * ro us = +ro(std):2
+ * ro academic = +ro(std):2
+ * ro std_comma = +ro(std):2
+ * ro comma = +ro(basic):2
+ * ru os = +ru(os_legacy):2
+ * pk urd = +pk(urd-phonetic):2
+ * sapmi basic = +no(smi):2
+ * sapmi nodeadkeys = +no(smi_nodeadkeys):2
+ * sapmi sefi = +fi(smi):2
+ * sin phonetic-static = +in(sin_phonetic):2
+ * syr basic = +sy(syc):2
+ * syr phonetic = +sy(syc_phonetic):2
+ * tam INSCRIPT = +in(tam):2
+ * tam UNI = +in(tam_unicode):2
+ * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):2
+ * tam TAB = +in(tam_TAB):2
+ * tam TSCII = +in(tam_TSCII):2
+ * tel basic = +in(tel):2
+ * yu basic = +srp(latin):2
+ * yu unicode = +srp(latinunicode):2
+ * yu yz = +srp(latinyz):2
+ * yu unicodeyz = +srp(latinunicodeyz):2
+
+! model layout[3] variant[3] = symbols
+ * ben basic = +in(ben):3
+ * ben probhat = +in(ben_probhat):3
+ * dev basic = +in(deva):3
+ * dvorak $dvoraklayouts = +%v(dvorak):3
+ * dvorak basic = +us(dvorak):3
+ * dvorak pl_basic = +pl(dvorak):3
+ * dvorak pl = +pl(dvorak_quotes):3
+ * dvorak pl_altquotes = +pl(dvorak_altquotes):3
+ * dzdwi basic = +bt(basic):3
+ * fi basic = +fi(classic):3
+ * ge azerty_tskapo = +fr(geo):3
+ * guj basic = +in(guj):3
+ * gur basic = +in(guru):3
+ * ie laptop = +ie(basic):3
+ * ie CloGaelachLaptop = +ie(CloGaelach):3
+ * in urd = +in(urd-phonetic):3
+ * iu basic = +ca(ike):3
+ * lo basic = +la(basic):3
+ * kan basic = +in(kan):3
+ * mal basic = +in(mal):3
+ * mal mlplusnum = +in(mal):3
+ * ogham basic = +ie(ogam):3
+ * ogham laptop = +ie(ogam):3
+ * ogham is434 = +ie(ogam_is434):3
+ * ogham is434laptop = +ie(ogam_is434):3
+ * ori basic = +in(ori):3
+ * ro de = +ro(winkeys):3
+ * ro us = +ro(std):3
+ * ro academic = +ro(std):3
+ * ro std_comma = +ro(std):3
+ * ro comma = +ro(basic):3
+ * ru os = +ru(os_legacy):3
+ * pk urd = +pk(urd-phonetic):3
+ * sapmi basic = +no(smi):3
+ * sapmi nodeadkeys = +no(smi_nodeadkeys):3
+ * sapmi sefi = +fi(smi):3
+ * sin phonetic-static = +in(sin_phonetic):3
+ * syr basic = +sy(syc):3
+ * syr phonetic = +sy(syc_phonetic):3
+ * tam INSCRIPT = +in(tam):3
+ * tam UNI = +in(tam_unicode):3
+ * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):3
+ * tam TAB = +in(tam_TAB):3
+ * tam TSCII = +in(tam_TSCII):3
+ * tel basic = +in(tel):3
+ * yu basic = +srp(latin):3
+ * yu unicode = +srp(latinunicode):3
+ * yu yz = +srp(latinyz):3
+ * yu unicodeyz = +srp(latinunicodeyz):3
+
+! model layout[4] variant[4] = symbols
+ * ben basic = +in(ben):4
+ * ben probhat = +in(ben_probhat):4
+ * dev basic = +in(deva):4
+ * dvorak $dvoraklayouts = +%v(dvorak):4
+ * dvorak basic = +us(dvorak):4
+ * dvorak pl_basic = +pl(dvorak):4
+ * dvorak pl = +pl(dvorak_quotes):4
+ * dvorak pl_altquotes = +pl(dvorak_altquotes):4
+ * dzdwi basic = +bt(basic):4
+ * fi basic = +fi(classic):4
+ * ge azerty_tskapo = +fr(geo):4
+ * guj basic = +in(guj):4
+ * gur basic = +in(guru):4
+ * ie laptop = +ie(basic):4
+ * ie CloGaelachLaptop = +ie(CloGaelach):4
+ * in urd = +in(urd-phonetic):4
+ * iu basic = +ca(ike):4
+ * lo basic = +la(basic):4
+ * kan basic = +in(kan):4
+ * mal basic = +in(mal):4
+ * mal mlplusnum = +in(mal):4
+ * ogham basic = +ie(ogam):4
+ * ogham laptop = +ie(ogam):4
+ * ogham is434 = +ie(ogam_is434):4
+ * ogham is434laptop = +ie(ogam_is434):4
+ * ori basic = +in(ori):4
+ * ro de = +ro(winkeys):4
+ * ro us = +ro(std):4
+ * ro academic = +ro(std):4
+ * ro std_comma = +ro(std):4
+ * ro comma = +ro(basic):4
+ * ru os = +ru(os_legacy):4
+ * pk urd = +pk(urd-phonetic):4
+ * sapmi basic = +no(smi):4
+ * sapmi nodeadkeys = +no(smi_nodeadkeys):4
+ * sapmi sefi = +fi(smi):4
+ * sin phonetic-static = +in(sin_phonetic):4
+ * syr basic = +sy(syc):4
+ * syr phonetic = +sy(syc_phonetic):4
+ * tam INSCRIPT = +in(tam):4
+ * tam UNI = +in(tam_unicode):4
+ * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):4
+ * tam TAB = +in(tam_TAB):4
+ * tam TSCII = +in(tam_TSCII):4
+ * tel basic = +in(tel):4
+ * yu basic = +srp(latin):4
+ * yu unicode = +srp(latinunicode):4
+ * yu yz = +srp(latinyz):4
+ * yu unicodeyz = +srp(latinunicodeyz):4
+
+! model = symbols
+ $evdevkbds = +inet(evdev)+inet(%m)
+ applealu_jis = +inet(evdev)+macintosh_vndr/jp(alujiskeys)
+ * = +inet(evdev)
+
+! layout variant = compat
+ de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+
+! layout[1] variant[1] = compat
+ de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+
+! layout[2] variant[2] = compat
+ de neo = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+
+! layout[3] variant[3] = compat
+ de neo = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+
+! layout[4] variant[4] = compat
+ de neo = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+
+! model layout = compat
+ pc98 nec_vndr/jp = pc98(basic)
+ * jp = complete+japan
+ olpc * = olpc
+ * * = complete
+
+! model layout[1] = compat
+ * * = complete
+
+! model = types
+ $macs = complete+numpad(mac)
+ $applealu = complete+numpad(mac)
+ $nokiamodels = complete+nokia
+ * = complete
+
+! layout option = symbols
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle)
+ * misc:typo = +typo(base)
+
+! layout[1] option = symbols
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1
+ * misc:typo = +typo(base):1
+
+! layout[2] option = symbols
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2
+ * misc:typo = +typo(base):2
+
+! layout[3] option = symbols
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3
+ * misc:typo = +typo(base):3
+
+! layout[4] option = symbols
+ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4
+ * misc:typo = +typo(base):4
+
+! option = symbols
+ grp:shift_toggle = +group(shifts_toggle)
+ altwin:menu = +altwin(menu)
+ altwin:meta_alt = +altwin(meta_alt)
+ altwin:ctrl_win = +altwin(ctrl_win)
+ altwin:ctrl_alt_win = +altwin(ctrl_alt_win)
+ altwin:meta_win = +altwin(meta_win)
+ altwin:left_meta_win = +altwin(left_meta_win)
+ altwin:hyper_win = +altwin(hyper_win)
+ altwin:alt_super_win = +altwin(alt_super_win)
+ altwin:swap_lalt_lwin = +altwin(swap_lalt_lwin)
+ grp:switch = +group(switch)
+ grp:lswitch = +group(lswitch)
+ grp:win_switch = +group(win_switch)
+ grp:lwin_switch = +group(lwin_switch)
+ grp:rwin_switch = +group(rwin_switch)
+ grp:toggle = +group(toggle)
+ grp:shifts_toggle = +group(shifts_toggle)
+ grp:ctrls_toggle = +group(ctrls_toggle)
+ grp:alts_toggle = +group(alts_toggle)
+ grp:caps_toggle = +capslock(grouplock)
+ grp:caps_switch = +capslock(groupshift)
+ grp:shift_caps_toggle = +group(shift_caps_toggle)
+ grp:shift_caps_switch = +group(shift_caps_switch)
+ grp:win_menu_switch = +group(win_menu_switch)
+ grp:alt_caps_toggle = +group(alt_caps_toggle)
+ grp:alt_space_toggle = +group(alt_space_toggle)
+ grp:menu_toggle = +group(menu_toggle)
+ grp:lwin_toggle = +group(lwin_toggle)
+ grp:rwin_toggle = +group(rwin_toggle)
+ grp:lshift_toggle = +group(lshift_toggle)
+ grp:rshift_toggle = +group(rshift_toggle)
+ grp:rctrl_switch = +group(rctrl_switch)
+ grp:lctrl_toggle = +group(lctrl_toggle)
+ grp:rctrl_toggle = +group(rctrl_toggle)
+ grp:lalt_toggle = +group(lalt_toggle)
+ grp:sclk_toggle = +group(sclk_toggle)
+ grp:lctrl_rctrl_switch = +group(lctrl_rctrl_switch)
+ grp:lctrl_lwin_rctrl_menu = +group(lctrl_lwin_rctrl_menu)
+ grp:lctrl_lalt_toggle = +group(lctrl_lalt_toggle)
+ grp:rctrl_ralt_toggle = +group(rctrl_ralt_toggle)
+ grp:ctrl_alt_toggle = +group(ctrl_alt_toggle)
+ grp:ctrl_alt_toggle_bidir = +group(ctrl_alt_toggle_bidir)
+ grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle)
+ grp:rctrl_rshift_toggle = +group(rctrl_rshift_toggle)
+ grp:ctrl_shift_toggle = +group(ctrl_shift_toggle)
+ grp:ctrl_shift_toggle_bidir = +group(ctrl_shift_toggle_bidir)
+ grp:lalt_lshift_toggle = +group(lalt_lshift_toggle)
+ grp:ralt_rshift_toggle = +group(ralt_rshift_toggle)
+ grp:alt_shift_toggle = +group(alt_shift_toggle)
+ grp:alt_shift_toggle_bidir = +group(alt_shift_toggle_bidir)
+ lv3:switch = +level3(switch)
+ lv3:ralt_switch = +level3(ralt_switch)
+ lv3:ralt_switch_multikey = +level3(ralt_switch_multikey)
+ lv3:ralt_alt = +level3(ralt_alt)
+ lv3:lalt_switch = +level3(lalt_switch)
+ lv3:alt_switch = +level3(alt_switch)
+ lv3:menu_switch = +level3(menu_switch)
+ lv3:win_switch = +level3(win_switch)
+ lv3:lwin_switch = +level3(lwin_switch)
+ lv3:rwin_switch = +level3(rwin_switch)
+ lv3:enter_switch = +level3(enter_switch)
+ caps:capslock = +capslock(capslock)
+ caps:numlock = +capslock(numlock)
+ caps:shiftlock = +capslock(shiftlock)
+ caps:swapescape = +capslock(swapescape)
+ caps:escape = +capslock(escape)
+ caps:backspace = +capslock(backspace)
+ caps:super = +capslock(super)
+ caps:hyper = +capslock(hyper)
+ caps:none = +capslock(none)
+ caps:ctrl_modifier = +capslock(ctrl_modifier)
+ ctrl:nocaps = +ctrl(nocaps)
+ ctrl:lctrl_meta = +ctrl(lctrl_meta)
+ ctrl:swapcaps = +ctrl(swapcaps)
+ ctrl:ac_ctrl = +ctrl(ac_ctrl)
+ ctrl:aa_ctrl = +ctrl(aa_ctrl)
+ ctrl:rctrl_ralt = +ctrl(rctrl_ralt)
+ ctrl:menu_rctrl = +ctrl(menu_rctrl)
+ ctrl:ralt_rctrl = +ctrl(ralt_rctrl)
+ compose:ralt = +compose(ralt)
+ compose:lwin = +compose(lwin)
+ compose:rwin = +compose(rwin)
+ compose:menu = +compose(menu)
+ compose:lctrl = +compose(lctrl)
+ compose:rctrl = +compose(rctrl)
+ compose:caps = +compose(caps)
+ compose:102 = +compose(102)
+ compose:paus = +compose(paus)
+ compose:prsc = +compose(prsc)
+ compose:sclk = +compose(sclk)
+ srvrkeys:none = +srvr_ctrl(no_srvr_keys)
+ eurosign:e = +eurosign(e)
+ eurosign:2 = +eurosign(2)
+ eurosign:4 = +eurosign(4)
+ eurosign:5 = +eurosign(5)
+ rupeesign:4 = +rupeesign(4)
+ keypad:oss = +keypad(oss)
+ keypad:legacy = +keypad(legacy)
+ keypad:legacy_wang = +keypad(legacy_wang)
+ keypad:oss_wang = +keypad(oss_wang)
+ keypad:future = +keypad(future)
+ keypad:future_wang = +keypad(future_wang)
+ keypad:hex = +keypad(ops)+keypad(hex)
+ keypad:atm = +keypad(ops)+keypad(hex)+keypad(atm)
+ nbsp:none = +nbsp(none)
+ nbsp:level2 = +nbsp(level2)
+ nbsp:level3 = +nbsp(level3)
+ nbsp:level3s = +nbsp(level3s)
+ nbsp:level3n = +nbsp(level3n)
+ nbsp:level4 = +nbsp(level4)
+ nbsp:level4n = +nbsp(level4n)
+ nbsp:level4nl = +nbsp(level4nl)
+ japan:nicola_f_bs = +jp(nicola_f_bs)
+ japan:hztg_escape = +jp(hztg_escape)
+ kpdl:dot = +kpdl(dot)
+ kpdl:comma = +kpdl(comma)
+ kpdl:dotoss = +kpdl(dotoss)
+ kpdl:dotoss_latin9 = +kpdl(dotoss_latin9)
+ kpdl:commaoss = +kpdl(commaoss)
+ kpdl:momayyezoss = +kpdl(momayyezoss)
+ kpdl:kposs = +kpdl(kposs)
+ kpdl:semi = +kpdl(semi)
+ shift:breaks_caps = +shift(breaks_caps)
+ esperanto:qwerty = +epo(qwerty)
+ esperanto:dvorak = +epo(dvorak)
+ terminate:ctrl_alt_bksp = +terminate(ctrl_alt_bksp)
+ keypad:pointerkeys = +keypad(pointerkeys)
+ apple:alupckeys = +macintosh_vndr/apple(alupckeys)
+ shift:both_capslock = +shift(both_capslock)
+ shift:lshift_both_capslock = +shift(lshift_both_capslock)
+ shift:rshift_both_capslock = +shift(rshift_both_capslock)
+ shift:both_capslock_cancel = +shift(both_capslock_cancel)
+ shift:lshift_both_capslock_cancel = +shift(lshift_both_capslock_cancel)
+ shift:rshift_both_capslock_cancel = +shift(rshift_both_capslock_cancel)
+ shift:both_shiftlock = +shift(both_shiftlock)
+ shift:lshift_both_shiftlock = +shift(lshift_both_shiftlock)
+ shift:rshift_both_shiftlock = +shift(rshift_both_shiftlock)
+ lv3:caps_switch = +level3(caps_switch)
+ lv3:bksl_switch = +level3(bksl_switch)
+ lv3:lsgt_switch = +level3(lsgt_switch)
+ lv3:caps_switch_latch = +level3(caps_switch_latch)
+ lv3:bksl_switch_latch = +level3(bksl_switch_latch)
+ lv3:lsgt_switch_latch = +level3(lsgt_switch_latch)
+ lv5:lsgt_switch_lock = +level5(lsgt_switch_lock)
+ lv5:ralt_switch_lock = +level5(ralt_switch_lock)
+ lv5:lwin_switch_lock = +level5(lwin_switch_lock)
+ lv5:rwin_switch_lock = +level5(rwin_switch_lock)
+ lv5:lsgt_switch_lock_cancel = +level5(lsgt_switch_lock_cancel)
+ lv5:ralt_switch_lock_cancel = +level5(ralt_switch_lock_cancel)
+ lv5:lwin_switch_lock_cancel = +level5(lwin_switch_lock_cancel)
+ lv5:rwin_switch_lock_cancel = +level5(rwin_switch_lock_cancel)
+
+
+
+! option = compat
+ grp_led:num = +lednum(group_lock)
+ grp_led:caps = +ledcaps(group_lock)
+ grp_led:scroll = +ledscroll(group_lock)
+ caps:shiftlock = +ledcaps(shift_lock)
+ grab:break_actions = +xfree86(grab_break)