--- /dev/null
+// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part
+// $Xorg: xfree86,v 1.3 2000/08/17 19:54:42 cpqbld Exp $
+
+//
+//  Rules for resolving XKB components for use with XFree86
+//  Copyright 1996 by Joseph Moss
+//
+//  2002 Modifier: Ivan Pascal      The XFree86 Project
+//  $XFree86: xc/programs/xkbcomp/rules/xfree86,v 3.79 2004/01/09 00:16:01 dawes Exp $
+//
+
+// 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 microsoft7000 microsoftpro microsoftprousb microsoftprose
+
+// PC geometries - they have special geometry but symbols are mostly pc105
+! $pcgeometries = abnt2 latitude jp106 kr106
+
+// Layouts that provide further specializations for the OLPC
+! $olpclayouts = af am ara br ca es et it kh kz in mn np ru th tr us 
+
+! $macbooks = macbook78 macbook79
+! $maclaptop = ibook powerbook macbook78 macbook79
+! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79
+
+! $macvendorlayouts = ch de dk es 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 \
+              cymotionlinux \
+              dell dellm65 inspiron dellusbmm \
+              emachines ennyah_dkb1008 evdev \
+              genius geniuscomfy2 \
+              gyration honeywell_euroboard \
+              hp250x hp5xx hp500fa hpdv5 \
+              hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx \
+              ibm_spacesaver ipaq inspiron intel \
+              logiaccess logicda logicink \
+              logiex110 logiclx300 \
+              logiinkse logiinkseusb logiitc logiik \
+              logitech_base itouch logiultrax \
+              logitech_g15 \
+             logidinovo logidinovoedge \
+              microsoft7000 microsoftinet microsoftprousb microsoftprooem microsoftprose \
+              microsoftoffice microsoftmult \
+              mx1998 mx2500 mx2750 \
+              oretec \
+              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 \
+              kg \
+              latam \
+              lk lt \
+              mn mt \
+              nl no \
+              pl pt \
+              ro \
+              se sk \
+              tr \
+              us \
+              vn \
+              za
+
+
+! $dvoraklayouts = br ca de ee es fr gb no pl se us
+
+! model                =       keycodes
+  pc98         =       evdev(pc98)
+  abnt2                =       evdev(abnt2)
+  jp106                =       evdev(jp106)
+  *            =       evdev
+
+! layout[1]    =       keycodes
+  $azerty       =       +aliases(azerty)
+  $qwertz       =       +aliases(qwertz)
+  *             =       +aliases(qwerty)
+
+! layout       =       keycodes
+  $azerty       =       +aliases(azerty)
+  $qwertz       =       +aliases(qwertz)
+  *             =       +aliases(qwerty)
+
+! option       =       keycodes
+
+! model                layout  =       geometry
+  thinkpad     us              =       thinkpad(us)
+
+! model                =       geometry
+  microsoftelite       =       microsoft(elite)
+ $msmodels     =       microsoft(natural)
+  dell101      =       dell(dell101)
+  dellm65      =       dell(dellm65)
+  flexpro      =       keytronic(FlexPro)
+  hp6000       =       hp(omnibook)
+  omnikey101   =       northgate(omnikey101)
+ $pcmodels     =       pc(%m)
+ $pcgeometries =       pc(%m)
+  everex       =       everex(STEPnote)
+  thinkpad     =       thinkpad(intl)
+  thinkpad60   =       thinkpad(60)
+  thinkpadz60  =       thinkpad(60)
+  winbook      =       winbook(XP5)
+  pc98         =       nec(pc98)
+ $macbooks      =       macintosh(%m)
+ $macs         =       macintosh(macintosh)
+  hhk          =       hhk(basic)
+  kinesis      =       kinesis(model100)
+  *            =       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)
+  *            il              si1452          =       pc+ie(basic)
+  *            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             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)
+
+! 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)
+  *            il(si1452)                      =       pc+ie(basic)
+  *            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(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)
+  sun4         $nonlatin               =       latin+sun_vndr/us(sun4)+%l%(v):2
+  sun4         *                       =       latin+sun_vndr/us(sun4)+%l%(v)
+  sun5         $nonlatin               =       latin+sun_vndr/us(sun5)+%l%(v):2
+  sun5         *                       =       latin+sun_vndr/us(sun5)+%l%(v)
+  sun6         us                      =       sun_vndr/us(type6)
+  sun6         en_US                   =       sun_vndr/us(type6)+iso9995-3(basic)
+  sun6         *                       =       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)
+ $macs         en_US                   =       pc+macintosh_vndr/us(extended)
+ $macs         $macvendorlayouts       =       pc+macintosh_vndr/%l%(v)
+  olpc         $olpclayouts            =       olpc+%l%(m)
+  olpc         *                       =       olpc+%l%(v)
+  thinkpad     br                      =       pc+br(thinkpad)
+  *            $nonlatin               =       pc+us+%l%(v):2
+  *            *                       =       pc+%l%(v)
+
+! model                layout[1]                       =       symbols
+  *            ar                      =       pc+ara%(v[1])
+  *            bs                      =       pc+ba%(v[1])
+  *            cs                      =       pc+rs%(v[1])
+  *            dzdwi                   =       pc+bt%(v[1])
+  *            el                      =       pc+gr%(v[1])
+  *            en_US                   =       pc+latin%(v[1])
+  *            lo                      =       pc+la%(v[1])
+  *            mi                      =       pc+mao%(v[1])
+  *            sr                      =       pc+srp%(v[1])
+  *            yu                      =       pc+srp%(v[1])
+  *            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)
+  *            il(si1452)                      =       pc+ie(basic)
+  *            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(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(sun4)+%l[1]%(v[1])
+  sun5         *                       =       latin+sun_vndr/us(sun5)+%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])
+ $macs         $macvendorlayouts       =       pc+macintosh_vndr/%l[1]%(v[1])
+  thinkpad     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)
+  *            il              si1452          =       pc+ie(basic)
+  *            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             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)
+
+! layout[2]    =       symbols
+  ar           =       +ara%(v[2]):2
+  bs           =       +ba%(v[2]):2
+  cs           =       +rs%(v[2]):2
+  dzdwi                =       +bt%(v[2]):2
+  el           =       +gr%(v[2]):2
+  en_US                =       +latin%(v[2]):2
+  lo           =       +la%(v[2]):2
+  mi           =       +mao%(v[2]):2
+  sr           =       +srp%(v[2]):2
+  yu           =       +srp%(v[2]):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
+  il(si1452)   =       +ie(basic):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(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
+  *            =       +%l[2]%(v[2]):2
+
+! layout[3]    =       symbols
+  ar           =       +ara%(v[3]):3
+  bs           =       +ba%(v[3]):3
+  cs           =       +rs%(v[3]):3
+  dzdwi                =       +bt%(v[3]):3
+  el           =       +gr%(v[3]):3
+  en_US                =       +latin%(v[3]):3
+  lo           =       +la%(v[3]):3
+  mi           =       +mao%(v[3]):3
+  sr           =       +srp%(v[3]):3
+  yu           =       +srp%(v[3]):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
+  il(si1452)   =       +ie(basic):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(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
+  *            =       +%l[3]%(v[3]):3
+
+! layout[4]    =       symbols
+  ar           =       +ara%(v[4]):4
+  bs           =       +ba%(v[4]):4
+  cs           =       +rs%(v[4]):4
+  dzdwi                =       +bt%(v[4]):4
+  el           =       +gr%(v[4]):4
+  en_US                =       +latin%(v[4]):4
+  lo           =       +la%(v[4]):4
+  mi           =       +mao%(v[4]):4
+  sr           =       +srp%(v[4]):4
+  yu           =       +srp%(v[4]):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
+  il(si1452)   =       +ie(basic):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(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
+  *            =       +%l[4]%(v[4]):4
+
+! 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
+  il           si1452  =       +ie(basic):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          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
+
+! 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
+  il           si1452  =       +ie(basic):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          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
+
+! 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
+  il           si1452  =       +ie(basic):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          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
+  thinkpad     =       +inet(evdev)+madduck(thinkpad_switch)
+  *            =       +inet(evdev)+madduck(default_switch)
+
+! 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)
+  *            =       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:super_win     =       +altwin(super_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:ctrl_shift_toggle        =       +group(ctrl_shift_toggle)
+  grp:lctrl_lshift_toggle      =       +group(lctrl_lshift_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:ctrl_alt_toggle  =       +group(ctrl_alt_toggle)
+  grp:alt_shift_toggle =       +group(alt_shift_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)
+  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:shiftlock       =       +capslock(shiftlock)
+  caps:swapescape      =       +capslock(swapescape)
+  caps:escape          =       +capslock(escape)
+  caps:backspace       =       +capslock(backspace)
+  ctrl:nocaps          =       +ctrl(nocaps)
+  ctrl:swapcaps                =       +ctrl(swapcaps)
+  ctrl:ctrl_ac         =       +ctrl(ctrl_ac)
+  ctrl:ctrl_aa         =       +ctrl(ctrl_aa)
+  ctrl:ctrl_ra         =       +ctrl(ctrl_ra)
+  compose:ralt         =       +compose(ralt)
+  compose:lwin         =       +compose(lwin)
+  compose:rwin         =       +compose(rwin)
+  compose:menu         =       +compose(menu)
+  compose:rctrl                =       +compose(rctrl)
+  compose:caps         =       +compose(caps)
+  compose:102          =       +compose(102)
+  srvrkeys:none                =       +srvr_ctrl(no_srvr_keys)
+  eurosign:e           =       +eurosign(e)
+  eurosign:2           =       +eurosign(2)
+  eurosign:4           =       +eurosign(4)
+  eurosign:5           =       +eurosign(5)
+  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)
+  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)
+  madduck:caps_mod4    =       +madduck(caps_mod4)
+  madduck:group2_intl  =       +madduck(group2_intl)
+
+
+! option       =       compat
+  grp_led:num          =       +lednum(group_lock)
+  grp_led:caps         =       +ledcaps(group_lock)
+  grp_led:scroll       =       +ledscroll(group_lock)
+  grp:caps_toggle      =       +ledcaps(group_lock)
+  japan:kana_lock      =       +japan(kana_lock)
+  caps:shiftlock       =       +ledcaps(shift_lock)
+
+
+! option       =       types
+  caps:internal                        =       +caps(internal)
+  caps:internal_nocancel       =       +caps(internal_nocancel)
+  caps:shift                   =       +caps(shift)
+  caps:shift_nocancel          =       +caps(shift_nocancel)
+  numpad:pc                    =       +numpad(pc)
+  numpad:mac                   =       +numpad(mac)
+  numpad:microsoft             =       +numpad(microsoft)
+  numpad:shift3                =       +numpad(shift3)
 
--- /dev/null
+! model
+  pc101           Generic 101-key PC
+  pc102           Generic 102-key (Intl) PC
+  pc104           Generic 104-key PC
+  pc105           Generic 105-key (Intl) PC
+  dell101         Dell 101-key PC
+  latitude        Dell Latitude series laptop
+  dellm65         Dell Precision M65
+  everex          Everex STEPnote
+  flexpro         Keytronic FlexPro
+  microsoft       Microsoft Natural
+  omnikey101      Northgate OmniKey 101
+  winbook         Winbook Model XP5
+  jp106           Japanese 106-key
+  pc98            PC-98xx Series
+  a4techKB21      A4Tech KB-21
+  a4techKBS8      A4Tech KBS-8
+  a4_rfkb23       A4Tech Wireless Desktop RFKB-23
+  abnt2           Brazilian ABNT2
+  airkey          Acer AirKey V
+  acpi            ACPI Standard
+  azonaRF2300     Azona RF2300 wireless Internet Keyboard
+  scorpius        Advance Scorpius KI
+  brother         Brother Internet Keyboard
+  btc5113rf       BTC 5113RF Multimedia
+  btc5126t        BTC 5126T
+  btc6301urf      BTC 6301URF
+  btc9000         BTC 9000
+  btc9000a        BTC 9000A
+  btc9001ah       BTC 9001AH
+  btc5090         BTC 5090
+  btc9019u        BTC 9019U
+  btc9116u        BTC 9116U Mini Wireless Internet and Gaming
+  cherryblue      Cherry Blue Line CyBo@rd
+  cherryblueb     Cherry CyMotion Master XPress
+  cherrybluea     Cherry Blue Line CyBo@rd (alternate option)
+  cherrycyboard   Cherry CyBo@rd USB-Hub
+  cherrycmexpert  Cherry CyMotion Expert
+  chicony         Chicony Internet Keyboard
+  chicony0108     Chicony KU-0108
+  chicony0420     Chicony KU-0420
+  chicony9885     Chicony KB-9885
+  compaqeak8      Compaq Easy Access Keyboard
+  compaqik7       Compaq Internet Keyboard (7 keys)
+  compaqik13      Compaq Internet Keyboard (13 keys)
+  compaqik18      Compaq Internet Keyboard (18 keys)
+  cymotionlinux   Cherry CyMotion Master Linux
+  armada          Laptop/notebook Compaq (eg. Armada) Laptop Keyboard
+  presario        Laptop/notebook Compaq (eg. Presario) Internet Keyboard
+  ipaq            Compaq iPaq Keyboard
+  dell            Dell
+  dellsk8125      Dell SK-8125
+  dellsk8135      Dell SK-8135
+  dellusbmm       Dell USB Multimedia Keyboard
+  inspiron        Dell Laptop/notebook Inspiron 6xxx/8xxx
+  precision_m     Dell Laptop/notebook Precision M series
+  dexxa           Dexxa Wireless Desktop Keyboard
+  diamond         Diamond 9801 / 9802 series
+  dtk2000         DTK2000
+  ennyah_dkb1008  Ennyah DKB-1008
+  fscaa1667g      Fujitsu-Siemens Computers AMILO laptop
+  genius          Genius Comfy KB-16M / Genius MM Keyboard KWD-910
+  geniuscomfy     Genius Comfy KB-12e
+  geniuscomfy2    Genius Comfy KB-21e-Scroll
+  geniuskb19e     Genius KB-19e NB
+  gyration        Gyration
+  logitech_base   Logitech Generic Keyboard
+  logitech_g15    Logitech G15 extra keys via G15daemon
+  hpi6            Hewlett-Packard Internet Keyboard
+  hp250x          Hewlett-Packard SK-250x Multimedia Keyboard
+  hpxe3gc         Hewlett-Packard Omnibook XE3 GC
+  hpxe3gf         Hewlett-Packard Omnibook XE3 GF
+  hpxt1000        Hewlett-Packard Omnibook XT1000
+  hpdv5           Hewlett-Packard Pavilion dv5
+  hpzt11xx        Hewlett-Packard Pavilion ZT11xx
+  hp500fa         Hewlett-Packard Omnibook 500 FA
+  hp5xx           Hewlett-Packard Omnibook 5xx
+  hpnx9020        Hewlett-Packard nx9020
+  hp6000          Hewlett-Packard Omnibook 6000/6100
+  honeywell_euroboard Honeywell Euroboard
+  rapidaccess     IBM Rapid Access
+  rapidaccess2    IBM Rapid Access II
+  thinkpad        IBM ThinkPad 560Z/600/600E/A22E
+  thinkpadintl    IBM ThinkPad 560Z/600/600E/A22E, Intl
+  thinkpad60      IBM ThinkPad R60/T60/R61/T61
+  thinkpadz60     IBM ThinkPad Z60m/Z60t/Z61m/Z61t
+  ibm_spacesaver  IBM Space Saver
+  logiaccess      Logitech Access Keyboard
+  logiclx300      Logitech Cordless Desktop LX-300
+  logii350        Logitech Internet 350 Keyboard
+  logimel         Logitech Media Elite Keyboard
+  logicd          Logitech Cordless Desktop
+  logicd_it       Logitech Cordless Desktop iTouch
+  logicd_nav      Logitech Cordless Desktop Navigator
+  logicd_opt      Logitech Cordless Desktop Optical
+  logicda         Logitech Cordless Desktop (alternate option)
+  logicdpa2       Logitech Cordless Desktop Pro (alternate option2)
+  logicfn         Logitech Cordless Freedom/Desktop Navigator
+  logicdn         Logitech Cordless Desktop Navigator
+  logiitc         Logitech iTouch Cordless Keyboard (model Y-RB6)
+  logiik          Logitech Internet Keyboard
+  itouch          Logitech iTouch
+  logicink        Logitech Internet Navigator Keyboard
+  logiex110       Logitech Cordless Desktop EX110
+  logiinkse       Logitech iTouch Internet Navigator Keyboard SE
+  logiinkseusb    Logitech iTouch Internet Navigator Keyboard SE (USB)
+  logiultrax      Logitech Ultra-X Keyboard
+  logiultraxc     Logitech Ultra-X Cordless Media Desktop Keyboard
+  logidinovo      Logitech diNovo Keyboard
+  logidinovoedge  Logitech diNovo Edge Keyboard
+  mx1998          Memorex MX1998
+  mx2500          Memorex MX2500 EZ-Access Keyboard
+  mx2750          Memorex MX2750
+  microsoft7000   Microsoft Natural Wireless Ergonomic Keyboard 7000
+  microsoftinet   Microsoft Internet Keyboard
+  microsoftpro    Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro
+  microsoftprousb Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro
+  microsoftprooem Microsoft Natural Keyboard Pro OEM
+  vsonku306       ViewSonic KU-306 Internet Keyboard
+  microsoftprose  Microsoft Internet Keyboard Pro, Swedish
+  microsoftoffice Microsoft Office Keyboard
+  microsoftmult   Microsoft Wireless Multimedia Keyboard 1.0A
+  microsoftelite  Microsoft Natural Keyboard Elite
+  microsoftccurve2k Microsoft Comfort Curve Keyboard 2000
+  oretec          Ortek MCK-800 MM/Internet keyboard
+  propeller       Propeller Voyager (KTEZ-1000)
+  qtronix         QTronix Scorpius 98N+
+  samsung4500     Samsung SDM 4500P
+  samsung4510     Samsung SDM 4510P
+  sk1300          SK-1300
+  sk2500          SK-2500
+  sk6200          SK-6200
+  sk7100          SK-7100
+  sp_inet         Super Power Multimedia Keyboard
+  sven            SVEN Ergonomic 2500
+  sven303         SVEN Slim 303
+  symplon         Symplon PaceBook (tablet PC)
+  toshiba_s3000   Toshiba Satellite S3000
+  trust           Trust Wireless Keyboard Classic
+  trustda         Trust Direct Access Keyboard
+  yahoo           Yahoo! Internet Keyboard
+  macbook78       MacBook/MacBook Pro
+  macbook79       MacBook/MacBook Pro (Intl)
+  macintosh       Macintosh
+  macintosh_old   Macintosh Old
+  macintosh_hhk   Happy Hacking Keyboard for Mac
+  acer_c300       Acer C300
+  acer_ferrari4k  Acer Ferrari 4000
+  acer_laptop     Acer Laptop
+  asus_laptop     Asus Laptop
+  apple           Apple
+  apple_laptop    Apple Laptop
+  silvercrest     SILVERCREST Multimedia Wireless Keyboard
+  emachines       Laptop/notebook eMachines m68xx
+  kr106           Korean 106-key
+  evdev           Evdev-managed keyboard
+  benqx           BenQ X-Touch
+  benqx730        BenQ X-Touch 730
+  benqx800        BenQ X-Touch 800
+  hhk             Happy Hacking Keyboard
+  classmate       Classmate PC
+  olpc            OLPC
+  sun6            Sun Type 5/6
+  targa_v811      Targa Visionary 811
+  unitekkb1925    Unitek KB-1925
+  compalfl90      FL90
+
+! layout
+  us              USA
+  ad              Andorra
+  af              Afghanistan
+  ara             Arabic
+  al              Albania
+  am              Armenia
+  az              Azerbaijan
+  by              Belarus
+  be              Belgium
+  bd              Bangladesh
+  in              India
+  ba              Bosnia and Herzegovina
+  br              Brazil
+  bg              Bulgaria
+  ma              Morocco
+  mm              Myanmar
+  ca              Canada
+  cd              Congo, Democratic Republic of the
+  cn              China
+  hr              Croatia
+  cz              Czechia
+  dk              Denmark
+  nl              Netherlands
+  bt              Bhutan
+  ee              Estonia
+  ir              Iran
+  iq              Iraq
+  fo              Faroe Islands
+  fi              Finland
+  fr              France
+  gh              Ghana
+  gn              Guinea
+  ge              Georgia
+  de              Germany
+  gr              Greece
+  hu              Hungary
+  is              Iceland
+  il              Israel
+  it              Italy
+  jp              Japan
+  kg              Kyrgyzstan
+  kh              Cambodia
+  kz              Kazakhstan
+  la              Laos
+  latam           Latin American
+  lt              Lithuania
+  lv              Latvia
+  mao             Maori
+  me              Montenegro
+  mk              Macedonia
+  mt              Malta
+  mn              Mongolia
+  no              Norway
+  pl              Poland
+  pt              Portugal
+  ro              Romania
+  ru              Russia
+  rs              Serbia
+  si              Slovenia
+  sk              Slovakia
+  es              Spain
+  se              Sweden
+  ch              Switzerland
+  sy              Syria
+  tj              Tajikistan
+  lk              Sri Lanka
+  th              Thailand
+  tr              Turkey
+  ua              Ukraine
+  gb              United Kingdom
+  uz              Uzbekistan
+  vn              Vietnam
+  kr              Korea, Republic of
+  nec_vndr/jp     Japan (PC-98xx Series)
+  ie              Ireland
+  pk              Pakistan
+  mv              Maldives
+  za              South Africa
+  epo             Esperanto
+  np              Nepal
+  ng              Nigeria
+  et              Ethiopia
+  braille         Braille
+
+! variant
+  chr             us: Cherokee
+  euro            us: With EuroSign on 5
+  intl            us: International (with dead keys)
+  alt-intl        us: Alternative international (former us_intl)
+  colemak         us: Colemak
+  dvorak          us: Dvorak
+  dvorak-intl     us: Dvorak international
+  dvorak-l        us: Left handed Dvorak
+  dvorak-r        us: Right handed Dvorak
+  dvorak-classic  us: Classic Dvorak
+  dvp             us: Programmer Dvorak
+  rus             us: Russian phonetic
+  mac             us: Macintosh
+  altgr-intl      us: International (AltGr dead keys)
+  olpc2           us: Group toggle on multiply/divide key
+  ps              af: Pashto
+  uz              af: Southern Uzbek
+  olpc-ps         af: OLPC Pashto
+  olpc-fa         af: OLPC Dari
+  olpc-uz         af: OLPC Southern Uzbek
+  azerty          ara: azerty
+  azerty_digits   ara: azerty/digits
+  digits          ara: digits
+  qwerty          ara: qwerty
+  qwerty_digits   ara: qwerty/digits
+  buckwalter      ara: Buckwalter
+  phonetic        am: Phonetic
+  phonetic-alt    am: Alternative Phonetic
+  eastern         am: Eastern
+  western         am: Western
+  eastern-alt     am: Alternative Eastern
+  cyrillic        az: Cyrillic
+  winkeys         by: Winkeys
+  latin           by: Latin
+  oss             be: Alternative
+  oss_latin9      be: Alternative, latin-9 only
+  oss_sundeadkeys be: Alternative, Sun dead keys
+  iso-alternate   be: ISO Alternate
+  nodeadkeys      be: Eliminate dead keys
+  sundeadkeys     be: Sun dead keys
+  wang            be: Wang model 724 azerty
+  probhat         bd: Probhat
+  ben             in: Bengali
+  ben_probhat     in: Bengali Probhat
+  guj             in: Gujarati
+  guru            in: Gurmukhi
+  jhelum          in: Gurmukhi Jhelum
+  kan             in: Kannada
+  mal             in: Malayalam
+  mal_lalitha     in: Malayalam Lalitha
+  ori             in: Oriya
+  tam_unicode     in: Tamil Unicode
+  tam_TAB         in: Tamil TAB Typewriter
+  tam_TSCII       in: Tamil TSCII Typewriter
+  tam             in: Tamil
+  tel             in: Telugu
+  urd-phonetic    in: Urdu, Phonetic
+  urd-phonetic3   in: Urdu, Alternative phonetic
+  urd-winkeys     in: Urdu, Winkeys
+  bolnagri        in: Hindi Bolnagri
+  alternatequotes ba: Use guillemets for quotes
+  unicode         ba: Use Bosnian digraphs
+  unicodeus       ba: US keyboard with Bosnian digraphs
+  us              ba: US keyboard with Bosnian letters
+  nodeadkeys      br: Eliminate dead keys
+  dvorak          br: Dvorak
+  nativo          br: Nativo
+  nativo-us       br: Nativo for USA keyboards
+  nativo-epo      br: Nativo for Esperanto
+  phonetic        bg: Phonetic
+  french          ma: French
+  tifinagh        ma: Tifinagh
+  tifinagh-alt    ma: Tifinagh Alternative
+  tifinagh-alt-phonetic ma: Tifinagh Alternative Phonetic
+  tifinagh-extended ma: Tifinagh Extended
+  tifinagh-phonetic ma: Tifinagh Phonetic
+  tifinagh-extended-phonetic ma: Tifinagh Extended Phonetic
+  fr-dvorak       ca: French Dvorak
+  fr-legacy       ca: French (legacy)
+  multix          ca: Multilingual
+  multi           ca: Multilingual, first part
+  multi-2gr       ca: Multilingual, second part
+  ike             ca: Inuktitut
+  shs             ca: Secwepemctsin
+  kut             ca: Ktunaxa
+  eng             ca: English
+  tib             cn: Tibetan
+  tib_asciinum    cn: Tibetan (with ASCII numerals)
+  alternatequotes hr: Use guillemets for quotes
+  unicode         hr: Use Croatian digraphs
+  unicodeus       hr: US keyboard with Croatian digraphs
+  us              hr: US keyboard with Croatian letters
+  bksl            cz: With <\|> key
+  qwerty          cz: qwerty
+  qwerty_bksl     cz: qwerty, extended Backslash
+  ucw             cz: UCW layout (accented letters only)
+  nodeadkeys      dk: Eliminate dead keys
+  mac             dk: Macintosh
+  mac_nodeadkeys  dk: Macintosh, eliminate dead keys
+  dvorak          dk: Dvorak
+  sundeadkeys     nl: Sun dead keys
+  mac             nl: Macintosh
+  std             nl: Standard
+  nodeadkeys      ee: Eliminate dead keys
+  dvorak          ee: Dvorak
+  us              ee: US keyboard with Estonian letters
+  pro             ir: Pro
+  keypad          ir: Keypad
+  pro_keypad      ir: Pro Keypad
+  ku              ir: Kurdish, Latin Q
+  ku_f            ir: Kurdish, (F)
+  ku_alt          ir: Kurdish, Latin Alt-Q
+  ku_ara          ir: Kurdish, Arabic-Latin
+  ku              iq: Kurdish, Latin Q
+  ku_f            iq: Kurdish, (F)
+  ku_alt          iq: Kurdish, Latin Alt-Q
+  ku_ara          iq: Kurdish, Arabic-Latin
+  nodeadkeys      fo: Eliminate dead keys
+  nodeadkeys      fi: Eliminate dead keys
+  smi             fi: Northern Saami
+  classic         fi: Classic
+  mac             fi: Macintosh
+  nodeadkeys      fr: Eliminate dead keys
+  sundeadkeys     fr: Sun dead keys
+  oss             fr: Alternative
+  oss_latin9      fr: Alternative, latin-9 only
+  oss_nodeadkeys  fr: Alternative, eliminate dead keys
+  oss_sundeadkeys fr: Alternative, Sun dead keys
+  latin9          fr: (Legacy) Alternative
+  latin9_nodeadkeys fr: (Legacy) Alternative, eliminate dead keys
+  latin9_sundeadkeys fr: (Legacy) Alternative, Sun dead keys
+  bepo            fr: Bepo, ergonomic, Dvorak way
+  bepo_latin9     fr: Bepo, ergonomic, Dvorak way, latin-9 only
+  dvorak          fr: Dvorak
+  mac             fr: Macintosh
+  bre             fr: Breton
+  geo             fr: Georgian AZERTY Tskapo
+  generic         gh: Multilingual
+  akan            gh: Akan
+  ewe             gh: Ewe
+  fula            gh: Fula
+  ga              gh: Ga
+  hausa           gh: Hausa
+  ergonomic       ge: Ergonomic
+  mess            ge: MESS
+  ru              ge: Russian
+  os              ge: Ossetian
+  deadacute       de: Dead acute
+  deadgraveacute  de: Dead grave acute
+  nodeadkeys      de: Eliminate dead keys
+  ro              de: Romanian keyboard with German letters
+  ro_nodeadkeys   de: Romanian keyboard with German letters, eliminate dead keys
+  dvorak          de: Dvorak
+  sundeadkeys     de: Sun dead keys
+  neo             de: Neo 2
+  mac             de: Macintosh
+  mac_nodeadkeys  de: Macintosh, eliminate dead keys
+  dsb             de: Lower Sorbian
+  dsb_qwertz      de: Lower Sorbian (qwertz)
+  qwerty          de: qwerty
+  simple          gr: Simple
+  extended        gr: Extended
+  nodeadkeys      gr: Eliminate dead keys
+  polytonic       gr: Polytonic
+  standard        hu: Standard
+  nodeadkeys      hu: Eliminate dead keys
+  qwerty          hu: qwerty
+  101_qwertz_comma_dead hu: 101/qwertz/comma/Dead keys
+  101_qwertz_comma_nodead hu: 101/qwertz/comma/Eliminate dead keys
+  101_qwertz_dot_dead hu: 101/qwertz/dot/Dead keys
+  101_qwertz_dot_nodead hu: 101/qwertz/dot/Eliminate dead keys
+  101_qwerty_comma_dead hu: 101/qwerty/comma/Dead keys
+  101_qwerty_comma_nodead hu: 101/qwerty/comma/Eliminate dead keys
+  101_qwerty_dot_dead hu: 101/qwerty/dot/Dead keys
+  101_qwerty_dot_nodead hu: 101/qwerty/dot/Eliminate dead keys
+  102_qwertz_comma_dead hu: 102/qwertz/comma/Dead keys
+  102_qwertz_comma_nodead hu: 102/qwertz/comma/Eliminate dead keys
+  102_qwertz_dot_dead hu: 102/qwertz/dot/Dead keys
+  102_qwertz_dot_nodead hu: 102/qwertz/dot/Eliminate dead keys
+  102_qwerty_comma_dead hu: 102/qwerty/comma/Dead keys
+  102_qwerty_comma_nodead hu: 102/qwerty/comma/Eliminate dead keys
+  102_qwerty_dot_dead hu: 102/qwerty/dot/Dead keys
+  102_qwerty_dot_nodead hu: 102/qwerty/dot/Eliminate dead keys
+  Sundeadkeys     is: Sun dead keys
+  nodeadkeys      is: Eliminate dead keys
+  mac             is: Macintosh
+  dvorak          is: Dvorak
+  lyx             il: lyx
+  phonetic        il: Phonetic
+  biblical        il: Biblical Hebrew (Tiro)
+  nodeadkeys      it: Eliminate dead keys
+  mac             it: Macintosh
+  geo             it: Georgian
+  kana            jp: Kana
+  OADG109A        jp: OADG 109A
+  ruskaz          kz: Russian with Kazakh
+  kazrus          kz: Kazakh with Russian
+  nodeadkeys      latam: Eliminate dead keys
+  deadtilde       latam: Include dead tilde
+  sundeadkeys     latam: Sun dead keys
+  std             lt: Standard
+  us              lt: US keyboard with Lithuanian letters
+  ibm             lt: IBM (LST 1205-92)
+  lekp            lt: LEKP
+  lekpa           lt: LEKPa
+  apostrophe      lv: Apostrophe (') variant
+  tilde           lv: Tilde (~) variant
+  fkey            lv: F-letter (F) variant
+  cyrillic        me: Cyrillic
+  cyrillicyz      me: Cyrillic, Z and ZHE swapped
+  latinunicode    me: Latin unicode
+  latinyz         me: Latin qwerty
+  latinunicodeyz  me: Latin unicode qwerty
+  cyrillicalternatequotes me: Cyrillic with guillemets
+  latinalternatequotes me: Latin with guillemets
+  nodeadkeys      mk: Eliminate dead keys
+  us              mt: Maltese keyboard with US layout
+  nodeadkeys      no: Eliminate dead keys
+  dvorak          no: Dvorak
+  smi             no: Northern Saami
+  smi_nodeadkeys  no: Northern Saami, eliminate dead keys
+  mac             no: Macintosh
+  mac_nodeadkeys  no: Macintosh, eliminate dead keys
+  qwertz          pl: qwertz
+  dvorak          pl: Dvorak
+  dvorak_quotes   pl: Dvorak, Polish quotes on quotemark key
+  dvorak_altquotes pl: Dvorak, Polish quotes on key "1/!"
+  csb             pl: Kashubian
+  ru_phonetic_dvorak pl: Russian phonetic Dvorak
+  nodeadkeys      pt: Eliminate dead keys
+  sundeadkeys     pt: Sun dead keys
+  mac             pt: Macintosh
+  mac_nodeadkeys  pt: Macintosh, eliminate dead keys
+  mac_sundeadkeys pt: Macintosh, Sun dead keys
+  nativo          pt: Nativo
+  nativo-us       pt: Nativo for USA keyboards
+  nativo-epo      pt: Nativo for Esperanto
+  cedilla         ro: Cedilla
+  std             ro: Standard
+  std_cedilla     ro: Standard (Cedilla)
+  winkeys         ro: Winkeys
+  phonetic        ru: Phonetic
+  typewriter      ru: Typewriter
+  legacy          ru: Legacy
+  tt              ru: Tatar
+  os_legacy       ru: Ossetian, legacy
+  os_winkeys      ru: Ossetian, Winkeys
+  cv              ru: Chuvash
+  cv_latin        ru: Chuvash Latin
+  udm             ru: Udmurt
+  kom             ru: Komi
+  sah             ru: Yakut
+  xal             ru: Kalmyk
+  yz              rs: Z and ZHE swapped
+  latin           rs: Latin
+  latinunicode    rs: Latin Unicode
+  latinyz         rs: Latin qwerty
+  latinunicodeyz  rs: Latin Unicode qwerty
+  alternatequotes rs: With guillemets
+  latinalternatequotes rs: Latin with guillemets
+  alternatequotes si: Use guillemets for quotes
+  unicode         si: Use Slovenian digraphs
+  unicodeus       si: US keyboard with Slovenian digraphs
+  us              si: US keyboard with Slovenian letters
+  bksl            sk: Extended Backslash
+  qwerty          sk: qwerty
+  qwerty_bksl     sk: qwerty, extended Backslash
+  nodeadkeys      es: Eliminate dead keys
+  deadtilde       es: Include dead tilde
+  sundeadkeys     es: Sun dead keys
+  dvorak          es: Dvorak
+  ast             es: Asturian variant with bottom-dot H and bottom-dot L
+  cat             es: Catalan variant with middle-dot L
+  mac             es: Macintosh
+  nodeadkeys      se: Eliminate dead keys
+  dvorak          se: Dvorak
+  rus             se: Russian phonetic
+  rus_nodeadkeys  se: Russian phonetic, eliminate dead keys
+  smi             se: Northern Saami
+  mac             se: Macintosh
+  svdvorak        se: Svdvorak
+  de_nodeadkeys   ch: German, eliminate dead keys
+  de_sundeadkeys  ch: German, Sun dead keys
+  fr              ch: French
+  fr_nodeadkeys   ch: French, eliminate dead keys
+  fr_sundeadkeys  ch: French, Sun dead keys
+  fr_mac          ch: French (Macintosh)
+  de_mac          ch: German (Macintosh)
+  syc             sy: Syriac
+  syc_phonetic    sy: Syriac phonetic
+  ku              sy: Kurdish, Latin Q
+  ku_f            sy: Kurdish, (F)
+  ku_alt          sy: Kurdish, Latin Alt-Q
+  legacy          tj: Legacy
+  tam_unicode     lk: Tamil Unicode
+  tam_TAB         lk: Tamil TAB Typewriter
+  tis             th: TIS-820.2538
+  pat             th: Pattachote
+  f               tr: (F)
+  alt             tr: Alt-Q
+  sundeadkeys     tr: Sun dead keys
+  ku              tr: Kurdish, Latin Q
+  ku_f            tr: Kurdish, (F)
+  ku_alt          tr: Kurdish, Latin Alt-Q
+  intl            tr: International (with dead keys)
+  phonetic        ua: Phonetic
+  typewriter      ua: Typewriter
+  winkeys         ua: Winkeys
+  unicode         ua: Unicode
+  rstu            ua: Standard RSTU
+  rstu_ru         ua: Standard RSTU on Russian layout
+  homophonic      ua: Homophonic
+  intl            gb: International (with dead keys)
+  dvorak          gb: Dvorak
+  dvorakukp       gb: Dvorak (UK Punctuation)
+  mac             gb: Macintosh
+  colemak         gb: Colemak
+  latin           uz: Latin
+  kr104           kr: 101/104 key Compatible
+  CloGaelach      ie: CloGaelach
+  UnicodeExpert   ie: UnicodeExpert
+  ogam            ie: Ogham
+  ogam_is434      ie: Ogham IS434
+  urd-crulp       pk: CRULP
+  urd-nla         pk: NLA
+  ara             pk: Arabic
+  legacy          epo: displaced semicolon and quote (obsolete)
+  igbo            ng: Igbo
+  yoruba          ng: Yoruba
+  hausa           ng: Hausa
+  left_hand       braille: Left hand
+  right_hand      braille: Right hand
+
+! option
+  grp                  Key(s) to change layout
+  grp:switch           Right Alt (while pressed)
+  grp:lswitch          Left Alt (while pressed)
+  grp:lwin_switch      Left Win (while pressed)
+  grp:rwin_switch      Right Win (while pressed)
+  grp:win_switch       Any Win key (while pressed)
+  grp:caps_switch      CapsLock (while pressed), Alt+CapsLock does the original capslock action
+  grp:rctrl_switch     Right Ctrl (while pressed)
+  grp:toggle           Right Alt
+  grp:lalt_toggle      Left Alt
+  grp:caps_toggle      CapsLock
+  grp:shift_caps_toggle Shift+CapsLock
+  grp:shift_caps_switch CapsLock (to first layout), Shift+CapsLock (to last layout)
+  grp:win_menu_switch  Left Win (to first layout), Right Win/Menu (to last layout)
+  grp:alt_caps_toggle  Alt+CapsLock
+  grp:shifts_toggle    Both Shift keys together
+  grp:alts_toggle      Both Alt keys together
+  grp:ctrls_toggle     Both Ctrl keys together
+  grp:ctrl_shift_toggle Ctrl+Shift
+  grp:lctrl_lshift_toggle Left Ctrl+Left Shift
+  grp:ctrl_alt_toggle  Alt+Ctrl
+  grp:alt_shift_toggle Alt+Shift
+  grp:alt_space_toggle Alt+Space
+  grp:menu_toggle      Menu
+  grp:lwin_toggle      Left Win
+  grp:rwin_toggle      Right Win
+  grp:lshift_toggle    Left Shift
+  grp:rshift_toggle    Right Shift
+  grp:lctrl_toggle     Left Ctrl
+  grp:rctrl_toggle     Right Ctrl
+  grp:sclk_toggle      Scroll Lock
+  lv3                  Key to choose 3rd level
+  lv3:switch           Right Ctrl
+  lv3:menu_switch      Menu
+  lv3:win_switch       Any Win key
+  lv3:lwin_switch      Left Win
+  lv3:rwin_switch      Right Win
+  lv3:alt_switch       Any Alt key
+  lv3:lalt_switch      Left Alt
+  lv3:ralt_switch      Right Alt
+  lv3:ralt_switch_multikey Right Alt, Shift+Right Alt key is Multi_Key
+  lv3:ralt_alt         Right Alt key never chooses 3rd level
+  lv3:enter_switch     Press Enter key on keypad to choose 3rd level.
+  ctrl                 Ctrl key position
+  ctrl:nocaps          Make CapsLock an additional Ctrl
+  ctrl:swapcaps        Swap Ctrl and CapsLock
+  ctrl:ctrl_ac         At left of 'A'
+  ctrl:ctrl_aa         At bottom left
+  ctrl:ctrl_ra         Right Ctrl as Right Alt
+  grp_led              Use keyboard LED to show alternative layout
+  grp_led:num          NumLock
+  grp_led:caps         CapsLock
+  grp_led:scroll       ScrollLock
+  keypad               Numeric keypad layout selection
+  keypad:legacy        Legacy
+  keypad:oss           Unicode additions (arrows and math operators)
+  keypad:future        Unicode additions (arrows and math operators). Math operators on default level
+  keypad:legacy_wang   Legacy Wang 724
+  keypad:oss_wang      Wang 724 keypad with unicode additions (arrows and math operators)
+  keypad:future_wang   Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level
+  keypad:hex           Hexadecimal
+  keypad:atm           ATM/phone-style
+  kpdl                 Numeric keypad delete key behaviour
+  kpdl:dot             Legacy key with dot
+  kpdl:comma           Legacy key with comma
+  kpdl:dotoss          Four-level key with dot
+  kpdl:dotoss_latin9   Four-level key with dot, latin-9 restriction
+  kpdl:commaoss        Four-level key with comma
+  kpdl:momayyezoss     Four-level key with momayyez
+  kpdl:kposs           Four-level key with abstract separators
+  kpdl:semi            Semi-colon on third level
+  caps                 CapsLock key behavior
+  caps:internal        CapsLock uses internal capitalization. Shift "pauses" CapsLock
+  caps:internal_nocancel CapsLock uses internal capitalization. Shift doesn't affect CapsLock
+  caps:shift           CapsLock acts as Shift with locking. Shift "pauses" CapsLock
+  caps:shift_nocancel  CapsLock acts as Shift with locking. Shift doesn't affect CapsLock
+  caps:capslock        CapsLock toggles normal capitalization of alphabetic characters
+  caps:swapescape      Swap ESC and CapsLock
+  caps:escape          Make CapsLock an additional ESC
+  caps:backspace       Make CapsLock an additional Backspace
+  caps:shiftlock       CapsLock toggles Shift so all keys are affected
+  altwin               Alt/Win key behavior
+  altwin:menu          Add the standard behavior to Menu key
+  altwin:meta_alt      Alt and Meta are on Alt keys
+  altwin:ctrl_win      Control is mapped to Win keys (and the usual Ctrl keys)
+  altwin:ctrl_alt_win  Control is mapped to Alt keys, Alt is mapped to Win keys
+  altwin:meta_win      Meta is mapped to Win keys
+  altwin:left_meta_win Meta is mapped to Left Win
+  altwin:super_win     Super is mapped to Win keys
+  altwin:hyper_win     Hyper is mapped to Win-keys
+  altwin:alt_super_win Alt is mapped to Right Win, Super to Menu
+  altwin:swap_lalt_lwin Left Alt is swapped with Left Win
+  Compose key          Compose key position
+  compose:ralt         Right Alt
+  compose:lwin         Left Win
+  compose:rwin         Right Win
+  compose:menu         Menu
+  compose:rctrl        Right Ctrl
+  compose:caps         Caps Lock
+  compose:102          Less-than/Greater-than
+  compat               Miscellaneous compatibility options
+  numpad:pc            Default numeric keypad keys
+  numpad:mac           Numeric keypad keys work as with Mac
+  numpad:microsoft     Shift with numeric keypad keys works as in MS Windows
+  numpad:shift3        Shift does not cancel NumLock, chooses 3d level instead
+  srvrkeys:none        Special keys (Ctrl+Alt+<key>) handled in a server
+  shift:breaks_caps    Shift cancels CapsLock
+  misc:typo            Enable extra typographic characters
+  eurosign             Adding EuroSign to certain keys
+  eurosign:e           E
+  eurosign:2           2
+  eurosign:4           4
+  eurosign:5           5
+  nbsp                 Using space key to input non-breakable space character
+  nbsp:none            Usual space at any level
+  nbsp:level2          Non-breakable space character at second level
+  nbsp:level3          Non-breakable space character at third level
+  nbsp:level3s         Non-breakable space character at third level, nothing at fourth level
+  nbsp:level3n         Non-breakable space character at third level, thin non-breakable space character at fourth level
+  nbsp:level4          Non-breakable space character at fourth level
+  nbsp:level4n         Non-breakable space character at fourth level, thin non-breakable space character at sixth level
+  nbsp:level4nl        Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)
+  japan                Japanese keyboard options
+  japan:kana_lock      Kana Lock key is locking
+  japan:nicola_f_bs    NICOLA-F style Backspace
+  esperanto            Adding Esperanto circumflexes (supersigno)
+  esperanto:qwerty     To the corresponding key in a Qwerty keyboard.
+  esperanto:dvorak     To the corresponding key in a Dvorak keyboard.
+  madduck:caps_mod4    make caps lock key generate mod4
+  madduck:group2_intl  populate group2 with international and other symbols