summaryrefslogtreecommitdiffstats
path: root/linux/X
diff options
context:
space:
mode:
authorstephan <stephan@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2009-05-20 12:13:22 +0000
committerstephan <stephan@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2009-05-20 12:13:22 +0000
commit45d37559f386a4d357344704e5c11d569591dcc3 (patch)
tree792a2aba3650693c927fd16d1de2eec251c12c70 /linux/X
parent884d0ec395fa76225b60412aa33a5ae8ca2072bf (diff)
Weitere Modifier ausgelagert um Kompatibilität zu anderen Layouts zu verbessern.
Dateien wurden gruppiert, aber die alten sicherheitshalber beibehalten. Für die neuen Dateien muss noch die Makefile editiert werden. git-svn-id: https://svn.neo-layout.org@1864 b9310e46-f624-0410-8ea1-cfbb3a30dc96
Diffstat (limited to 'linux/X')
-rw-r--r--linux/X/rules/base1004
-rw-r--r--linux/X/symbols/de503
-rw-r--r--linux/X/symbols/level3151
-rw-r--r--linux/X/symbols/level5115
-rw-r--r--linux/X/symbols/shift92
-rw-r--r--linux/X/types/level5213
6 files changed, 2078 insertions, 0 deletions
diff --git a/linux/X/rules/base b/linux/X/rules/base
new file mode 100644
index 0000000..65e0d1f
--- /dev/null
+++ b/linux/X/rules/base
@@ -0,0 +1,1004 @@
+// 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 \
+ 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 \
+ kg \
+ latam \
+ lk lt \
+ mn mt \
+ nl no \
+ pl pt \
+ ro \
+ se sk \
+ tr \
+ us \
+ vn \
+ za
+
+! $evdevkbds = ibm_spacesaver
+
+! $dvoraklayouts = br ca de ee es fr gb no pl se us
+
+! model = keycodes
+ amiga = amiga(de)
+ ataritt = ataritt(de)
+ sun4 = sun(type4_euro)
+ sun5 = sun(type5_euro)
+ sun6 = sun(type6_usb)
+ pc98 = xfree98(pc98)
+ abnt2 = xfree86(abnt2)
+ jp106 = xfree86(jp106)
+ evdev = evdev
+ olpc = evdev
+ macintosh_hhk = macintosh(hhk)
+ macintosh_old = macintosh(old)
+ $macs = macintosh
+ thinkpadz60 = xfree86(thinkpadz60)
+ * = xfree86
+
+! 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)
+ $pcmodels de neo = pc(%m)+de(neo_base)+shift(both_capslock)+level3(caps_switch)+level3(bksl_switch)+level5(lsgt_switch_numlock)+level5(ralt_switch_numlock)
+ * de neo = pc(pc105)+de(neo_base)+shift(both_capslock)+level3(caps_switch)+level3(bksl_switch)+level5(lsgt_switch_numlock)+level5(ralt_switch_numlock)
+
+! 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
+ a4techKB21 = +inet(media_nav_common)
+ a4techKBS8 = +inet(media_nav_acpi_common)
+ a4_rfkb23 = +inet(media_nav_acpi_common)
+ asus_laptop = +inet(media_common)
+ acer_tm_800 = +inet(acer_laptop)
+ acpi = +inet(acpi_common)
+ benqx730 = +inet(benqx)
+ benqx800 = +inet(benqx)
+ btc5126t = +inet(nav_acpi_common)
+ btc9116u = +inet(btc9019u)
+ btc6301urf = +inet(media_nav_acpi_common)
+ dellsk8125 = +inet(dell)
+ dellsk8135 = +inet(dell)
+ dexxa = +inet(media_nav_common)
+ dtk2000 = +inet(media_nav_acpi_common)
+ fscaa1667g = +inet(media_nav_common)
+ geniuskb19e = +inet(media_nav_acpi_common)
+ geniuscomfy = +inet(media_nav_acpi_common)
+ hpnx9020 = +inet(hpi6)
+ latitude = +inet(media_common)
+ logicd = +inet(logitech_base)
+ logicd_it = +inet(logitech_base)
+ logicd_nav = +inet(logitech_base)
+ logicd_opt = +inet(logitech_base)
+ logiultrax = +inet(logitech_base)
+ logiclx300 = +inet(logiex110)
+ logii350 = +inet(logiex110)
+ logimel = +inet(logiex110)
+ logicdit = +inet(logicd)
+ logicdo = +inet(logicd)
+ logicdp = +inet(logicd)
+ logicdpa = +inet(logicda)
+ logiciink = +inet(logicink)
+ ltcd = +inet(logicda)
+ microsoftccurve2k = +inet(microsoftprooem)
+ microsoftpro = +inet(media_nav_acpi_common)
+ precision_m = +inet(media_nav_common)
+ scorpius = +inet(media_nav_acpi_common)
+ sp_inet = +inet(media_nav_acpi_common)
+ targa_v811 = +inet(media_nav_acpi_common)
+ thinkpad = +inet(media_nav_common)
+ thinkpadz60 = +inet(thinkpad60)
+ vsonku306 = +inet(microsoftprooem)
+ $inetkbds = +inet(%m)
+ $maclaptop = +inet(apple)+level3(enter_switch)
+ $macs = +inet(apple)
+
+! 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)
+ 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)
+ 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)
+ terminate:ctrl_alt_bksp = +srvr_ctrl(terminate_ctrl_alt_bksp)
+ 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_numlock = +level5(lsgt_switch_numlock)
+ lv5:ralt_switch_numlock = +level5(ralt_switch_numlock)
+ lv5:lwin_switch_numlock = +level5(lwin_switch_numlock)
+ lv5:rwin_switch_numlock = +level5(rwin_switch_numlock)
+ lv5:lsgt_switch_numlock_cancel = +level5(lsgt_switch_numlock_cancel)
+ lv5:ralt_switch_numlock_cancel = +level5(ralt_switch_numlock_cancel)
+ lv5:lwin_switch_numlock_cancel = +level5(lwin_switch_numlock_cancel)
+ lv5:rwin_switch_numlock_cancel = +level5(rwin_switch_numlock_cancel)
+
+
+! 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)
diff --git a/linux/X/symbols/de b/linux/X/symbols/de
new file mode 100644
index 0000000..ef040c0
--- /dev/null
+++ b/linux/X/symbols/de
@@ -0,0 +1,503 @@
+
+// based on a keyboard map from an 'xkb/symbols/de' file
+//
+// $XKeyboardConfig$
+// $XFree86: xc/programs/xkbcomp/symbols/de,v 1.6 2003/09/08 13:12:51 pascal Exp $
+
+default
+xkb_symbols "basic" {
+
+ include "latin(type4)"
+
+ name[Group1]="Germany";
+
+ key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
+ key <AE03> { [ 3, section, threesuperior, sterling ] };
+ key <AE04> { [ 4, dollar, onequarter, currency ] };
+
+ key <AE11> {type[Group1]="FOUR_LEVEL_PLUS_LOCK", symbols[Group1]=
+ [ssharp, question, backslash, questiondown, 0x1001E9E ]};
+// The unicode capital letter sharp s U+1E9E is transformed to "SS"
+// to match the rules for capitalizing sharp s in german.
+// If the capital sharp s is needed, delete the line
+// starting with <U1E9C> from /usr/share/X11/locale/iso8859-15/Compose.
+// If both doubled S and capital sharp s are needed, use 0x1001E9E
+// for capital sharp s and some free unicode codepoint like 0x1001E9C
+// for doubled S. Don`t forget to change this in the Compose file, too.
+
+ key <AE12> { [dead_acute, dead_grave, dead_cedilla, dead_ogonek ] };
+
+ key <AD03> { [ e, E, EuroSign, EuroSign ] };
+ key <AD06> { [ z, Z, leftarrow, yen ] };
+ key <AD11> { [udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] };
+ key <AD12> { [ plus, asterisk, dead_tilde, dead_macron ] };
+
+ key <AC02> { [ s, S, U017F, U1E9E ] };
+ key <AC07> { [ j, J, dead_belowdot, dead_abovedot ] };
+ key <AC10> { [odiaeresis, Odiaeresis, dead_doubleacute, dead_belowdot ] };
+ key <AC11> { [adiaeresis, Adiaeresis, dead_circumflex, dead_caron ] };
+ key <TLDE> { [dead_circumflex, degree, U2032, U2033 ] };
+
+ key <BKSL> { [numbersign, apostrophe, dead_grave, dead_breve ] };
+ key <AB01> { [ y, Y, guillemotright, U203A ] };
+ key <AB02> { [ x, X, guillemotleft, U2039 ] };
+ key <AB04> { [ v, V, doublelowquotemark, singlelowquotemark ] };
+ key <AB05> { [ b, B, leftdoublequotemark, leftsinglequotemark ] };
+ key <AB06> { [ n, N, rightdoublequotemark, rightsinglequotemark ] };
+ key <AB08> { [ comma, semicolon, periodcentered, multiply ] };
+ key <AB09> { [ period, colon, U2026, division ] };
+ key <AB10> { [ minus, underscore, endash, emdash ] };
+
+ include "kpdl(comma)"
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "nodeadkeys" {
+
+ // modify the basic German layout to not have any dead keys
+
+ include "de(basic)"
+ name[Group1]="Germany - Eliminate dead keys";
+
+ key <TLDE> { [asciicircum, degree, notsign, notsign ] };
+ key <AE12> { [apostrophe, grave, cedilla, cedilla ] };
+ key <AD11> { [udiaeresis, Udiaeresis, diaeresis, diaeresis ] };
+ key <AD12> { [ plus, asterisk, asciitilde, macron ] };
+ key <AC10> { [odiaeresis, Odiaeresis, doubleacute, doubleacute ] };
+ key <AC11> { [adiaeresis, Adiaeresis, asciicircum, asciicircum ] };
+ key <BKSL> { [numbersign, apostrophe, grave, grave ] };
+ key <AB10> { [ minus, underscore, dead_belowdot, abovedot ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "deadgraveacute" {
+ // modify the basic German layout to have only acute and grave
+ // as dead keys (tilde and circumflex are needed as spacing characters
+ // in many programming languages)
+
+ include "de(basic)"
+ name[Group1]="Germany - Dead grave acute";
+
+ key <TLDE> { [asciicircum, degree, notsign, notsign ] };
+ key <AD12> { [ plus, asterisk, asciitilde, dead_macron ] };
+ key <BKSL> { [numbersign, apostrophe, grave, grave ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "deadacute" {
+ // modify the basic German layout to have only acute as
+ // dead keys (ASCII grave, tilde and circumflex are needed as
+ // spacing characters in many programming languages and text formatters)
+
+ include "de(deadgraveacute)"
+
+ name[Group1]="Germany - Dead acute";
+
+ key <AE12> { [dead_acute, grave, dead_cedilla, dead_ogonek ] };
+ key <BKSL> { [numbersign, apostrophe, dead_grave, dead_grave ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "ro" {
+ // add romanian-specific letters to the basic German layout.
+ // Romanian symbols are accessible with combination of <AltGr> and
+ // 'a', 's', 't', 'i', 'ä (&auml)' (+<Shift> for capital letters).
+ // To view romanian-specific symbols, add "export LC_CTYPE=ro_RO"
+ // or "export LC_CTYPE=de_DE.utf8" to your .profile.
+
+ include "de(basic)"
+
+ name[Group1]="Germany - Romanian keyboard with German letters";
+
+ key <AD05> { [ t, T, tcedilla, Tcedilla ] };
+ key <AD08> { [ i, I, icircumflex, Icircumflex ] };
+ key <AC01> { [ a, A, acircumflex, Acircumflex ] };
+ key <AC02> { [ s, S, scedilla, Scedilla ] };
+ key <AC11> { [ adiaeresis, Adiaeresis, abreve, Abreve ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "ro_nodeadkeys" {
+ // add romanian-specific letters to the German nodeadkeys layout.
+ // Read the comment for de_ro !
+
+ include "de(nodeadkeys)"
+ name[Group1]="Germany - Romanian keyboard with German letters, eliminate dead keys";
+
+ key <AD05> { [ t, T, tcedilla, Tcedilla ] };
+ key <AD08> { [ i, I, icircumflex, Icircumflex ] };
+ key <AC01> { [ a, A, acircumflex, Acircumflex ] };
+ key <AC02> { [ s, S, scedilla, Scedilla ] };
+ key <AC11> { [ adiaeresis, Adiaeresis, abreve, Abreve ] };
+};
+
+// German Dvorak keymap by Thorsten Staerk (www.staerk.de/thorsten)
+// Have acute and grave as dead keys, tilde and circumflex alive as they are needed
+// in many programming languages.
+// to use this keymap, use a 105-key-keyboard and the command setxkbmap -model pc105 -layout dvorak -variant de
+// source: http://www-lehre.informatik.uni-osnabrueck.de/~rfreund/dvorak.php
+partial alphanumeric_keys
+xkb_symbols "dvorak" {
+ include "us(dvorak)"
+
+ name[Group1]="Germany - Dvorak";
+
+ key <TLDE> { [ asciicircum, degree ] };
+
+ key <AE01> { [ 1, exclam, onesuperior ] };
+ key <AE02> { [ 2, quotedbl, twosuperior ] };
+ key <AE03> { [ 3, section, threesuperior ] };
+ key <AE04> { [ 4, dollar, bar ] };
+ key <AE05> { [ 5, percent, bar ] };
+ key <AE06> { [ 6, ampersand, brokenbar ] };
+ key <AE07> { [ 7, slash, braceleft ] };
+ key <AE08> { [ 8, parenleft, bracketleft ] };
+ key <AE09> { [ 9, parenright, bracketright ] };
+ key <AE10> { [ 0, equal, braceright ] };
+ key <AE11> { [ plus, asterisk, asciitilde ] };
+ key <AE12> { [ less, greater, dead_grave ] };
+
+ key <AD01> { [ udiaeresis, Udiaeresis, at ] };
+ key <AD02> { [ comma, semicolon, dead_diaeresis ] };
+ key <AD03> { [ period, colon ] };
+ key <AD08> { [ c, C, copyright, Cacute ] };
+ key <AD09> { [ t, T, trademark ] };
+ key <AD10> { [ z, Z, zabovedot, Zabovedot ] };
+ key <AD11> { [ question, ssharp ] };
+ key <AD12> { [ slash, backslash, dead_acute ] };
+
+ key <AC01> { [ a, A, at, aogonek ] };
+ key <AC02> { [ o, O, oacute, Oacute ] };
+ key <AC03> { [ e, E, EuroSign, eogonek ] };
+ key <AC04> { [ i, I ] };
+ key <AC05> { [ u, U ] };
+ key <AC06> { [ h, H ] };
+ key <AC07> { [ d, D ] };
+ key <AC08> { [ r, R, registered ] };
+ key <AC09> { [ n, N, nacute, Nacute ] };
+ key <AC10> { [ s, S, sacute, Sacute] };
+ key <AC11> { [ l, L, lstroke, Lstroke ] };
+
+ key <AB01> { [ odiaeresis, Odiaeresis ] };
+ key <AB02> { [ q, Q, at ] };
+ key <AB07> { [ m, M, mu ] };
+ key <AB10> { [ numbersign, apostrophe ] };
+
+ key <BKSL> { [ minus, underscore, hyphen, diaeresis] };
+
+ key <LSGT> { [ adiaeresis, Adiaeresis, bar ] };
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "Sundeadkeys" {
+
+ // For naming consistency
+
+ include "de(basic)"
+
+};
+
+partial alphanumeric_keys
+xkb_symbols "sundeadkeys" {
+
+ // For naming consistency
+
+ include "de(Sundeadkeys)"
+
+ name[Group1]="Germany - Sun dead keys";
+};
+
+// German NEO-Layout Version 2
+// adopted 2004 by Hanno Behrens <Hanno.Behrens@gmx.de>
+// inspired by Dvorak/de-ergo http://www.goebel-consult.de/de-ergo/
+//
+// Authors:
+// Stephan Hilb <stephan at ehilb dot de>
+// <lucky at zankt dot net>
+// Benjamin Kellermann <Benjamin dot Kellermann at gmx dot Germany>
+// Erik Streb <mail at erikstreb dot de>
+// and many other contributors
+//
+// http://www.neo-layout.org
+//
+// $Revision$, $Date$
+
+partial alphanumeric_keys modifier_keys keypad_keys
+xkb_symbols "neo_base" {
+
+ name[Group1]= "Germany - Neo 2";
+
+ // Levels in Neo jargon
+ // --------------------------------------------------------------
+ // Ebene 1: normal
+ // Ebene 2: Shift
+ // Ebene 3: Mod3
+ // Ebene 4: Mod4 (for marking something use Shift + Mod4)
+ // Ebene 5: Shift + Mod3
+ // Ebene 6: Mod3 + Mod4
+ // Compose (not a level): Mod3 + Tab
+ // Feststelltaste (Capslock): Shift + Shift
+ // Mod4-Lock: Mod4 + Mod4
+ //
+
+ // Legend
+ // ===============
+ // Levels in Xkbmap jargon to be found here in the definitions.
+ // These are the levels used, and Xorg's translations:
+ // --------------------------------------------------------------
+ // Xorg: Level1 Level2 Level3 Level4 Level5 Level6 Level7 Level8
+ // Neo: Ebene1 Ebene2 Ebene3 Ebene5 Ebene4 ??? Ebene6 ???
+ // Keys (Neo): None Shift Mod3 Mod3 + Shift Mod4 Mod4 + Shift Mod3 + Mod4 Mod3 + Mod4 + Shift
+
+ key <LVL3> {
+ type[Group1] = "ONE_LEVEL",
+ vmods[Group1] = LevelFive,
+ symbols[Group1] = [ NoSymbol ],
+ actions[Group1] = [ SetMods(modifiers=LevelFive) ]
+ };
+ modifier_map Mod3 { <LVL3> };
+
+
+ // Alphanumeric-keys
+ // ===============
+ key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS";
+
+ // Tab as Multi_key (Compose)
+ // --------------------------------------------------------------
+ key <TAB> {
+ symbols[Group1]= [ Tab, ISO_Left_Tab, Multi_key, Num_Lock, NoSymbol, NoSymbol, NoSymbol, Num_Lock ],
+ actions[Group1]= [ NoActions(), NoActions(), NoActions(), LockMods(modifiers=NumLock), NoActions(), NoActions(), NoActions(), LockMods(modifiers=NumLock) ]
+ };
+ modifier_map Mod2 { <TAB> };
+
+ // Number row
+ // --------------------------------------------------------------
+ key <TLDE> { [ dead_circumflex, dead_tilde, dead_abovering, dead_breve, dead_caron, Pointer_EnableKeys, dead_macron, NoSymbol ] };
+
+ key <AE01> { [ 1, degree, onesuperior, onesubscript, ordfeminine, NoSymbol, notsign, NoSymbol ] };
+ key <AE02> { [ 2, section, twosuperior, twosubscript, masculine, NoSymbol, logicalor, NoSymbol ] };
+ key <AE03> { [ 3, U2113, threesuperior, threesubscript, numerosign, NoSymbol, logicaland, NoSymbol ] };
+ key <AE04> { [ 4, guillemotright, U203A, femalesymbol, Prior, Prior, U22A5, NoSymbol ] };
+ key <AE05> { [ 5, guillemotleft, U2039, malesymbol, periodcentered, NoSymbol, U2221, NoSymbol ] };
+ key <AE06> { [ 6, dollar, cent, U26A5, sterling, NoSymbol, U2225, NoSymbol ] };
+
+ key <AE07> { [ 7, EuroSign, yen, Greek_kappa, currency, NoSymbol, rightarrow, NoSymbol ] };
+ key <AE08> { [ 8, doublelowquotemark, singlelowquotemark, U27E8, NoSymbol, NoSymbol, U221E, NoSymbol ] };
+ key <AE09> { [ 9, leftdoublequotemark, leftsinglequotemark, U27E9, KP_Divide, NoSymbol, variation, NoSymbol ] };
+ key <AE10> { [ 0, rightdoublequotemark, rightsinglequotemark, zerosubscript, KP_Multiply, NoSymbol, emptyset, NoSymbol ] };
+
+ key <AE11> { [ minus, emdash, NoSymbol, U2011, KP_Subtract, NoSymbol, hyphen, NoSymbol ] };
+ key <AE12> { [ dead_grave, NoSymbol, dead_diaeresis, dead_dasia, dead_doublegrave, NoSymbol, NoSymbol, NoSymbol ] };
+
+ // Top row
+ // --------------------------------------------------------------
+ key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS_QUARTERALPHABETIC";
+ key <AD01> { [ x, X, ellipsis, Greek_xi, U22EE, NoSymbol, Greek_XI, NoSymbol ] };
+ key <AD02> { [ v, V, underscore, NoSymbol, BackSpace, BackSpace, radical, NoSymbol ] };
+ key <AD03> { [ l, L, bracketleft, Greek_lambda, Up, Up, Greek_LAMBDA, NoSymbol ] };
+ key <AD04> { [ c, C, bracketright, Greek_chi, Delete, Delete, U2102, NoSymbol ] };
+ key <AD05> { [ w, W, asciicircum, Greek_omega, Insert, Insert, Greek_OMEGA, NoSymbol ] };
+
+ key <AD06> { [ k, K, exclam, U03F0, exclamdown, NoSymbol, multiply, NoSymbol ] };
+ key <AD07> { [ h, H, less, Greek_psi, KP_7, NoSymbol, Greek_PSI, NoSymbol ] };
+ key <AD08> { [ g, G, greater, Greek_gamma, KP_8, NoSymbol, Greek_GAMMA, NoSymbol ] };
+ key <AD09> { [ f, F, equal, Greek_phi, KP_9, NoSymbol, Greek_PHI, NoSymbol ] };
+ key <AD10> { [ q, Q, ampersand, U03D5, KP_Add, NoSymbol, U211A, NoSymbol ] };
+
+ key <AD11> { [ ssharp, U1E9E, U017F, Greek_finalsmallsigma, U2212, NoSymbol, jot, NoSymbol ] };
+
+ key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS";
+ key <AD12> { [ dead_acute, dead_cedilla, dead_stroke, dead_psili, dead_doubleacute, NoSymbol, dead_abovedot, NoSymbol ] };
+
+ // Middle row
+ // --------------------------------------------------------------
+ key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS_QUARTERALPHABETIC";
+ key <AC01> { [ u, U, backslash, NoSymbol, Home, Home, includedin, NoSymbol ] };
+ key <AC02> { [ i, I, slash, Greek_iota, Left, Left, integral, NoSymbol ] };
+ key <AC03> { [ a, A, braceleft, Greek_alpha, Down, Down, U2200, NoSymbol ] };
+ key <AC04> { [ e, E, braceright, Greek_epsilon, Right, Right, U2203, NoSymbol ] };
+ key <AC05> { [ o, O, asterisk, Greek_omicron, End, End, elementof, NoSymbol ] };
+
+ key <AC06> { [ s, S, question, Greek_sigma, questiondown, NoSymbol, Greek_SIGMA, NoSymbol ] };
+ key <AC07> { [ n, N, parenleft, Greek_nu, KP_4, NoSymbol, U2115, NoSymbol ] };
+ key <AC08> { [ r, R, parenright, U03F1, KP_5, NoSymbol, U211D, NoSymbol ] };
+ key <AC09> { [ t, T, minus, Greek_tau, KP_6, NoSymbol, partialderivative, NoSymbol ] };
+ key <AC10> { [ d, D, colon, Greek_delta, KP_Separator, NoSymbol, Greek_DELTA, NoSymbol ] };
+
+ key <AC11> { [ y, Y, at, Greek_upsilon, KP_Decimal, NoSymbol, nabla, NoSymbol ] };
+
+ // Bottom row
+ // --------------------------------------------------------------
+ key <AB01> { [ udiaeresis, Udiaeresis, numbersign, NoSymbol, Escape, Escape, union, NoSymbol ] };
+ key <AB02> { [ odiaeresis, Odiaeresis, dollar, U03F5, Tab, Tab, intersection, NoSymbol ] };
+ key <AB03> { [ adiaeresis, Adiaeresis, bar, Greek_eta, Next, Next, U2135, NoSymbol ] };
+ key <AB04> { [ p, P, asciitilde, Greek_pi, Return, Return, Greek_PI, NoSymbol ] };
+ key <AB05> { [ z, Z, grave, Greek_zeta, Undo, Undo, U2124, NoSymbol ] };
+
+ key <AB06> { [ b, B, plus, Greek_beta, colon, NoSymbol, U21D0, NoSymbol ] };
+ key <AB07> { [ m, M, percent, Greek_mu, KP_1, NoSymbol, ifonlyif, NoSymbol ] };
+ key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS";
+ key <AB08> { [ comma, endash, quotedbl, Greek_rho, KP_2, NoSymbol, U21D2, NoSymbol ] };
+ key <AB09> { [ period, enfilledcircbullet, apostrophe, U03D1, KP_3, NoSymbol, Greek_THETA, NoSymbol ] };
+ key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS_QUARTERALPHABETIC";
+ key <AB10> { [ j, J, semicolon, Greek_theta, semicolon, NoSymbol, U21A6, NoSymbol ] };
+ key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS";
+
+ // Space key
+ // --------------------------------------------------------------
+ key <SPCE> { [ space, space, space, nobreakspace, KP_0, NoSymbol, U202F, NoSymbol ] };
+
+
+ // Keypad-keys
+ // ===============
+
+ // The former Numlock key:
+ key <NMLK> { [ Tab, ISO_Left_Tab, equal, approxeq, notequal, NoSymbol, identical, NoSymbol ] };
+
+ // Topmost row
+ // --------------------------------------------------------------
+ key <KPDV> { [ KP_Divide, KP_Divide, division, U2300, U2215, NoSymbol, U2223, NoSymbol ] };
+ key <KPMU> { [ KP_Multiply, KP_Multiply, U2219, U2299, multiply, NoSymbol, U2297, NoSymbol ] };
+ key <KPSU> { [ KP_Subtract, KP_Subtract, U2212, U2296, U2216, NoSymbol, U2238, NoSymbol ] };
+
+ // Top row
+ // --------------------------------------------------------------
+ key <KP7> { [ KP_7, U2714, U2195, U226A, KP_Home, KP_Home, upstile, NoSymbol ] };
+ key <KP8> { [ KP_8, U2718, uparrow, intersection, KP_Up, KP_Up, U22C2, NoSymbol ] };
+ key <KP9> { [ KP_9, dagger, U20D7, U226B, KP_Prior, KP_Prior, U2309, NoSymbol ] };
+ key <KPAD> { [ KP_Add, KP_Add, plusminus, U2295, U2213, NoSymbol, U2214, NoSymbol ] };
+
+ // Middle row
+ // --------------------------------------------------------------
+ key <KP4> { [ KP_4, club, leftarrow, includedin, KP_Left, KP_Left, U2286, NoSymbol ] };
+ key <KP5> { [ KP_5, EuroSign, brokenbar, U22B6, KP_Begin, KP_Begin, U22B7, NoSymbol ] };
+ key <KP6> { [ KP_6, U2023, rightarrow, includes, KP_Right, KP_Right, U2287, NoSymbol ] };
+
+ // Bottom row
+ // --------------------------------------------------------------
+ key <KP1> { [ KP_1, diamond, U2194, lessthanequal, KP_End, KP_End, downstile, NoSymbol ] };
+ key <KP2> { [ KP_2, heart, downarrow, union, KP_Down, KP_Down, U22C3, NoSymbol ] };
+ key <KP3> { [ KP_3, U2660, U21CC, greaterthanequal, KP_Next, KP_Next, U230B, NoSymbol ] };
+ key <KPEN> { [ KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, NoSymbol ] };
+ key <KPEQ> { [ KP_Equal, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
+
+ // Bottommost row
+ // --------------------------------------------------------------
+ key <KP0> { [ KP_0, U2423, percent, U2030, KP_Insert, KP_Insert, U25A1, NoSymbol ] };
+ key <KPDL> { [ KP_Separator, KP_Decimal, period, apostrophe, KP_Delete, KP_Delete, quotedbl, NoSymbol ] };
+};
+
+// Copied from macintosh_vndr/de
+// olh@suse.de very close to MacOS map
+
+partial alphanumeric_keys
+xkb_symbols "mac" {
+
+ include "de"
+ name[Group1]= "Germany - Macintosh";
+
+ // Alphanumeric section
+ key <AE01> { [ 1, exclam, exclamdown, at ] };
+ key <AE05> { [ 5, percent, bracketleft ] };
+ key <AE06> { [ 6, ampersand, bracketright ] };
+ key <AE07> { [ 7, slash, bar, backslash ] };
+ key <AE08> { [ 8, parenleft, braceleft, asciitilde ] };
+ key <AE09> { [ 9, parenright, braceright ] };
+ key <AD01> { [ q, Q, guillemotleft, guillemotright ] };
+ key <AD04> { [ r, R, registered ] };
+ key <AD07> { [ u, U, diaeresis, Aacute ] };
+ key <AD08> { [ i, I, slash, Ucircumflex ] };
+ key <AD11> { [ udiaeresis, Udiaeresis, periodcentered, degree ] };
+ key <AD12> { [ plus, asterisk, asciitilde ] };
+ key <AC01> { [ a, A, aring, Aring ] };
+ key <AC05> { [ g, G, copyright ] };
+ key <AC06> { [ h, H, ordfeminine ] };
+ key <AC09> { [ l, L, at ] };
+ key <AC10> { [ odiaeresis, Odiaeresis, dead_acute ] };
+ key <AB06> { [ n, N, asciitilde ] };
+
+};
+
+partial alphanumeric_keys
+xkb_symbols "mac_nodeadkeys" {
+ // modify the standard German mac layout to not have any dead keys
+ include "de(mac)"
+ name[Group1]= "Germany - Macintosh, eliminate dead keys";
+ key <AE04> { [ 4, dollar, onequarter, currency ] };
+
+ key <TLDE> { [ asciicircum, degree, notsign ] };
+ key <AE12> { [ acute, grave, cedilla ] };
+ key <AD11> { [ udiaeresis, Udiaeresis, diaeresis ] };
+ key <AD12> { [ plus, asterisk, asciitilde, macron ] };
+ key <AC10> { [ odiaeresis, Odiaeresis, acute ] };
+ key <AC11> { [ adiaeresis, Adiaeresis, asciicircum ] };
+
+ key <BKSL> { [ numbersign, apostrophe, grave ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "dsb"
+{
+ name[Group1] = "Germany - Lower Sorbian";
+ include "latin(basic)"
+ include "level3(ralt_switch)"
+ include "kpdl(comma)"
+ key <AB01> { [ z, Z, zcaron, Zcaron ] };
+ key <AB02> { [ x, X, zacute, Zacute ] };
+ key <AB03> { [ c, C, cacute, Cacute ] };
+ key <AB04> { [ v, V, ccaron, Ccaron ] };
+ key <AB06> { [ n, N, nacute, Nacute ] };
+ key <AC02> { [ s, S, sacute, Sacute ] };
+ key <AC03> { [ d, D, scaron, Scaron ] };
+ key <AC04> { [ f, F ] };
+ key <AD01> { [ q, Q ] };
+ key <AD02> { [ w, W ] };
+ key <AD03> { [ e, E, ecaron, Ecaron ] };
+ key <AD04> { [ r, R, racute, Racute ] };
+ key <AD05> { [ t, T, U20B5, EuroSign ] };
+ key <AD09> { [ o, O, oacute, Oacute ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "dsb_qwertz"
+{
+ name[Group1] = "Germany - Lower Sorbian (qwertz)";
+ include "latin(basic)"
+ include "level3(ralt_switch)"
+ include "kpdl(comma)"
+ key <AB01> { [ y, Y ] };
+ key <AB02> { [ x, X ] };
+ key <AB03> { [ c, C, cacute, Cacute ] };
+ key <AB04> { [ v, V, ccaron, Ccaron ] };
+ key <AB06> { [ n, N, nacute, Nacute ] };
+ key <AC02> { [ s, S, sacute, Sacute ] };
+ key <AC03> { [ d, D, scaron, Scaron ] };
+ key <AC04> { [ f, F ] };
+ key <AD01> { [ q, Q ] };
+ key <AD02> { [ w, W ] };
+ key <AD03> { [ e, E, ecaron, Ecaron ] };
+ key <AD04> { [ r, R, racute, Racute ] };
+ key <AD05> { [ t, T, U20B5, EuroSign ] };
+ key <AD06> { [ z, Z, zcaron, Zcaron ] };
+ key <AD07> { [ u, U, zacute, Zacute ] };
+ key <AD09> { [ o, O, oacute, Oacute ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "qwerty" {
+
+ // This layout should work exactly as a de with the exception
+ // of 'Z' and 'Y' keys, which are in the qwerty style (ie. swapped).
+ // 2008 by Matej Košík <kosik@fiit.stuba.sk>
+
+ include "de(basic)"
+
+ name[Group1] = "Germany - qwerty";
+
+ key <AB01> { [ z, Z, leftarrow, yen ] };
+ key <AD06> { [ y, Y, guillemotleft, less ] };
+};
diff --git a/linux/X/symbols/level3 b/linux/X/symbols/level3
new file mode 100644
index 0000000..2e44efd
--- /dev/null
+++ b/linux/X/symbols/level3
@@ -0,0 +1,151 @@
+// $XdotOrg
+// $XKeyboardConfig: xkbdesc/symbols/level3,v 1.6 2004/10/09 17:40:26 svu Exp $
+
+// these variants assign various XKB keycodes to ISO_Level3_Shift so that
+// the third shift level can be reached
+//
+// $XFree86: xc/programs/xkbcomp/symbols/level3,v 1.7 2003/09/08 14:25:32 eich Exp $
+//
+
+// the default behavior is for the right Alt key (AltGr) to generate the
+// third engraved symbol
+default partial modifier_keys
+xkb_symbols "ralt_switch" {
+ key <RALT> {
+ type[Group1]="ONE_LEVEL",
+ symbols[Group1] = [ ISO_Level3_Shift ]
+ };
+ modifier_map Mod5 { ISO_Level3_Shift };
+};
+
+// using the level(alt_switch) map, either Alt key temporarily chooses
+// the third shift level. (Mostly be used to imitate Mac OS functionality.)
+partial modifier_keys
+xkb_symbols "alt_switch" {
+ include "level3(lalt_switch)"
+ include "level3(ralt_switch)"
+};
+
+partial modifier_keys
+xkb_symbols "lalt_switch" {
+ key <LALT> {
+ type[Group1]="ONE_LEVEL",
+ symbols[Group1] = [ ISO_Level3_Shift ]
+ };
+ modifier_map Mod5 { ISO_Level3_Shift };
+};
+
+// using the level(switch) map, the right Control key temporarily
+// chooses the third shift level (until it is released).
+partial modifier_keys
+xkb_symbols "switch" {
+ key <RCTL> {
+ type[Group1]="ONE_LEVEL",
+ symbols[Group1] = [ ISO_Level3_Shift ]
+ };
+ modifier_map Mod5 { ISO_Level3_Shift };
+};
+
+// using the level(menu_switch) map, the Menu key temporarily
+// chooses the third shift level (until it is released).
+partial modifier_keys
+xkb_symbols "menu_switch" {
+ key <MENU> {
+ type[Group1]="ONE_LEVEL",
+ symbols[Group1] = [ ISO_Level3_Shift ]
+ };
+ modifier_map Mod5 { ISO_Level3_Shift };
+};
+
+// using the level(win_switch) map, the either Windows' logo key
+// temporarily chooses the third shift level. If you use this map,
+// you should define your keyboard as pc101 or pc102 instead of pc104
+// or pc105.
+partial modifier_keys
+xkb_symbols "win_switch" {
+ include "level3(lwin_switch)"
+ include "level3(rwin_switch)"
+};
+
+// using the level(lwin_switch) map, the left Windows' logo key
+// temporarily chooses the third shift level. If you use this map,
+// you should define your keyboard as pc101 or pc102 instead of pc104
+// or pc105.
+partial modifier_keys
+xkb_symbols "lwin_switch" {
+ key <LWIN> {
+ type[Group1]="ONE_LEVEL",
+ symbols[Group1] = [ ISO_Level3_Shift ]
+ };
+ modifier_map Mod5 { ISO_Level3_Shift };
+};
+
+// using the level(rwin_switch) map, the right Windows' logo key
+// temporarily chooses the third shift level. If you use this map,
+// you should define your keyboard as pc101 or pc102 instead of pc104
+// or pc105.
+partial modifier_keys
+xkb_symbols "rwin_switch" {
+ key <RWIN> {
+ type[Group1]="ONE_LEVEL",
+ symbols[Group1] = [ ISO_Level3_Shift ]
+ };
+ modifier_map Mod5 { ISO_Level3_Shift };
+};
+
+
+partial modifier_keys
+xkb_symbols "caps_switch" {
+ key <CAPS> {
+ type[Group1]="ONE_LEVEL",
+ symbols[Group1] = [ ISO_Level3_Shift ]
+ };
+ modifier_map Mod5 { ISO_Level3_Shift };
+};
+
+partial modifier_keys
+xkb_symbols "bksl_switch" {
+ key <BKSL> {
+ type[Group1]="ONE_LEVEL",
+ symbols[Group1] = [ ISO_Level3_Shift ]
+ };
+ modifier_map Mod5 { ISO_Level3_Shift };
+};
+
+partial modifier_keys
+xkb_symbols "lsgt_switch" {
+ key <LSGT> {
+ type[Group1]="ONE_LEVEL",
+ symbols[Group1] = [ ISO_Level3_Shift ]
+ };
+ modifier_map Mod5 { ISO_Level3_Shift };
+};
+
+partial modifier_keys
+xkb_symbols "caps_switch_latch" {
+ key <CAPS> {
+ type[Group1]="THREE_LEVEL",
+ symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
+ };
+ modifier_map Mod5 { ISO_Level3_Shift };
+};
+
+partial modifier_keys
+xkb_symbols "bksl_switch_latch" {
+ key <BKSL> {
+ type[Group1]="THREE_LEVEL",
+ symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
+ };
+ modifier_map Mod5 { ISO_Level3_Shift };
+};
+
+partial modifier_keys
+xkb_symbols "lsgt_switch_latch" {
+ key <LSGT> {
+ type[Group1]="THREE_LEVEL",
+ symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
+ };
+ modifier_map Mod5 { ISO_Level3_Shift };
+};
+
+
diff --git a/linux/X/symbols/level5 b/linux/X/symbols/level5
new file mode 100644
index 0000000..288555b
--- /dev/null
+++ b/linux/X/symbols/level5
@@ -0,0 +1,115 @@
+// $XKeyboardConfig$
+
+// these variants assign various XKB keycodes to ISO_Level5_Shift so that
+// the third shift level can be reached
+//
+// $XFree86: xc/programs/xkbcomp/symbols/level3,v 1.7 2003/09/08 14:25:32 eich Exp $
+//
+
+// using the level(switch) map, the right Control key temporarily
+// chooses the fifth shift level (until it is released).
+partial modifier_keys
+xkb_symbols "rctrl_switch" {
+ key <RCTL> {
+ type[Group1]="ONE_LEVEL",
+ symbols[Group1] = [ ISO_Level5_Shift ]
+ };
+ modifier_map Mod3 { ISO_Level5_Shift };
+};
+
+// The following modifier keys are used to switch to the third shift and to set a
+// corresponding lock, implemented as NumLock. They do not use *Level5* keysyms,
+// as some applications get confused by it. The modifiers are to be used in
+// pairs of a 'left' and a 'right' one.
+
+// Left modifier
+partial modifier_keys
+xkb_symbols "lsgt_switch_numlock" {
+ key <LSGT> {
+ vmods= NumLock,
+ key.type[Group1] = "EIGHT_LEVEL",
+ symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ],
+ actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ]
+ };
+ modifier_map Mod2 { <LSGT> };
+};
+// Left modifier
+partial modifier_keys
+xkb_symbols "lwin_switch_numlock" {
+ key <LWIN> {
+ vmods= NumLock,
+ key.type[Group1] = "EIGHT_LEVEL",
+ symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ],
+ actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ]
+ };
+ modifier_map Mod2 { <LWIN> };
+};
+
+// Right modifier
+partial modifier_keys
+xkb_symbols "ralt_switch_numlock" {
+ key <RALT> {
+ vmods= NumLock,
+ key.type[Group1] = "EIGHT_LEVEL",
+ symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ],
+ actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ]
+ };
+ modifier_map Mod2 { <RALT> };
+};
+// Right modifier
+partial modifier_keys
+xkb_symbols "rwin_switch_numlock" {
+ key <RWIN> {
+ vmods= NumLock,
+ key.type[Group1] = "EIGHT_LEVEL",
+ symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ],
+ actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ]
+ };
+ modifier_map Mod2 { <RWIN> };
+};
+
+// Left modifier
+partial modifier_keys
+xkb_symbols "lsgt_switch_numlock_cancel" {
+ key <LSGT> {
+ vmods= NumLock,
+ key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS",
+ symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ],
+ actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ]
+ };
+ modifier_map Mod2 { <LSGT> };
+};
+// Left modifier
+partial modifier_keys
+xkb_symbols "lwin_switch_numlock_cancel" {
+ key <LWIN> {
+ vmods= NumLock,
+ key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS",
+ symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ],
+ actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ]
+ };
+ modifier_map Mod2 { <LWIN> };
+};
+
+// Right modifier
+partial modifier_keys
+xkb_symbols "ralt_switch_numlock_cancel" {
+ key <RALT> {
+ vmods= NumLock,
+ key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS",
+ symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ],
+ actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ]
+ };
+ modifier_map Mod2 { <RALT> };
+};
+// Right modifier
+partial modifier_keys
+xkb_symbols "rwin_switch_numlock_cancel" {
+ key <RWIN> {
+ vmods= NumLock,
+ key.type[Group1] = "EIGHT_LEVEL_NEO_LOCKS",
+ symbols[Group1] = [ Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock, Num_Lock ],
+ actions[Group1] = [ SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), SetMods(modifiers=LevelFive), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock), LockMods(modifiers=NumLock) ]
+ };
+ modifier_map Mod2 { <RWIN> };
+};
diff --git a/linux/X/symbols/shift b/linux/X/symbols/shift
new file mode 100644
index 0000000..ac39f34
--- /dev/null
+++ b/linux/X/symbols/shift
@@ -0,0 +1,92 @@
+// $XKeyboardConfig$
+
+partial modifier_keys
+xkb_symbols "breaks_caps" {
+ key <LFSH> {
+ type = "ALPHABETIC",
+ actions [Group1] = [
+ SetMods(modifiers=Shift),
+ SetMods(modifiers=Shift+Lock,clearLocks)
+ ]
+ };
+ key <RTSH> {
+ type = "ALPHABETIC",
+ actions [Group1] = [
+ SetMods(modifiers=Shift),
+ SetMods(modifiers=Shift+Lock,clearLocks)
+ ]
+ };
+};
+
+// When pressed together with another Shift key, set/release Lock.
+partial modifier_keys
+xkb_symbols "lshift_both_capslock" {
+ key <LFSH> {
+ type[Group1]="TWO_LEVEL",
+ symbols[Group1] = [ Shift_L, Caps_Lock ],
+ actions[Group1] = [ SetMods(modifiers=Shift), LockMods(modifiers=Lock) ]
+ };
+};
+// When pressed together with another Shift key, set or unset Lock.
+partial modifier_keys
+xkb_symbols "rshift_both_capslock" {
+ key <RTSH> {
+ type[Group1]="TWO_LEVEL",
+ symbols[Group1] = [ Shift_R, Caps_Lock ],
+ actions[Group1] = [ SetMods(modifiers=Shift), LockMods(modifiers=Lock) ]
+ };
+};
+partial modifier_keys
+xkb_symbols "both_capslock" {
+ include "shift(lshift_both_capslock)"
+ include "shift(rshift_both_capslock)"
+};
+
+// When pressed alone, release Lock, whan pressed with another Shift key, set Lock.
+partial modifier_keys
+xkb_symbols "lshift_both_capslock_cancel" {
+ key <LFSH> {
+ type[Group1]="ALPHABETIC",
+ symbols[Group1] = [ Shift_L, Caps_Lock ],
+ actions[Group1] = [ SetMods(modifiers=Shift), LockMods(modifiers=Lock) ]
+ };
+};
+// When pressed alone, release Lock, whan pressed with another Shift key, set Lock.
+partial modifier_keys
+xkb_symbols "rshift_both_capslock_cancel" {
+ key <RTSH> {
+ type[Group1]="ALPHABETIC",
+ symbols[Group1] = [ Shift_R, Caps_Lock ],
+ actions[Group1] = [ SetMods(modifiers=Shift), LockMods(modifiers=Lock) ]
+ };
+};
+partial modifier_keys
+xkb_symbols "both_capslock_cancel" {
+ include "shift(lshift_both_capslock_cancel)"
+ include "shift(rshift_both_capslock_cancel)"
+};
+
+
+// When pressed together with another Shift key, lock/unlock Shift.
+partial modifier_keys
+xkb_symbols "lshift_both_shiftlock" {
+ key <LFSH> {
+ type[Group1]="TWO_LEVEL",
+ symbols[Group1] = [ Shift_L, Shift_Lock ],
+ actions[Group1] = [ SetMods(modifiers=Shift), LockMods(modifiers=Shift) ]
+ };
+};
+// When pressed together with another Shift key, lock/unlock Shift.
+partial modifier_keys
+xkb_symbols "rshift_both_shiftlock" {
+ key <RTSH> {
+ type[Group1]="TWO_LEVEL",
+ symbols[Group1] = [ Shift_R, Shift_Lock ],
+ actions[Group1] = [ SetMods(modifiers=Shift), LockMods(modifiers=Shift) ]
+ };
+};
+partial modifier_keys
+xkb_symbols "both_shiftlock" {
+ include "shift(lshift_both_shiftlock)"
+ include "shift(rshift_both_shiftlock)"
+};
diff --git a/linux/X/types/level5 b/linux/X/types/level5
new file mode 100644
index 0000000..7a03d1e
--- /dev/null
+++ b/linux/X/types/level5
@@ -0,0 +1,213 @@
+// $XKeyboardConfig$
+// $XFree86: xc/programs/xkbcomp/types/extra,v 1.3 2002/11/26 02:14:02 dawes Exp $
+
+partial default xkb_types "default" {
+ // Definition for a key type used for the czech keymap, for instance.
+ // Defines style a with four level shift. It is similar to three_level
+ // type used for iso9995 but it lets the shift key behave "normally".
+
+ virtual_modifiers LevelThree,ScrollLock,LevelFive;
+
+ type "EIGHT_LEVEL" {
+ modifiers = Shift+LevelThree+LevelFive;
+ map[None] = Level1;
+ map[Shift] = Level2;
+ map[LevelThree] = Level3;
+ map[Shift+LevelThree] = Level4;
+ map[LevelFive] = Level5;
+ map[Shift+LevelFive] = Level6;
+ map[LevelThree+LevelFive] = Level7;
+ map[Shift+LevelThree+LevelFive] = Level8;
+ level_name[Level1] = "Base";
+ level_name[Level2] = "Shift";
+ level_name[Level3] = "Alt Base";
+ level_name[Level4] = "Shift Alt";
+ level_name[Level5] = "X";
+ level_name[Level6] = "X Shift";
+ level_name[Level7] = "X Alt Base";
+ level_name[Level8] = "X Shift Alt";
+ };
+
+ type "EIGHT_LEVEL_ALPHABETIC" {
+ modifiers = Shift+Lock+LevelThree+LevelFive;
+ map[None] = Level1;
+ map[Shift] = Level2;
+ map[Lock] = Level2;
+ map[LevelThree] = Level3;
+ map[Shift+LevelThree] = Level4;
+ map[Lock+LevelThree] = Level4;
+ map[Lock+Shift+LevelThree] = Level3;
+
+ map[LevelFive] = Level5;
+ map[Shift+LevelFive] = Level6;
+ map[Lock+LevelFive] = Level6;
+ map[LevelThree+LevelFive] = Level7;
+ map[Shift+LevelThree+LevelFive] = Level8;
+ map[Lock+LevelThree+LevelFive] = Level8;
+ map[Lock+Shift+LevelThree+LevelFive] = Level7;
+
+ level_name[Level1] = "Base";
+ level_name[Level2] = "Shift";
+ level_name[Level3] = "Alt Base";
+ level_name[Level4] = "Shift Alt";
+ level_name[Level5] = "X";
+ level_name[Level6] = "X Shift";
+ level_name[Level7] = "X Alt Base";
+ level_name[Level8] = "X Shift Alt";
+ };
+
+ type "EIGHT_LEVEL_NEO_LOCKS" {
+ // 'NumLock' is used for the (Neo-)Mod4-Lock.
+ modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;
+
+ preserve[LevelFive+Shift] = Shift;
+ preserve[NumLock+Shift] = Shift;
+ preserve[Lock+LevelFive+Shift] = Shift;
+ preserve[Lock+NumLock+Shift] = Shift;
+
+ map[None] = Level1;
+ map[Shift] = Level2;
+ map[LevelThree] = Level3;
+ map[LevelThree+Shift] = Level4;
+
+ map[LevelFive] = Level5;
+ map[LevelFive+Shift] = Level6;
+ map[LevelFive+LevelThree] = Level7;
+ map[LevelFive+LevelThree+Shift] = Level8;
+
+ map[NumLock] = Level5;
+ map[NumLock+Shift] = Level6;
+ map[NumLock+LevelThree] = Level7;
+ map[NumLock+LevelThree+Shift] = Level8;
+
+ map[NumLock+LevelFive] = Level1;
+ map[NumLock+LevelFive+Shift] = Level2;
+ map[NumLock+LevelFive+LevelThree] = Level3;
+ map[NumLock+LevelFive+LevelThree+Shift] = Level4;
+
+ // Lock has no effect
+ map[Lock] = Level1;
+ map[Lock+Shift] = Level2;
+ map[Lock+LevelThree] = Level3;
+ map[Lock+LevelThree+Shift] = Level4;
+
+ map[Lock+LevelFive] = Level5;
+ map[Lock+LevelFive+Shift] = Level6;
+ map[Lock+LevelFive+LevelThree] = Level7;
+ map[Lock+LevelFive+LevelThree+Shift] = Level8;
+
+ map[Lock+NumLock] = Level5;
+ map[Lock+NumLock+Shift] = Level6;
+ map[Lock+NumLock+LevelThree] = Level7;
+ map[Lock+NumLock+LevelThree+Shift] = Level8;
+
+ map[Lock+NumLock+LevelFive] = Level1;
+ map[Lock+NumLock+LevelFive+Shift] = Level2;
+ map[Lock+NumLock+LevelFive+LevelThree] = Level3;
+ map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4;
+
+ level_name[Level1] = "Neo Level1";
+ level_name[Level2] = "Neo Level2";
+ level_name[Level3] = "Neo Level3";
+ level_name[Level4] = "Neo Level5";
+ level_name[Level5] = "Neo Level4";
+ level_name[Level6] = "Neo Level4 Shift";
+ level_name[Level7] = "Neo Level6";
+ level_name[Level8] = "Neo Level6 Shift";
+ };
+
+ type "EIGHT_LEVEL_NEO_LOCKS_QUARTERALPHABETIC" {
+ // 'NumLock' is used for the (Neo-)Mod4-Lock.
+ modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;
+
+ preserve[LevelFive+Shift] = Shift;
+ preserve[NumLock+Shift] = Shift;
+
+ map[None] = Level1;
+ map[Shift] = Level2;
+ map[LevelThree] = Level3;
+ map[LevelThree+Shift] = Level4;
+
+ map[LevelFive] = Level5;
+ map[LevelFive+Shift] = Level6;
+ map[LevelFive+LevelThree] = Level7;
+ map[LevelFive+LevelThree+Shift] = Level8;
+
+ map[NumLock] = Level5;
+ map[NumLock+Shift] = Level6;
+ map[NumLock+LevelThree] = Level7;
+ map[NumLock+LevelThree+Shift] = Level8;
+
+ map[NumLock+LevelFive] = Level1;
+ map[NumLock+LevelFive+Shift] = Level2;
+ map[NumLock+LevelFive+LevelThree] = Level3;
+ map[NumLock+LevelFive+LevelThree+Shift] = Level4;
+
+ // Lock interchanges Level1 and Level2
+ map[Lock] = Level2;
+ map[Lock+Shift] = Level1;
+ map[Lock+LevelThree] = Level3;
+ map[Lock+LevelThree+Shift] = Level4;
+
+ map[Lock+LevelFive] = Level5;
+ map[Lock+LevelFive+Shift] = Level6;
+ map[Lock+LevelFive+LevelThree] = Level7;
+ map[Lock+LevelFive+LevelThree+Shift] = Level8;
+
+ map[Lock+NumLock] = Level5;
+ map[Lock+NumLock+Shift] = Level6;
+ map[Lock+NumLock+LevelThree] = Level7;
+ map[Lock+NumLock+LevelThree+Shift] = Level8;
+
+ map[Lock+NumLock+LevelFive] = Level2;
+ map[Lock+NumLock+LevelFive+Shift] = Level1;
+ map[Lock+NumLock+LevelFive+LevelThree] = Level3;
+ map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4;
+
+ level_name[Level1] = "Neo Level1";
+ level_name[Level2] = "Neo Level2";
+ level_name[Level3] = "Neo Level3";
+ level_name[Level4] = "Neo Level5";
+ level_name[Level5] = "Neo Level4";
+ level_name[Level6] = "Neo Level4 Shift";
+ level_name[Level7] = "Neo Level6";
+ level_name[Level8] = "Neo Level6 Shift";
+ };
+
+ type "EIGHT_LEVEL_SEMIALPHABETIC" {
+ modifiers = Shift+Lock+LevelThree+LevelFive;
+ map[None] = Level1;
+ map[Shift] = Level2;
+ map[Lock] = Level2;
+ map[LevelThree] = Level3;
+ map[Shift+LevelThree] = Level4;
+ map[Lock+LevelThree] = Level3;
+ map[Lock+Shift+LevelThree] = Level4;
+
+ map[LevelFive] = Level5;
+ map[Shift+LevelFive] = Level6;
+ map[Lock+LevelFive] = Level6;
+ map[LevelThree+LevelFive] = Level7;
+ map[Shift+LevelThree+LevelFive] = Level8;
+ map[Lock+LevelThree+LevelFive] = Level7;
+ map[Lock+Shift+LevelThree+LevelFive] = Level8;
+
+ preserve[Lock+LevelThree] = Lock;
+ preserve[Lock+Shift+LevelThree] = Lock;
+ preserve[Lock+LevelFive] = Lock;
+ preserve[Lock+Shift+LevelFive] = Lock;
+ preserve[Lock+LevelThree+LevelFive] = Lock;
+ preserve[Lock+Shift+LevelThree+LevelFive] = Lock;
+
+ level_name[Level1] = "Base";
+ level_name[Level2] = "Shift";
+ level_name[Level3] = "Alt Base";
+ level_name[Level4] = "Shift Alt";
+ level_name[Level5] = "X";
+ level_name[Level6] = "X Shift";
+ level_name[Level7] = "X Alt Base";
+ level_name[Level8] = "X Shift Alt";
+ };
+
+};
+