summaryrefslogtreecommitdiffstats
path: root/linux/X
diff options
context:
space:
mode:
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";
+ };
+
+};
+