summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/data/keycodes/evdev12
-rw-r--r--test/data/rules/base589
-rw-r--r--test/data/rules/evdev586
-rw-r--r--test/data/symbols/altwin6
-rw-r--r--test/data/symbols/ca8
-rw-r--r--test/data/symbols/capslock9
-rw-r--r--test/data/symbols/ch8
-rw-r--r--test/data/symbols/ctrl19
-rw-r--r--test/data/symbols/cz232
-rw-r--r--test/data/symbols/de65
-rw-r--r--test/data/symbols/empty2
-rw-r--r--test/data/symbols/il2
-rw-r--r--test/data/symbols/in252
-rw-r--r--test/data/symbols/inet50
-rw-r--r--test/data/symbols/latin2
-rw-r--r--test/data/symbols/level320
-rw-r--r--test/data/symbols/macintosh_vndr/apple2
-rw-r--r--test/data/symbols/pc2
-rw-r--r--test/data/symbols/ru281
-rw-r--r--test/data/symbols/terminate2
-rw-r--r--test/data/symbols/us335
-rw-r--r--test/data/types/extra2
-rw-r--r--test/data/types/iso99952
-rw-r--r--test/data/types/level52
-rw-r--r--test/data/types/mousekeys2
-rw-r--r--test/data/types/numpad2
-rw-r--r--test/data/types/pc2
-rw-r--r--test/state.c2
28 files changed, 1635 insertions, 863 deletions
diff --git a/test/data/keycodes/evdev b/test/data/keycodes/evdev
index 624ac68..d41799d 100644
--- a/test/data/keycodes/evdev
+++ b/test/data/keycodes/evdev
@@ -281,6 +281,13 @@ default xkb_keycodes "evdev" {
<I251> = 251; // #define KEY_BRIGHTNESS_CYCLE 243
<I252> = 252; // #define KEY_BRIGHTNESS_ZERO 244
<I253> = 253; // #define KEY_DISPLAY_OFF 245
+ <I254> = 254; // #define KEY_WWAN 246
+ <I255> = 255; // #define KEY_RFKILL 247
+
+ <I372> = 372; // #define KEY_FAVORITES 364
+ <I382> = 382; // #define KEY_KEYBOARD 374
+ <I569> = 569; // #define KEY_ROTATE_LOCK_TOGGLE 561
+ <I380> = 380; // #define KEY_FULL_SCREEN 372
// Fake keycodes for virtual keys
<LVL3> = 92;
@@ -307,8 +314,3 @@ default xkb_keycodes "evdev" {
// For Brazilian ABNT2
alias <KPPT> = <I129>;
};
-
-// PC98
-xkb_keycodes "pc98" {
- include "evdev(evdev)"
-};
diff --git a/test/data/rules/base b/test/data/rules/base
index 11e1b56..71aaa91 100644
--- a/test/data/rules/base
+++ b/test/data/rules/base
@@ -1,4 +1,5 @@
-// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part
+// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.py FROM rules/*.part
+//
//
// Rules for resolving XKB components for use with XFree86
// Copyright 1996 by Joseph Moss
@@ -13,20 +14,17 @@
// ori pk ru scc sy syr tel th tj tam ua uz
// PC models
-! $pcmodels = pc101 pc102 pc104 pc105
+! $pcmodels = pc86 pc101 pc102 pc104 pc104alt pc105
// Jolla devices and keyboards
! $jollamodels = jollasbj
// Microsoft models (using MS geometry)
-! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose
+! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose microsoftsurface
// Nokia devices and keyboards
! $nokiamodels = nokiasu8w nokiarx44 nokiarx51
-// PC geometries - they have special geometry but symbols are mostly pc105
-! $pcgeometries = latitude
-
// TypeMatrix geometries
! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106
@@ -85,7 +83,6 @@
! $sun_compat = sun_type6 sun_type6_suncompat sun_type7_suncompat suncompat
-! $htcdreamlayouts = us it de
! $inetkbds = acer_c300 acer_ferrari4k acer_laptop \
airkey \
@@ -104,7 +101,7 @@
genius geniuscomfy2 \
gyration honeywell_euroboard \
hp250x hp5xx hp500fa hpdv5 \
- hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx htcdream \
+ hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx \
ibm_spacesaver ipaq inspiron intel \
logiaccess logicda logicink \
logiex110 logiclx300 \
@@ -124,9 +121,9 @@
silvercrest \
sk1300 sk2500 sk6200 sk7100 \
sven sven303 symplon \
+ teck227 teck229 \
toshiba_s3000 trust trustda \
unitekkb1925 yahoo \
- teck227 teck229 \
apex300
! $inetmediakbds = acer_ferrari4k acer_laptop btc5090 btc9019u cherryblueb \
@@ -188,7 +185,6 @@
omnikey101 = northgate(omnikey101)
sanwaskbkg3 = sanwa(sanwaskbkg3)
$pcmodels = pc(%m)
- $pcgeometries = pc(%m)
everex = everex(STEPnote)
thinkpad = thinkpad(intl)
thinkpad60 = thinkpad(60)
@@ -382,86 +378,85 @@
ws007sh * = pc+sharp_vndr/ws007sh(basic)
ws011sh * = pc+sharp_vndr/ws011sh(basic)
ws020sh * = pc+sharp_vndr/ws020sh(basic)
- htcdream $htcdreamlayouts = %l(htcdream)
* $nonlatin = pc+us+%l%(v):2
* * = pc+%l%(v)
-! model layout[1] = symbols
- * ar = pc+ara%(v[1])
- * ben = pc+in(ben)
- * bs = pc+ba%(v[1])
- * cs = pc+rs%(v[1])
- * cz_qwerty = pc+cz(qwerty)
- * dev = pc+in(deva)
- * dvorak = pc+us(dvorak)
- * dzdwi = pc+bt%(v[1])
- * el = pc+gr%(v[1])
- * en_US = pc+latin%(v[1])
- * guj = pc+in(guj)
- * gur = pc+in(guru)
- * iu = pc+ca(ike)
- * lo = pc+la%(v[1])
- * kan = pc+in(kan)
- * mi = pc+mao%(v[1])
- * ogham = pc+ie(ogam)
- * ori = pc+ie(ori)
- * sapmi = pc+no(smi)
- * sr = pc+srp%(v[1])
- * syr = pc+sy(syc)
- * tel = pc+in(tel)
- * tml = pc+in(tam)
- * yu = pc+srp%(v[1])
- * fr-latin9 = pc+fr(latin9)
- * us_intl = pc+us(alt-intl)
- * ben(basic) = pc+in(ben)
- * ben(probhat) = pc+in(ben_probhat)
- * dev(basic) = pc+in(deva)
- * dvorak($dvoraklayouts) = pc+%v(dvorak)
- * dvorak(basic) = pc+us(dvorak)
- * dvorak(pl_basic) = pc+pl(dvorak)
- * dvorak(pl) = pc+pl(dvorak_quotes)
- * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes)
- * dzdwi(basic) = pc+bt(basic)
- * fi(basic) = pc+fi(classic)
- * ge(azerty_tskapo) = pc+fr(geo)
- * guj(basic) = pc+in(guj)
- * gur(basic) = pc+in(guru)
- * ie(laptop) = pc+ie(basic)
- * ie(CloGaelachLaptop) = pc+ie(CloGaelach)
- * in(urd) = pc+in(urd-phonetic)
- * iu(basic) = pc+ca(ike)
- * lo(basic) = pc+la(basic)
- * kan(basic) = pc+in(kan)
- * mal(basic) = pc+in(mal)
- * mal(mlplusnum) = pc+in(mal)
- * ogham(basic) = pc+ie(ogam)
- * ogham(laptop) = pc+ie(ogam)
- * ogham(is434) = pc+ie(ogam_is434)
- * ogham(is434laptop) = pc+ie(ogam_is434)
- * ori(basic) = pc+in(ori)
- * ro(de) = pc+ro(winkeys)
- * ro(us) = pc+ro(std)
- * ro(academic) = pc+ro(std)
- * ro(std_comma) = pc+ro(std)
- * ro(comma) = pc+ro(basic)
- * ru(os) = pc+ru(os_legacy)
- * pk(urd) = pc+pk(urd-phonetic)
- * sapmi(basic) = pc+no(smi)
- * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys)
- * sapmi(sefi) = pc+fi(smi)
- * sin(phonetic-static) = pc+in(sin_phonetic)
- * syr(basic) = pc+sy(syc)
- * syr(phonetic) = pc+sy(syc_phonetic)
- * tam(INSCRIPT) = pc+in(tam)
- * tam(UNI) = pc+in(tam_unicode)
- * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals)
- * tam(TAB) = pc+in(tam_TAB)
- * tam(TSCII) = pc+in(tam_TSCII)
- * tel(basic) = pc+in(tel)
- * yu(basic) = pc+srp(latin)
- * yu(unicode) = pc+srp(latinunicode)
- * yu(yz) = pc+srp(latinyz)
- * yu(unicodeyz) = pc+srp(latinunicodeyz)
+! model layout[1] = symbols
+ * ar = pc+ara%(v[1])
+ * ben = pc+in(ben)
+ * bs = pc+ba%(v[1])
+ * cs = pc+rs%(v[1])
+ * cz_qwerty = pc+cz(qwerty)
+ * dev = pc+in(deva)
+ * dvorak = pc+us(dvorak)
+ * dzdwi = pc+bt%(v[1])
+ * el = pc+gr%(v[1])
+ * en_US = pc+latin%(v[1])
+ * guj = pc+in(guj)
+ * gur = pc+in(guru)
+ * iu = pc+ca(ike)
+ * lo = pc+la%(v[1])
+ * kan = pc+in(kan)
+ * mi = pc+mao%(v[1])
+ * ogham = pc+ie(ogam)
+ * ori = pc+ie(ori)
+ * sapmi = pc+no(smi)
+ * sr = pc+srp%(v[1])
+ * syr = pc+sy(syc)
+ * tel = pc+in(tel)
+ * tml = pc+in(tam)
+ * yu = pc+srp%(v[1])
+ * fr-latin9 = pc+fr(latin9)
+ * us_intl = pc+us(alt-intl)
+ * ben(basic) = pc+in(ben)
+ * ben(probhat) = pc+in(ben_probhat)
+ * dev(basic) = pc+in(deva)
+ * dvorak($dvoraklayouts) = pc+%v(dvorak)
+ * dvorak(basic) = pc+us(dvorak)
+ * dvorak(pl_basic) = pc+pl(dvorak)
+ * dvorak(pl) = pc+pl(dvorak_quotes)
+ * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes)
+ * dzdwi(basic) = pc+bt(basic)
+ * fi(basic) = pc+fi(classic)
+ * ge(azerty_tskapo) = pc+fr(geo)
+ * guj(basic) = pc+in(guj)
+ * gur(basic) = pc+in(guru)
+ * ie(laptop) = pc+ie(basic)
+ * ie(CloGaelachLaptop) = pc+ie(CloGaelach)
+ * in(urd) = pc+in(urd-phonetic)
+ * iu(basic) = pc+ca(ike)
+ * lo(basic) = pc+la(basic)
+ * kan(basic) = pc+in(kan)
+ * mal(basic) = pc+in(mal)
+ * mal(mlplusnum) = pc+in(mal)
+ * ogham(basic) = pc+ie(ogam)
+ * ogham(laptop) = pc+ie(ogam)
+ * ogham(is434) = pc+ie(ogam_is434)
+ * ogham(is434laptop) = pc+ie(ogam_is434)
+ * ori(basic) = pc+in(ori)
+ * ro(de) = pc+ro(winkeys)
+ * ro(us) = pc+ro(std)
+ * ro(academic) = pc+ro(std)
+ * ro(std_comma) = pc+ro(std)
+ * ro(comma) = pc+ro(basic)
+ * ru(os) = pc+ru(os_legacy)
+ * pk(urd) = pc+pk(urd-phonetic)
+ * sapmi(basic) = pc+no(smi)
+ * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys)
+ * sapmi(sefi) = pc+fi(smi)
+ * sin(phonetic-static) = pc+in(sin_phonetic)
+ * syr(basic) = pc+sy(syc)
+ * syr(phonetic) = pc+sy(syc_phonetic)
+ * tam(INSCRIPT) = pc+in(tam)
+ * tam(UNI) = pc+in(tam_unicode)
+ * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals)
+ * tam(TAB) = pc+in(tam_TAB)
+ * tam(TSCII) = pc+in(tam_TSCII)
+ * tel(basic) = pc+in(tel)
+ * yu(basic) = pc+srp(latin)
+ * yu(unicode) = pc+srp(latinunicode)
+ * yu(yz) = pc+srp(latinyz)
+ * yu(unicodeyz) = pc+srp(latinunicodeyz)
ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1])
amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1])
jollasbj * = jolla_vndr/sbj(common)+%l[1]%(v[1])
@@ -479,55 +474,55 @@
* * = pc+%l[1]%(v[1])
! model layout[1] variant[1] = symbols
- * ben basic = pc+in(ben)
- * ben probhat = pc+in(ben_probhat)
- * dev basic = pc+in(deva)
- * dvorak $dvoraklayouts = pc+%v(dvorak)
- * dvorak basic = pc+us(dvorak)
- * dvorak pl_basic = pc+pl(dvorak)
- * dvorak pl = pc+pl(dvorak_quotes)
- * dvorak pl_altquotes = pc+pl(dvorak_altquotes)
- * dzdwi basic = pc+bt(basic)
- * fi basic = pc+fi(classic)
- * ge azerty_tskapo = pc+fr(geo)
- * guj basic = pc+in(guj)
- * gur basic = pc+in(guru)
- * ie laptop = pc+ie(basic)
- * ie CloGaelachLaptop = pc+ie(CloGaelach)
- * in urd = pc+in(urd-phonetic)
- * iu basic = pc+ca(ike)
- * lo basic = pc+la(basic)
- * kan basic = pc+in(kan)
- * mal basic = pc+in(mal)
- * mal mlplusnum = pc+in(mal)
- * ogham basic = pc+ie(ogam)
- * ogham laptop = pc+ie(ogam)
- * ogham is434 = pc+ie(ogam_is434)
- * ogham is434laptop = pc+ie(ogam_is434)
- * ori basic = pc+in(ori)
- * ro de = pc+ro(winkeys)
- * ro us = pc+ro(std)
- * ro academic = pc+ro(std)
- * ro std_comma = pc+ro(std)
- * ro comma = pc+ro(basic)
- * ru os = pc+ru(os_legacy)
- * pk urd = pc+pk(urd-phonetic)
- * sapmi basic = pc+no(smi)
- * sapmi nodeadkeys = pc+no(smi_nodeadkeys)
- * sapmi sefi = pc+fi(smi)
- * sin phonetic-static = pc+in(sin_phonetic)
- * syr basic = pc+sy(syc)
- * syr phonetic = pc+sy(syc_phonetic)
- * tam INSCRIPT = pc+in(tam)
- * tam UNI = pc+in(tam_unicode)
- * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals)
- * tam TAB = pc+in(tam_TAB)
- * tam TSCII = pc+in(tam_TSCII)
- * tel basic = pc+in(tel)
- * yu basic = pc+srp(latin)
- * yu unicode = pc+srp(latinunicode)
- * yu yz = pc+srp(latinyz)
- * yu unicodeyz = pc+srp(latinunicodeyz)
+ * ben basic = pc+in(ben)
+ * ben probhat = pc+in(ben_probhat)
+ * dev basic = pc+in(deva)
+ * dvorak $dvoraklayouts = pc+%v(dvorak)
+ * dvorak basic = pc+us(dvorak)
+ * dvorak pl_basic = pc+pl(dvorak)
+ * dvorak pl = pc+pl(dvorak_quotes)
+ * dvorak pl_altquotes = pc+pl(dvorak_altquotes)
+ * dzdwi basic = pc+bt(basic)
+ * fi basic = pc+fi(classic)
+ * ge azerty_tskapo = pc+fr(geo)
+ * guj basic = pc+in(guj)
+ * gur basic = pc+in(guru)
+ * ie laptop = pc+ie(basic)
+ * ie CloGaelachLaptop = pc+ie(CloGaelach)
+ * in urd = pc+in(urd-phonetic)
+ * iu basic = pc+ca(ike)
+ * lo basic = pc+la(basic)
+ * kan basic = pc+in(kan)
+ * mal basic = pc+in(mal)
+ * mal mlplusnum = pc+in(mal)
+ * ogham basic = pc+ie(ogam)
+ * ogham laptop = pc+ie(ogam)
+ * ogham is434 = pc+ie(ogam_is434)
+ * ogham is434laptop = pc+ie(ogam_is434)
+ * ori basic = pc+in(ori)
+ * ro de = pc+ro(winkeys)
+ * ro us = pc+ro(std)
+ * ro academic = pc+ro(std)
+ * ro std_comma = pc+ro(std)
+ * ro comma = pc+ro(basic)
+ * ru os = pc+ru(os_legacy)
+ * pk urd = pc+pk(urd-phonetic)
+ * sapmi basic = pc+no(smi)
+ * sapmi nodeadkeys = pc+no(smi_nodeadkeys)
+ * sapmi sefi = pc+fi(smi)
+ * sin phonetic-static = pc+in(sin_phonetic)
+ * syr basic = pc+sy(syc)
+ * syr phonetic = pc+sy(syc_phonetic)
+ * tam INSCRIPT = pc+in(tam)
+ * tam UNI = pc+in(tam_unicode)
+ * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals)
+ * tam TAB = pc+in(tam_TAB)
+ * tam TSCII = pc+in(tam_TSCII)
+ * tel basic = pc+in(tel)
+ * yu basic = pc+srp(latin)
+ * yu unicode = pc+srp(latinunicode)
+ * yu yz = pc+srp(latinyz)
+ * yu unicodeyz = pc+srp(latinunicodeyz)
! model layout[2] = symbols
* ar = +ara%(v[2]):2
@@ -556,55 +551,55 @@
* yu = +srp%(v[2]):2
* fr-latin9 = +fr(latin9):2
* us_intl = +us(alt-intl):2
- * ben(basic) = +in(ben):2
- * ben(probhat) = +in(ben_probhat):2
- * dev(basic) = +in(deva):2
- * dvorak($dvoraklayouts) = +%v(dvorak):2
- * dvorak(basic) = +us(dvorak):2
- * dvorak(pl_basic) = +pl(dvorak):2
- * dvorak(pl) = +pl(dvorak_quotes):2
- * dvorak(pl_altquotes) = +pl(dvorak_altquotes):2
- * dzdwi(basic) = +bt(basic):2
- * fi(basic) = +fi(classic):2
- * ge(azerty_tskapo) = +fr(geo):2
- * guj(basic) = +in(guj):2
- * gur(basic) = +in(guru):2
- * ie(laptop) = +ie(basic):2
- * ie(CloGaelachLaptop) = +ie(CloGaelach):2
- * in(urd) = +in(urd-phonetic):2
- * iu(basic) = +ca(ike):2
- * lo(basic) = +la(basic):2
- * kan(basic) = +in(kan):2
- * mal(basic) = +in(mal):2
- * mal(mlplusnum) = +in(mal):2
- * ogham(basic) = +ie(ogam):2
- * ogham(laptop) = +ie(ogam):2
- * ogham(is434) = +ie(ogam_is434):2
- * ogham(is434laptop) = +ie(ogam_is434):2
- * ori(basic) = +in(ori):2
- * ro(de) = +ro(winkeys):2
- * ro(us) = +ro(std):2
- * ro(academic) = +ro(std):2
- * ro(std_comma) = +ro(std):2
- * ro(comma) = +ro(basic):2
- * ru(os) = +ru(os_legacy):2
- * pk(urd) = +pk(urd-phonetic):2
- * sapmi(basic) = +no(smi):2
- * sapmi(nodeadkeys) = +no(smi_nodeadkeys):2
- * sapmi(sefi) = +fi(smi):2
- * sin(phonetic-static) = +in(sin_phonetic):2
- * syr(basic) = +sy(syc):2
- * syr(phonetic) = +sy(syc_phonetic):2
- * tam(INSCRIPT) = +in(tam):2
- * tam(UNI) = +in(tam_unicode):2
- * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):2
- * tam(TAB) = +in(tam_TAB):2
- * tam(TSCII) = +in(tam_TSCII):2
- * tel(basic) = +in(tel):2
- * yu(basic) = +srp(latin):2
- * yu(unicode) = +srp(latinunicode):2
- * yu(yz) = +srp(latinyz):2
- * yu(unicodeyz) = +srp(latinunicodeyz):2
+ * ben(basic) = +in(ben):2
+ * ben(probhat) = +in(ben_probhat):2
+ * dev(basic) = +in(deva):2
+ * dvorak($dvoraklayouts) = +%v(dvorak):2
+ * dvorak(basic) = +us(dvorak):2
+ * dvorak(pl_basic) = +pl(dvorak):2
+ * dvorak(pl) = +pl(dvorak_quotes):2
+ * dvorak(pl_altquotes) = +pl(dvorak_altquotes):2
+ * dzdwi(basic) = +bt(basic):2
+ * fi(basic) = +fi(classic):2
+ * ge(azerty_tskapo) = +fr(geo):2
+ * guj(basic) = +in(guj):2
+ * gur(basic) = +in(guru):2
+ * ie(laptop) = +ie(basic):2
+ * ie(CloGaelachLaptop) = +ie(CloGaelach):2
+ * in(urd) = +in(urd-phonetic):2
+ * iu(basic) = +ca(ike):2
+ * lo(basic) = +la(basic):2
+ * kan(basic) = +in(kan):2
+ * mal(basic) = +in(mal):2
+ * mal(mlplusnum) = +in(mal):2
+ * ogham(basic) = +ie(ogam):2
+ * ogham(laptop) = +ie(ogam):2
+ * ogham(is434) = +ie(ogam_is434):2
+ * ogham(is434laptop) = +ie(ogam_is434):2
+ * ori(basic) = +in(ori):2
+ * ro(de) = +ro(winkeys):2
+ * ro(us) = +ro(std):2
+ * ro(academic) = +ro(std):2
+ * ro(std_comma) = +ro(std):2
+ * ro(comma) = +ro(basic):2
+ * ru(os) = +ru(os_legacy):2
+ * pk(urd) = +pk(urd-phonetic):2
+ * sapmi(basic) = +no(smi):2
+ * sapmi(nodeadkeys) = +no(smi_nodeadkeys):2
+ * sapmi(sefi) = +fi(smi):2
+ * sin(phonetic-static) = +in(sin_phonetic):2
+ * syr(basic) = +sy(syc):2
+ * syr(phonetic) = +sy(syc_phonetic):2
+ * tam(INSCRIPT) = +in(tam):2
+ * tam(UNI) = +in(tam_unicode):2
+ * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):2
+ * tam(TAB) = +in(tam_TAB):2
+ * tam(TSCII) = +in(tam_TSCII):2
+ * tel(basic) = +in(tel):2
+ * yu(basic) = +srp(latin):2
+ * yu(unicode) = +srp(latinunicode):2
+ * yu(yz) = +srp(latinyz):2
+ * yu(unicodeyz) = +srp(latinunicodeyz):2
nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):2
nokiarx51 * = +nokia_vndr/rx-51(%l[2]%_v[2]):2
$sun $sun_custom = +sun_vndr/%l[2]%(v[2]):2
@@ -637,55 +632,55 @@
* yu = +srp%(v[3]):3
* fr-latin9 = +fr(latin9):3
* us_intl = +us(alt-intl):3
- * ben(basic) = +in(ben):3
- * ben(probhat) = +in(ben_probhat):3
- * dev(basic) = +in(deva):3
- * dvorak($dvoraklayouts) = +%v(dvorak):3
- * dvorak(basic) = +us(dvorak):3
- * dvorak(pl_basic) = +pl(dvorak):3
- * dvorak(pl) = +pl(dvorak_quotes):3
- * dvorak(pl_altquotes) = +pl(dvorak_altquotes):3
- * dzdwi(basic) = +bt(basic):3
- * fi(basic) = +fi(classic):3
- * ge(azerty_tskapo) = +fr(geo):3
- * guj(basic) = +in(guj):3
- * gur(basic) = +in(guru):3
- * ie(laptop) = +ie(basic):3
- * ie(CloGaelachLaptop) = +ie(CloGaelach):3
- * in(urd) = +in(urd-phonetic):3
- * iu(basic) = +ca(ike):3
- * lo(basic) = +la(basic):3
- * kan(basic) = +in(kan):3
- * mal(basic) = +in(mal):3
- * mal(mlplusnum) = +in(mal):3
- * ogham(basic) = +ie(ogam):3
- * ogham(laptop) = +ie(ogam):3
- * ogham(is434) = +ie(ogam_is434):3
- * ogham(is434laptop) = +ie(ogam_is434):3
- * ori(basic) = +in(ori):3
- * ro(de) = +ro(winkeys):3
- * ro(us) = +ro(std):3
- * ro(academic) = +ro(std):3
- * ro(std_comma) = +ro(std):3
- * ro(comma) = +ro(basic):3
- * ru(os) = +ru(os_legacy):3
- * pk(urd) = +pk(urd-phonetic):3
- * sapmi(basic) = +no(smi):3
- * sapmi(nodeadkeys) = +no(smi_nodeadkeys):3
- * sapmi(sefi) = +fi(smi):3
- * sin(phonetic-static) = +in(sin_phonetic):3
- * syr(basic) = +sy(syc):3
- * syr(phonetic) = +sy(syc_phonetic):3
- * tam(INSCRIPT) = +in(tam):3
- * tam(UNI) = +in(tam_unicode):3
- * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):3
- * tam(TAB) = +in(tam_TAB):3
- * tam(TSCII) = +in(tam_TSCII):3
- * tel(basic) = +in(tel):3
- * yu(basic) = +srp(latin):3
- * yu(unicode) = +srp(latinunicode):3
- * yu(yz) = +srp(latinyz):3
- * yu(unicodeyz) = +srp(latinunicodeyz):3
+ * ben(basic) = +in(ben):3
+ * ben(probhat) = +in(ben_probhat):3
+ * dev(basic) = +in(deva):3
+ * dvorak($dvoraklayouts) = +%v(dvorak):3
+ * dvorak(basic) = +us(dvorak):3
+ * dvorak(pl_basic) = +pl(dvorak):3
+ * dvorak(pl) = +pl(dvorak_quotes):3
+ * dvorak(pl_altquotes) = +pl(dvorak_altquotes):3
+ * dzdwi(basic) = +bt(basic):3
+ * fi(basic) = +fi(classic):3
+ * ge(azerty_tskapo) = +fr(geo):3
+ * guj(basic) = +in(guj):3
+ * gur(basic) = +in(guru):3
+ * ie(laptop) = +ie(basic):3
+ * ie(CloGaelachLaptop) = +ie(CloGaelach):3
+ * in(urd) = +in(urd-phonetic):3
+ * iu(basic) = +ca(ike):3
+ * lo(basic) = +la(basic):3
+ * kan(basic) = +in(kan):3
+ * mal(basic) = +in(mal):3
+ * mal(mlplusnum) = +in(mal):3
+ * ogham(basic) = +ie(ogam):3
+ * ogham(laptop) = +ie(ogam):3
+ * ogham(is434) = +ie(ogam_is434):3
+ * ogham(is434laptop) = +ie(ogam_is434):3
+ * ori(basic) = +in(ori):3
+ * ro(de) = +ro(winkeys):3
+ * ro(us) = +ro(std):3
+ * ro(academic) = +ro(std):3
+ * ro(std_comma) = +ro(std):3
+ * ro(comma) = +ro(basic):3
+ * ru(os) = +ru(os_legacy):3
+ * pk(urd) = +pk(urd-phonetic):3
+ * sapmi(basic) = +no(smi):3
+ * sapmi(nodeadkeys) = +no(smi_nodeadkeys):3
+ * sapmi(sefi) = +fi(smi):3
+ * sin(phonetic-static) = +in(sin_phonetic):3
+ * syr(basic) = +sy(syc):3
+ * syr(phonetic) = +sy(syc_phonetic):3
+ * tam(INSCRIPT) = +in(tam):3
+ * tam(UNI) = +in(tam_unicode):3
+ * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):3
+ * tam(TAB) = +in(tam_TAB):3
+ * tam(TSCII) = +in(tam_TSCII):3
+ * tel(basic) = +in(tel):3
+ * yu(basic) = +srp(latin):3
+ * yu(unicode) = +srp(latinunicode):3
+ * yu(yz) = +srp(latinyz):3
+ * yu(unicodeyz) = +srp(latinunicodeyz):3
nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):3
nokiarx51 * = +nokia_vndr/rx-51(%l[3]%_v[3]):3
$sun $sun_custom = +sun_vndr/%l[3]%(v[3]):3
@@ -718,55 +713,55 @@
* yu = +srp%(v[4]):4
* fr-latin9 = +fr(latin9):4
* us_intl = +us(alt-intl):4
- * ben(basic) = +in(ben):4
- * ben(probhat) = +in(ben_probhat):4
- * dev(basic) = +in(deva):4
- * dvorak($dvoraklayouts) = +%v(dvorak):4
- * dvorak(basic) = +us(dvorak):4
- * dvorak(pl_basic) = +pl(dvorak):4
- * dvorak(pl) = +pl(dvorak_quotes):4
- * dvorak(pl_altquotes) = +pl(dvorak_altquotes):4
- * dzdwi(basic) = +bt(basic):4
- * fi(basic) = +fi(classic):4
- * ge(azerty_tskapo) = +fr(geo):4
- * guj(basic) = +in(guj):4
- * gur(basic) = +in(guru):4
- * ie(laptop) = +ie(basic):4
- * ie(CloGaelachLaptop) = +ie(CloGaelach):4
- * in(urd) = +in(urd-phonetic):4
- * iu(basic) = +ca(ike):4
- * lo(basic) = +la(basic):4
- * kan(basic) = +in(kan):4
- * mal(basic) = +in(mal):4
- * mal(mlplusnum) = +in(mal):4
- * ogham(basic) = +ie(ogam):4
- * ogham(laptop) = +ie(ogam):4
- * ogham(is434) = +ie(ogam_is434):4
- * ogham(is434laptop) = +ie(ogam_is434):4
- * ori(basic) = +in(ori):4
- * ro(de) = +ro(winkeys):4
- * ro(us) = +ro(std):4
- * ro(academic) = +ro(std):4
- * ro(std_comma) = +ro(std):4
- * ro(comma) = +ro(basic):4
- * ru(os) = +ru(os_legacy):4
- * pk(urd) = +pk(urd-phonetic):4
- * sapmi(basic) = +no(smi):4
- * sapmi(nodeadkeys) = +no(smi_nodeadkeys):4
- * sapmi(sefi) = +fi(smi):4
- * sin(phonetic-static) = +in(sin_phonetic):4
- * syr(basic) = +sy(syc):4
- * syr(phonetic) = +sy(syc_phonetic):4
- * tam(INSCRIPT) = +in(tam):4
- * tam(UNI) = +in(tam_unicode):4
- * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):4
- * tam(TAB) = +in(tam_TAB):4
- * tam(TSCII) = +in(tam_TSCII):4
- * tel(basic) = +in(tel):4
- * yu(basic) = +srp(latin):4
- * yu(unicode) = +srp(latinunicode):4
- * yu(yz) = +srp(latinyz):4
- * yu(unicodeyz) = +srp(latinunicodeyz):4
+ * ben(basic) = +in(ben):4
+ * ben(probhat) = +in(ben_probhat):4
+ * dev(basic) = +in(deva):4
+ * dvorak($dvoraklayouts) = +%v(dvorak):4
+ * dvorak(basic) = +us(dvorak):4
+ * dvorak(pl_basic) = +pl(dvorak):4
+ * dvorak(pl) = +pl(dvorak_quotes):4
+ * dvorak(pl_altquotes) = +pl(dvorak_altquotes):4
+ * dzdwi(basic) = +bt(basic):4
+ * fi(basic) = +fi(classic):4
+ * ge(azerty_tskapo) = +fr(geo):4
+ * guj(basic) = +in(guj):4
+ * gur(basic) = +in(guru):4
+ * ie(laptop) = +ie(basic):4
+ * ie(CloGaelachLaptop) = +ie(CloGaelach):4
+ * in(urd) = +in(urd-phonetic):4
+ * iu(basic) = +ca(ike):4
+ * lo(basic) = +la(basic):4
+ * kan(basic) = +in(kan):4
+ * mal(basic) = +in(mal):4
+ * mal(mlplusnum) = +in(mal):4
+ * ogham(basic) = +ie(ogam):4
+ * ogham(laptop) = +ie(ogam):4
+ * ogham(is434) = +ie(ogam_is434):4
+ * ogham(is434laptop) = +ie(ogam_is434):4
+ * ori(basic) = +in(ori):4
+ * ro(de) = +ro(winkeys):4
+ * ro(us) = +ro(std):4
+ * ro(academic) = +ro(std):4
+ * ro(std_comma) = +ro(std):4
+ * ro(comma) = +ro(basic):4
+ * ru(os) = +ru(os_legacy):4
+ * pk(urd) = +pk(urd-phonetic):4
+ * sapmi(basic) = +no(smi):4
+ * sapmi(nodeadkeys) = +no(smi_nodeadkeys):4
+ * sapmi(sefi) = +fi(smi):4
+ * sin(phonetic-static) = +in(sin_phonetic):4
+ * syr(basic) = +sy(syc):4
+ * syr(phonetic) = +sy(syc_phonetic):4
+ * tam(INSCRIPT) = +in(tam):4
+ * tam(UNI) = +in(tam_unicode):4
+ * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):4
+ * tam(TAB) = +in(tam_TAB):4
+ * tam(TSCII) = +in(tam_TSCII):4
+ * tel(basic) = +in(tel):4
+ * yu(basic) = +srp(latin):4
+ * yu(unicode) = +srp(latinunicode):4
+ * yu(yz) = +srp(latinyz):4
+ * yu(unicodeyz) = +srp(latinunicodeyz):4
nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):4
nokiarx51 * = +nokia_vndr/rx-51(%l[4]%_v[4]):4
$sun $sun_custom = +sun_vndr/%l[4]%(v[4]):4
@@ -1053,26 +1048,32 @@
! layout option = symbols
$threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle)
* misc:typo = +typo(base)
+ * misc:apl = +apl(level3)
! layout[1] option = symbols
$threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1
* misc:typo = +typo(base):1
+ * misc:apl = +apl(level3):1
! layout[2] option = symbols
$threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2
* misc:typo = +typo(base):2
+ * misc:apl = +apl(level3):2
! layout[3] option = symbols
$threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3
* misc:typo = +typo(base):3
+ * misc:apl = +apl(level3):3
! layout[4] option = symbols
$threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4
* misc:typo = +typo(base):4
+ * misc:apl = +apl(level3):4
! option = symbols
grp:shift_toggle = +group(shifts_toggle)
altwin:menu = +altwin(menu)
+ altwin:menu_win = +altwin(menu_win)
altwin:meta_alt = +altwin(meta_alt)
altwin:alt_win = +altwin(alt_win)
altwin:ctrl_win = +altwin(ctrl_win)
@@ -1139,11 +1140,14 @@
lv3:lwin_switch = +level3(lwin_switch)
lv3:rwin_switch = +level3(rwin_switch)
lv3:enter_switch = +level3(enter_switch)
+ lv3:4_switch_isolated = +level3(4_switch_isolated)
+ lv3:9_switch_isolated = +level3(9_switch_isolated)
caps:capslock = +capslock(capslock)
caps:numlock = +capslock(numlock)
caps:shiftlock = +capslock(shiftlock)
caps:swapescape = +capslock(swapescape)
caps:escape = +capslock(escape)
+ caps:escape_shifted_capslock = +capslock(escape_shifted_capslock)
caps:backspace = +capslock(backspace)
caps:super = +capslock(super)
caps:hyper = +capslock(hyper)
@@ -1153,6 +1157,8 @@
ctrl:nocaps = +ctrl(nocaps)
ctrl:lctrl_meta = +ctrl(lctrl_meta)
ctrl:swapcaps = +ctrl(swapcaps)
+ ctrl:swapcaps_hyper = +ctrl(swapcaps_hyper)
+ ctrl:swapcaps_and_switch_layout = +ctrl(swapcaps_and_switch_layout)
ctrl:ac_ctrl = +ctrl(ac_ctrl)
ctrl:aa_ctrl = +ctrl(aa_ctrl)
ctrl:rctrl_ralt = +ctrl(rctrl_ralt)
@@ -1202,10 +1208,20 @@
nbsp:level4 = +nbsp(level4)
nbsp:level4n = +nbsp(level4n)
nbsp:level4nl = +nbsp(level4nl)
+ nbsp:zwnj2 = +nbsp(zwnj2)
+ nbsp:zwnj2zwj3 = +nbsp(zwnj2zwj3)
+ nbsp:zwnj2zwj3nb4 = +nbsp(zwnj2zwj3nb4)
+ nbsp:zwnj2nb3 = +nbsp(zwnj2nb3)
+ nbsp:zwnj2nb3s = +nbsp(zwnj2nb3s)
+ nbsp:zwnj2nb3zwj4 = +nbsp(zwnj2nb3zwj4)
+ nbsp:zwnj2nb3nnb4 = +nbsp(zwnj2nb3nnb4)
+ nbsp:zwnj3zwj4 = +nbsp(zwnj3zwj4)
japan:nicola_f_bs = +jp(nicola_f_bs)
japan:hztg_escape = +jp(hztg_escape)
- korean:ralt_rctrl = +kr(ralt_hangul)+kr(rctrl_hanja)
- korean:rctrl_ralt = +kr(rctrl_hangul)+kr(ralt_hanja)
+ korean:ralt_hangul = +kr(ralt_hangul)
+ korean:rctrl_hangul = +kr(rctrl_hangul)
+ korean:ralt_hanja = +kr(ralt_hanja)
+ korean:rctrl_hanja = +kr(rctrl_hanja)
kpdl:dot = +kpdl(dot)
kpdl:comma = +kpdl(comma)
kpdl:dotoss = +kpdl(dotoss)
@@ -1237,6 +1253,8 @@
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 = +level5(lsgt_switch)
+ lv5:ralt_switch = +level5(ralt_switch)
lv5:lsgt_switch_lock = +level5(lsgt_switch_lock)
lv5:ralt_switch_lock = +level5(ralt_switch_lock)
lv5:lwin_switch_lock = +level5(lwin_switch_lock)
@@ -1252,6 +1270,7 @@
grp_led:num = +lednum(group_lock)
grp_led:caps = +ledcaps(group_lock)
grp_led:scroll = +ledscroll(group_lock)
+ mod_led:compose = +ledcompose(compose)
japan:kana_lock = +japan(kana_lock)
caps:shiftlock = +ledcaps(shift_lock)
grab:break_actions = +xfree86(grab_break)
diff --git a/test/data/rules/evdev b/test/data/rules/evdev
index 872e1de..e949490 100644
--- a/test/data/rules/evdev
+++ b/test/data/rules/evdev
@@ -1,4 +1,5 @@
-// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part
+// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.py FROM rules/*.part
+//
//
// Rules for resolving XKB components for use with XFree86
// Copyright 1996 by Joseph Moss
@@ -13,20 +14,17 @@
// ori pk ru scc sy syr tel th tj tam ua uz
// PC models
-! $pcmodels = pc101 pc102 pc104 pc105
+! $pcmodels = pc86 pc101 pc102 pc104 pc104alt pc105
// Jolla devices and keyboards
! $jollamodels = jollasbj
// Microsoft models (using MS geometry)
-! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose
+! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose microsoftsurface
// Nokia devices and keyboards
! $nokiamodels = nokiasu8w nokiarx44 nokiarx51
-// PC geometries - they have special geometry but symbols are mostly pc105
-! $pcgeometries = latitude
-
// TypeMatrix geometries
! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106
@@ -85,14 +83,12 @@
! $sun_compat = sun_type6 sun_type6_suncompat sun_type7_suncompat suncompat
-! $htcdreamlayouts = us it de
! $evdevkbds = ibm_spacesaver
! $dvoraklayouts = br ca de ee es fr gb no pl se us
! model = keycodes
- pc98 = evdev(pc98)
applealu_jis = evdev+macintosh(jisevdev)
$jollamodels = evdev+jolla(jolla)
olpc = evdev+olpc(olpc)
@@ -127,7 +123,6 @@
omnikey101 = northgate(omnikey101)
sanwaskbkg3 = sanwa(sanwaskbkg3)
$pcmodels = pc(%m)
- $pcgeometries = pc(%m)
everex = everex(STEPnote)
thinkpad = thinkpad(intl)
thinkpad60 = thinkpad(60)
@@ -321,86 +316,85 @@
ws007sh * = pc+sharp_vndr/ws007sh(basic)
ws011sh * = pc+sharp_vndr/ws011sh(basic)
ws020sh * = pc+sharp_vndr/ws020sh(basic)
- htcdream $htcdreamlayouts = %l(htcdream)
* $nonlatin = pc+us+%l%(v):2
* * = pc+%l%(v)
-! model layout[1] = symbols
- * ar = pc+ara%(v[1])
- * ben = pc+in(ben)
- * bs = pc+ba%(v[1])
- * cs = pc+rs%(v[1])
- * cz_qwerty = pc+cz(qwerty)
- * dev = pc+in(deva)
- * dvorak = pc+us(dvorak)
- * dzdwi = pc+bt%(v[1])
- * el = pc+gr%(v[1])
- * en_US = pc+latin%(v[1])
- * guj = pc+in(guj)
- * gur = pc+in(guru)
- * iu = pc+ca(ike)
- * lo = pc+la%(v[1])
- * kan = pc+in(kan)
- * mi = pc+mao%(v[1])
- * ogham = pc+ie(ogam)
- * ori = pc+ie(ori)
- * sapmi = pc+no(smi)
- * sr = pc+srp%(v[1])
- * syr = pc+sy(syc)
- * tel = pc+in(tel)
- * tml = pc+in(tam)
- * yu = pc+srp%(v[1])
- * fr-latin9 = pc+fr(latin9)
- * us_intl = pc+us(alt-intl)
- * ben(basic) = pc+in(ben)
- * ben(probhat) = pc+in(ben_probhat)
- * dev(basic) = pc+in(deva)
- * dvorak($dvoraklayouts) = pc+%v(dvorak)
- * dvorak(basic) = pc+us(dvorak)
- * dvorak(pl_basic) = pc+pl(dvorak)
- * dvorak(pl) = pc+pl(dvorak_quotes)
- * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes)
- * dzdwi(basic) = pc+bt(basic)
- * fi(basic) = pc+fi(classic)
- * ge(azerty_tskapo) = pc+fr(geo)
- * guj(basic) = pc+in(guj)
- * gur(basic) = pc+in(guru)
- * ie(laptop) = pc+ie(basic)
- * ie(CloGaelachLaptop) = pc+ie(CloGaelach)
- * in(urd) = pc+in(urd-phonetic)
- * iu(basic) = pc+ca(ike)
- * lo(basic) = pc+la(basic)
- * kan(basic) = pc+in(kan)
- * mal(basic) = pc+in(mal)
- * mal(mlplusnum) = pc+in(mal)
- * ogham(basic) = pc+ie(ogam)
- * ogham(laptop) = pc+ie(ogam)
- * ogham(is434) = pc+ie(ogam_is434)
- * ogham(is434laptop) = pc+ie(ogam_is434)
- * ori(basic) = pc+in(ori)
- * ro(de) = pc+ro(winkeys)
- * ro(us) = pc+ro(std)
- * ro(academic) = pc+ro(std)
- * ro(std_comma) = pc+ro(std)
- * ro(comma) = pc+ro(basic)
- * ru(os) = pc+ru(os_legacy)
- * pk(urd) = pc+pk(urd-phonetic)
- * sapmi(basic) = pc+no(smi)
- * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys)
- * sapmi(sefi) = pc+fi(smi)
- * sin(phonetic-static) = pc+in(sin_phonetic)
- * syr(basic) = pc+sy(syc)
- * syr(phonetic) = pc+sy(syc_phonetic)
- * tam(INSCRIPT) = pc+in(tam)
- * tam(UNI) = pc+in(tam_unicode)
- * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals)
- * tam(TAB) = pc+in(tam_TAB)
- * tam(TSCII) = pc+in(tam_TSCII)
- * tel(basic) = pc+in(tel)
- * yu(basic) = pc+srp(latin)
- * yu(unicode) = pc+srp(latinunicode)
- * yu(yz) = pc+srp(latinyz)
- * yu(unicodeyz) = pc+srp(latinunicodeyz)
+! model layout[1] = symbols
+ * ar = pc+ara%(v[1])
+ * ben = pc+in(ben)
+ * bs = pc+ba%(v[1])
+ * cs = pc+rs%(v[1])
+ * cz_qwerty = pc+cz(qwerty)
+ * dev = pc+in(deva)
+ * dvorak = pc+us(dvorak)
+ * dzdwi = pc+bt%(v[1])
+ * el = pc+gr%(v[1])
+ * en_US = pc+latin%(v[1])
+ * guj = pc+in(guj)
+ * gur = pc+in(guru)
+ * iu = pc+ca(ike)
+ * lo = pc+la%(v[1])
+ * kan = pc+in(kan)
+ * mi = pc+mao%(v[1])
+ * ogham = pc+ie(ogam)
+ * ori = pc+ie(ori)
+ * sapmi = pc+no(smi)
+ * sr = pc+srp%(v[1])
+ * syr = pc+sy(syc)
+ * tel = pc+in(tel)
+ * tml = pc+in(tam)
+ * yu = pc+srp%(v[1])
+ * fr-latin9 = pc+fr(latin9)
+ * us_intl = pc+us(alt-intl)
+ * ben(basic) = pc+in(ben)
+ * ben(probhat) = pc+in(ben_probhat)
+ * dev(basic) = pc+in(deva)
+ * dvorak($dvoraklayouts) = pc+%v(dvorak)
+ * dvorak(basic) = pc+us(dvorak)
+ * dvorak(pl_basic) = pc+pl(dvorak)
+ * dvorak(pl) = pc+pl(dvorak_quotes)
+ * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes)
+ * dzdwi(basic) = pc+bt(basic)
+ * fi(basic) = pc+fi(classic)
+ * ge(azerty_tskapo) = pc+fr(geo)
+ * guj(basic) = pc+in(guj)
+ * gur(basic) = pc+in(guru)
+ * ie(laptop) = pc+ie(basic)
+ * ie(CloGaelachLaptop) = pc+ie(CloGaelach)
+ * in(urd) = pc+in(urd-phonetic)
+ * iu(basic) = pc+ca(ike)
+ * lo(basic) = pc+la(basic)
+ * kan(basic) = pc+in(kan)
+ * mal(basic) = pc+in(mal)
+ * mal(mlplusnum) = pc+in(mal)
+ * ogham(basic) = pc+ie(ogam)
+ * ogham(laptop) = pc+ie(ogam)
+ * ogham(is434) = pc+ie(ogam_is434)
+ * ogham(is434laptop) = pc+ie(ogam_is434)
+ * ori(basic) = pc+in(ori)
+ * ro(de) = pc+ro(winkeys)
+ * ro(us) = pc+ro(std)
+ * ro(academic) = pc+ro(std)
+ * ro(std_comma) = pc+ro(std)
+ * ro(comma) = pc+ro(basic)
+ * ru(os) = pc+ru(os_legacy)
+ * pk(urd) = pc+pk(urd-phonetic)
+ * sapmi(basic) = pc+no(smi)
+ * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys)
+ * sapmi(sefi) = pc+fi(smi)
+ * sin(phonetic-static) = pc+in(sin_phonetic)
+ * syr(basic) = pc+sy(syc)
+ * syr(phonetic) = pc+sy(syc_phonetic)
+ * tam(INSCRIPT) = pc+in(tam)
+ * tam(UNI) = pc+in(tam_unicode)
+ * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals)
+ * tam(TAB) = pc+in(tam_TAB)
+ * tam(TSCII) = pc+in(tam_TSCII)
+ * tel(basic) = pc+in(tel)
+ * yu(basic) = pc+srp(latin)
+ * yu(unicode) = pc+srp(latinunicode)
+ * yu(yz) = pc+srp(latinyz)
+ * yu(unicodeyz) = pc+srp(latinunicodeyz)
ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1])
amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1])
jollasbj * = jolla_vndr/sbj(common)+%l[1]%(v[1])
@@ -418,55 +412,55 @@
* * = pc+%l[1]%(v[1])
! model layout[1] variant[1] = symbols
- * ben basic = pc+in(ben)
- * ben probhat = pc+in(ben_probhat)
- * dev basic = pc+in(deva)
- * dvorak $dvoraklayouts = pc+%v(dvorak)
- * dvorak basic = pc+us(dvorak)
- * dvorak pl_basic = pc+pl(dvorak)
- * dvorak pl = pc+pl(dvorak_quotes)
- * dvorak pl_altquotes = pc+pl(dvorak_altquotes)
- * dzdwi basic = pc+bt(basic)
- * fi basic = pc+fi(classic)
- * ge azerty_tskapo = pc+fr(geo)
- * guj basic = pc+in(guj)
- * gur basic = pc+in(guru)
- * ie laptop = pc+ie(basic)
- * ie CloGaelachLaptop = pc+ie(CloGaelach)
- * in urd = pc+in(urd-phonetic)
- * iu basic = pc+ca(ike)
- * lo basic = pc+la(basic)
- * kan basic = pc+in(kan)
- * mal basic = pc+in(mal)
- * mal mlplusnum = pc+in(mal)
- * ogham basic = pc+ie(ogam)
- * ogham laptop = pc+ie(ogam)
- * ogham is434 = pc+ie(ogam_is434)
- * ogham is434laptop = pc+ie(ogam_is434)
- * ori basic = pc+in(ori)
- * ro de = pc+ro(winkeys)
- * ro us = pc+ro(std)
- * ro academic = pc+ro(std)
- * ro std_comma = pc+ro(std)
- * ro comma = pc+ro(basic)
- * ru os = pc+ru(os_legacy)
- * pk urd = pc+pk(urd-phonetic)
- * sapmi basic = pc+no(smi)
- * sapmi nodeadkeys = pc+no(smi_nodeadkeys)
- * sapmi sefi = pc+fi(smi)
- * sin phonetic-static = pc+in(sin_phonetic)
- * syr basic = pc+sy(syc)
- * syr phonetic = pc+sy(syc_phonetic)
- * tam INSCRIPT = pc+in(tam)
- * tam UNI = pc+in(tam_unicode)
- * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals)
- * tam TAB = pc+in(tam_TAB)
- * tam TSCII = pc+in(tam_TSCII)
- * tel basic = pc+in(tel)
- * yu basic = pc+srp(latin)
- * yu unicode = pc+srp(latinunicode)
- * yu yz = pc+srp(latinyz)
- * yu unicodeyz = pc+srp(latinunicodeyz)
+ * ben basic = pc+in(ben)
+ * ben probhat = pc+in(ben_probhat)
+ * dev basic = pc+in(deva)
+ * dvorak $dvoraklayouts = pc+%v(dvorak)
+ * dvorak basic = pc+us(dvorak)
+ * dvorak pl_basic = pc+pl(dvorak)
+ * dvorak pl = pc+pl(dvorak_quotes)
+ * dvorak pl_altquotes = pc+pl(dvorak_altquotes)
+ * dzdwi basic = pc+bt(basic)
+ * fi basic = pc+fi(classic)
+ * ge azerty_tskapo = pc+fr(geo)
+ * guj basic = pc+in(guj)
+ * gur basic = pc+in(guru)
+ * ie laptop = pc+ie(basic)
+ * ie CloGaelachLaptop = pc+ie(CloGaelach)
+ * in urd = pc+in(urd-phonetic)
+ * iu basic = pc+ca(ike)
+ * lo basic = pc+la(basic)
+ * kan basic = pc+in(kan)
+ * mal basic = pc+in(mal)
+ * mal mlplusnum = pc+in(mal)
+ * ogham basic = pc+ie(ogam)
+ * ogham laptop = pc+ie(ogam)
+ * ogham is434 = pc+ie(ogam_is434)
+ * ogham is434laptop = pc+ie(ogam_is434)
+ * ori basic = pc+in(ori)
+ * ro de = pc+ro(winkeys)
+ * ro us = pc+ro(std)
+ * ro academic = pc+ro(std)
+ * ro std_comma = pc+ro(std)
+ * ro comma = pc+ro(basic)
+ * ru os = pc+ru(os_legacy)
+ * pk urd = pc+pk(urd-phonetic)
+ * sapmi basic = pc+no(smi)
+ * sapmi nodeadkeys = pc+no(smi_nodeadkeys)
+ * sapmi sefi = pc+fi(smi)
+ * sin phonetic-static = pc+in(sin_phonetic)
+ * syr basic = pc+sy(syc)
+ * syr phonetic = pc+sy(syc_phonetic)
+ * tam INSCRIPT = pc+in(tam)
+ * tam UNI = pc+in(tam_unicode)
+ * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals)
+ * tam TAB = pc+in(tam_TAB)
+ * tam TSCII = pc+in(tam_TSCII)
+ * tel basic = pc+in(tel)
+ * yu basic = pc+srp(latin)
+ * yu unicode = pc+srp(latinunicode)
+ * yu yz = pc+srp(latinyz)
+ * yu unicodeyz = pc+srp(latinunicodeyz)
! model layout[2] = symbols
* ar = +ara%(v[2]):2
@@ -495,55 +489,55 @@
* yu = +srp%(v[2]):2
* fr-latin9 = +fr(latin9):2
* us_intl = +us(alt-intl):2
- * ben(basic) = +in(ben):2
- * ben(probhat) = +in(ben_probhat):2
- * dev(basic) = +in(deva):2
- * dvorak($dvoraklayouts) = +%v(dvorak):2
- * dvorak(basic) = +us(dvorak):2
- * dvorak(pl_basic) = +pl(dvorak):2
- * dvorak(pl) = +pl(dvorak_quotes):2
- * dvorak(pl_altquotes) = +pl(dvorak_altquotes):2
- * dzdwi(basic) = +bt(basic):2
- * fi(basic) = +fi(classic):2
- * ge(azerty_tskapo) = +fr(geo):2
- * guj(basic) = +in(guj):2
- * gur(basic) = +in(guru):2
- * ie(laptop) = +ie(basic):2
- * ie(CloGaelachLaptop) = +ie(CloGaelach):2
- * in(urd) = +in(urd-phonetic):2
- * iu(basic) = +ca(ike):2
- * lo(basic) = +la(basic):2
- * kan(basic) = +in(kan):2
- * mal(basic) = +in(mal):2
- * mal(mlplusnum) = +in(mal):2
- * ogham(basic) = +ie(ogam):2
- * ogham(laptop) = +ie(ogam):2
- * ogham(is434) = +ie(ogam_is434):2
- * ogham(is434laptop) = +ie(ogam_is434):2
- * ori(basic) = +in(ori):2
- * ro(de) = +ro(winkeys):2
- * ro(us) = +ro(std):2
- * ro(academic) = +ro(std):2
- * ro(std_comma) = +ro(std):2
- * ro(comma) = +ro(basic):2
- * ru(os) = +ru(os_legacy):2
- * pk(urd) = +pk(urd-phonetic):2
- * sapmi(basic) = +no(smi):2
- * sapmi(nodeadkeys) = +no(smi_nodeadkeys):2
- * sapmi(sefi) = +fi(smi):2
- * sin(phonetic-static) = +in(sin_phonetic):2
- * syr(basic) = +sy(syc):2
- * syr(phonetic) = +sy(syc_phonetic):2
- * tam(INSCRIPT) = +in(tam):2
- * tam(UNI) = +in(tam_unicode):2
- * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):2
- * tam(TAB) = +in(tam_TAB):2
- * tam(TSCII) = +in(tam_TSCII):2
- * tel(basic) = +in(tel):2
- * yu(basic) = +srp(latin):2
- * yu(unicode) = +srp(latinunicode):2
- * yu(yz) = +srp(latinyz):2
- * yu(unicodeyz) = +srp(latinunicodeyz):2
+ * ben(basic) = +in(ben):2
+ * ben(probhat) = +in(ben_probhat):2
+ * dev(basic) = +in(deva):2
+ * dvorak($dvoraklayouts) = +%v(dvorak):2
+ * dvorak(basic) = +us(dvorak):2
+ * dvorak(pl_basic) = +pl(dvorak):2
+ * dvorak(pl) = +pl(dvorak_quotes):2
+ * dvorak(pl_altquotes) = +pl(dvorak_altquotes):2
+ * dzdwi(basic) = +bt(basic):2
+ * fi(basic) = +fi(classic):2
+ * ge(azerty_tskapo) = +fr(geo):2
+ * guj(basic) = +in(guj):2
+ * gur(basic) = +in(guru):2
+ * ie(laptop) = +ie(basic):2
+ * ie(CloGaelachLaptop) = +ie(CloGaelach):2
+ * in(urd) = +in(urd-phonetic):2
+ * iu(basic) = +ca(ike):2
+ * lo(basic) = +la(basic):2
+ * kan(basic) = +in(kan):2
+ * mal(basic) = +in(mal):2
+ * mal(mlplusnum) = +in(mal):2
+ * ogham(basic) = +ie(ogam):2
+ * ogham(laptop) = +ie(ogam):2
+ * ogham(is434) = +ie(ogam_is434):2
+ * ogham(is434laptop) = +ie(ogam_is434):2
+ * ori(basic) = +in(ori):2
+ * ro(de) = +ro(winkeys):2
+ * ro(us) = +ro(std):2
+ * ro(academic) = +ro(std):2
+ * ro(std_comma) = +ro(std):2
+ * ro(comma) = +ro(basic):2
+ * ru(os) = +ru(os_legacy):2
+ * pk(urd) = +pk(urd-phonetic):2
+ * sapmi(basic) = +no(smi):2
+ * sapmi(nodeadkeys) = +no(smi_nodeadkeys):2
+ * sapmi(sefi) = +fi(smi):2
+ * sin(phonetic-static) = +in(sin_phonetic):2
+ * syr(basic) = +sy(syc):2
+ * syr(phonetic) = +sy(syc_phonetic):2
+ * tam(INSCRIPT) = +in(tam):2
+ * tam(UNI) = +in(tam_unicode):2
+ * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):2
+ * tam(TAB) = +in(tam_TAB):2
+ * tam(TSCII) = +in(tam_TSCII):2
+ * tel(basic) = +in(tel):2
+ * yu(basic) = +srp(latin):2
+ * yu(unicode) = +srp(latinunicode):2
+ * yu(yz) = +srp(latinyz):2
+ * yu(unicodeyz) = +srp(latinunicodeyz):2
nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):2
nokiarx51 * = +nokia_vndr/rx-51(%l[2]%_v[2]):2
$sun $sun_custom = +sun_vndr/%l[2]%(v[2]):2
@@ -576,55 +570,55 @@
* yu = +srp%(v[3]):3
* fr-latin9 = +fr(latin9):3
* us_intl = +us(alt-intl):3
- * ben(basic) = +in(ben):3
- * ben(probhat) = +in(ben_probhat):3
- * dev(basic) = +in(deva):3
- * dvorak($dvoraklayouts) = +%v(dvorak):3
- * dvorak(basic) = +us(dvorak):3
- * dvorak(pl_basic) = +pl(dvorak):3
- * dvorak(pl) = +pl(dvorak_quotes):3
- * dvorak(pl_altquotes) = +pl(dvorak_altquotes):3
- * dzdwi(basic) = +bt(basic):3
- * fi(basic) = +fi(classic):3
- * ge(azerty_tskapo) = +fr(geo):3
- * guj(basic) = +in(guj):3
- * gur(basic) = +in(guru):3
- * ie(laptop) = +ie(basic):3
- * ie(CloGaelachLaptop) = +ie(CloGaelach):3
- * in(urd) = +in(urd-phonetic):3
- * iu(basic) = +ca(ike):3
- * lo(basic) = +la(basic):3
- * kan(basic) = +in(kan):3
- * mal(basic) = +in(mal):3
- * mal(mlplusnum) = +in(mal):3
- * ogham(basic) = +ie(ogam):3
- * ogham(laptop) = +ie(ogam):3
- * ogham(is434) = +ie(ogam_is434):3
- * ogham(is434laptop) = +ie(ogam_is434):3
- * ori(basic) = +in(ori):3
- * ro(de) = +ro(winkeys):3
- * ro(us) = +ro(std):3
- * ro(academic) = +ro(std):3
- * ro(std_comma) = +ro(std):3
- * ro(comma) = +ro(basic):3
- * ru(os) = +ru(os_legacy):3
- * pk(urd) = +pk(urd-phonetic):3
- * sapmi(basic) = +no(smi):3
- * sapmi(nodeadkeys) = +no(smi_nodeadkeys):3
- * sapmi(sefi) = +fi(smi):3
- * sin(phonetic-static) = +in(sin_phonetic):3
- * syr(basic) = +sy(syc):3
- * syr(phonetic) = +sy(syc_phonetic):3
- * tam(INSCRIPT) = +in(tam):3
- * tam(UNI) = +in(tam_unicode):3
- * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):3
- * tam(TAB) = +in(tam_TAB):3
- * tam(TSCII) = +in(tam_TSCII):3
- * tel(basic) = +in(tel):3
- * yu(basic) = +srp(latin):3
- * yu(unicode) = +srp(latinunicode):3
- * yu(yz) = +srp(latinyz):3
- * yu(unicodeyz) = +srp(latinunicodeyz):3
+ * ben(basic) = +in(ben):3
+ * ben(probhat) = +in(ben_probhat):3
+ * dev(basic) = +in(deva):3
+ * dvorak($dvoraklayouts) = +%v(dvorak):3
+ * dvorak(basic) = +us(dvorak):3
+ * dvorak(pl_basic) = +pl(dvorak):3
+ * dvorak(pl) = +pl(dvorak_quotes):3
+ * dvorak(pl_altquotes) = +pl(dvorak_altquotes):3
+ * dzdwi(basic) = +bt(basic):3
+ * fi(basic) = +fi(classic):3
+ * ge(azerty_tskapo) = +fr(geo):3
+ * guj(basic) = +in(guj):3
+ * gur(basic) = +in(guru):3
+ * ie(laptop) = +ie(basic):3
+ * ie(CloGaelachLaptop) = +ie(CloGaelach):3
+ * in(urd) = +in(urd-phonetic):3
+ * iu(basic) = +ca(ike):3
+ * lo(basic) = +la(basic):3
+ * kan(basic) = +in(kan):3
+ * mal(basic) = +in(mal):3
+ * mal(mlplusnum) = +in(mal):3
+ * ogham(basic) = +ie(ogam):3
+ * ogham(laptop) = +ie(ogam):3
+ * ogham(is434) = +ie(ogam_is434):3
+ * ogham(is434laptop) = +ie(ogam_is434):3
+ * ori(basic) = +in(ori):3
+ * ro(de) = +ro(winkeys):3
+ * ro(us) = +ro(std):3
+ * ro(academic) = +ro(std):3
+ * ro(std_comma) = +ro(std):3
+ * ro(comma) = +ro(basic):3
+ * ru(os) = +ru(os_legacy):3
+ * pk(urd) = +pk(urd-phonetic):3
+ * sapmi(basic) = +no(smi):3
+ * sapmi(nodeadkeys) = +no(smi_nodeadkeys):3
+ * sapmi(sefi) = +fi(smi):3
+ * sin(phonetic-static) = +in(sin_phonetic):3
+ * syr(basic) = +sy(syc):3
+ * syr(phonetic) = +sy(syc_phonetic):3
+ * tam(INSCRIPT) = +in(tam):3
+ * tam(UNI) = +in(tam_unicode):3
+ * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):3
+ * tam(TAB) = +in(tam_TAB):3
+ * tam(TSCII) = +in(tam_TSCII):3
+ * tel(basic) = +in(tel):3
+ * yu(basic) = +srp(latin):3
+ * yu(unicode) = +srp(latinunicode):3
+ * yu(yz) = +srp(latinyz):3
+ * yu(unicodeyz) = +srp(latinunicodeyz):3
nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):3
nokiarx51 * = +nokia_vndr/rx-51(%l[3]%_v[3]):3
$sun $sun_custom = +sun_vndr/%l[3]%(v[3]):3
@@ -657,55 +651,55 @@
* yu = +srp%(v[4]):4
* fr-latin9 = +fr(latin9):4
* us_intl = +us(alt-intl):4
- * ben(basic) = +in(ben):4
- * ben(probhat) = +in(ben_probhat):4
- * dev(basic) = +in(deva):4
- * dvorak($dvoraklayouts) = +%v(dvorak):4
- * dvorak(basic) = +us(dvorak):4
- * dvorak(pl_basic) = +pl(dvorak):4
- * dvorak(pl) = +pl(dvorak_quotes):4
- * dvorak(pl_altquotes) = +pl(dvorak_altquotes):4
- * dzdwi(basic) = +bt(basic):4
- * fi(basic) = +fi(classic):4
- * ge(azerty_tskapo) = +fr(geo):4
- * guj(basic) = +in(guj):4
- * gur(basic) = +in(guru):4
- * ie(laptop) = +ie(basic):4
- * ie(CloGaelachLaptop) = +ie(CloGaelach):4
- * in(urd) = +in(urd-phonetic):4
- * iu(basic) = +ca(ike):4
- * lo(basic) = +la(basic):4
- * kan(basic) = +in(kan):4
- * mal(basic) = +in(mal):4
- * mal(mlplusnum) = +in(mal):4
- * ogham(basic) = +ie(ogam):4
- * ogham(laptop) = +ie(ogam):4
- * ogham(is434) = +ie(ogam_is434):4
- * ogham(is434laptop) = +ie(ogam_is434):4
- * ori(basic) = +in(ori):4
- * ro(de) = +ro(winkeys):4
- * ro(us) = +ro(std):4
- * ro(academic) = +ro(std):4
- * ro(std_comma) = +ro(std):4
- * ro(comma) = +ro(basic):4
- * ru(os) = +ru(os_legacy):4
- * pk(urd) = +pk(urd-phonetic):4
- * sapmi(basic) = +no(smi):4
- * sapmi(nodeadkeys) = +no(smi_nodeadkeys):4
- * sapmi(sefi) = +fi(smi):4
- * sin(phonetic-static) = +in(sin_phonetic):4
- * syr(basic) = +sy(syc):4
- * syr(phonetic) = +sy(syc_phonetic):4
- * tam(INSCRIPT) = +in(tam):4
- * tam(UNI) = +in(tam_unicode):4
- * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):4
- * tam(TAB) = +in(tam_TAB):4
- * tam(TSCII) = +in(tam_TSCII):4
- * tel(basic) = +in(tel):4
- * yu(basic) = +srp(latin):4
- * yu(unicode) = +srp(latinunicode):4
- * yu(yz) = +srp(latinyz):4
- * yu(unicodeyz) = +srp(latinunicodeyz):4
+ * ben(basic) = +in(ben):4
+ * ben(probhat) = +in(ben_probhat):4
+ * dev(basic) = +in(deva):4
+ * dvorak($dvoraklayouts) = +%v(dvorak):4
+ * dvorak(basic) = +us(dvorak):4
+ * dvorak(pl_basic) = +pl(dvorak):4
+ * dvorak(pl) = +pl(dvorak_quotes):4
+ * dvorak(pl_altquotes) = +pl(dvorak_altquotes):4
+ * dzdwi(basic) = +bt(basic):4
+ * fi(basic) = +fi(classic):4
+ * ge(azerty_tskapo) = +fr(geo):4
+ * guj(basic) = +in(guj):4
+ * gur(basic) = +in(guru):4
+ * ie(laptop) = +ie(basic):4
+ * ie(CloGaelachLaptop) = +ie(CloGaelach):4
+ * in(urd) = +in(urd-phonetic):4
+ * iu(basic) = +ca(ike):4
+ * lo(basic) = +la(basic):4
+ * kan(basic) = +in(kan):4
+ * mal(basic) = +in(mal):4
+ * mal(mlplusnum) = +in(mal):4
+ * ogham(basic) = +ie(ogam):4
+ * ogham(laptop) = +ie(ogam):4
+ * ogham(is434) = +ie(ogam_is434):4
+ * ogham(is434laptop) = +ie(ogam_is434):4
+ * ori(basic) = +in(ori):4
+ * ro(de) = +ro(winkeys):4
+ * ro(us) = +ro(std):4
+ * ro(academic) = +ro(std):4
+ * ro(std_comma) = +ro(std):4
+ * ro(comma) = +ro(basic):4
+ * ru(os) = +ru(os_legacy):4
+ * pk(urd) = +pk(urd-phonetic):4
+ * sapmi(basic) = +no(smi):4
+ * sapmi(nodeadkeys) = +no(smi_nodeadkeys):4
+ * sapmi(sefi) = +fi(smi):4
+ * sin(phonetic-static) = +in(sin_phonetic):4
+ * syr(basic) = +sy(syc):4
+ * syr(phonetic) = +sy(syc_phonetic):4
+ * tam(INSCRIPT) = +in(tam):4
+ * tam(UNI) = +in(tam_unicode):4
+ * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):4
+ * tam(TAB) = +in(tam_TAB):4
+ * tam(TSCII) = +in(tam_TSCII):4
+ * tel(basic) = +in(tel):4
+ * yu(basic) = +srp(latin):4
+ * yu(unicode) = +srp(latinunicode):4
+ * yu(yz) = +srp(latinyz):4
+ * yu(unicodeyz) = +srp(latinunicodeyz):4
nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):4
nokiarx51 * = +nokia_vndr/rx-51(%l[4]%_v[4]):4
$sun $sun_custom = +sun_vndr/%l[4]%(v[4]):4
@@ -941,26 +935,32 @@
! layout option = symbols
$threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle)
* misc:typo = +typo(base)
+ * misc:apl = +apl(level3)
! layout[1] option = symbols
$threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1
* misc:typo = +typo(base):1
+ * misc:apl = +apl(level3):1
! layout[2] option = symbols
$threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2
* misc:typo = +typo(base):2
+ * misc:apl = +apl(level3):2
! layout[3] option = symbols
$threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3
* misc:typo = +typo(base):3
+ * misc:apl = +apl(level3):3
! layout[4] option = symbols
$threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4
* misc:typo = +typo(base):4
+ * misc:apl = +apl(level3):4
! option = symbols
grp:shift_toggle = +group(shifts_toggle)
altwin:menu = +altwin(menu)
+ altwin:menu_win = +altwin(menu_win)
altwin:meta_alt = +altwin(meta_alt)
altwin:alt_win = +altwin(alt_win)
altwin:ctrl_win = +altwin(ctrl_win)
@@ -1027,11 +1027,14 @@
lv3:lwin_switch = +level3(lwin_switch)
lv3:rwin_switch = +level3(rwin_switch)
lv3:enter_switch = +level3(enter_switch)
+ lv3:4_switch_isolated = +level3(4_switch_isolated)
+ lv3:9_switch_isolated = +level3(9_switch_isolated)
caps:capslock = +capslock(capslock)
caps:numlock = +capslock(numlock)
caps:shiftlock = +capslock(shiftlock)
caps:swapescape = +capslock(swapescape)
caps:escape = +capslock(escape)
+ caps:escape_shifted_capslock = +capslock(escape_shifted_capslock)
caps:backspace = +capslock(backspace)
caps:super = +capslock(super)
caps:hyper = +capslock(hyper)
@@ -1041,6 +1044,8 @@
ctrl:nocaps = +ctrl(nocaps)
ctrl:lctrl_meta = +ctrl(lctrl_meta)
ctrl:swapcaps = +ctrl(swapcaps)
+ ctrl:swapcaps_hyper = +ctrl(swapcaps_hyper)
+ ctrl:swapcaps_and_switch_layout = +ctrl(swapcaps_and_switch_layout)
ctrl:ac_ctrl = +ctrl(ac_ctrl)
ctrl:aa_ctrl = +ctrl(aa_ctrl)
ctrl:rctrl_ralt = +ctrl(rctrl_ralt)
@@ -1090,10 +1095,20 @@
nbsp:level4 = +nbsp(level4)
nbsp:level4n = +nbsp(level4n)
nbsp:level4nl = +nbsp(level4nl)
+ nbsp:zwnj2 = +nbsp(zwnj2)
+ nbsp:zwnj2zwj3 = +nbsp(zwnj2zwj3)
+ nbsp:zwnj2zwj3nb4 = +nbsp(zwnj2zwj3nb4)
+ nbsp:zwnj2nb3 = +nbsp(zwnj2nb3)
+ nbsp:zwnj2nb3s = +nbsp(zwnj2nb3s)
+ nbsp:zwnj2nb3zwj4 = +nbsp(zwnj2nb3zwj4)
+ nbsp:zwnj2nb3nnb4 = +nbsp(zwnj2nb3nnb4)
+ nbsp:zwnj3zwj4 = +nbsp(zwnj3zwj4)
japan:nicola_f_bs = +jp(nicola_f_bs)
japan:hztg_escape = +jp(hztg_escape)
- korean:ralt_rctrl = +kr(ralt_hangul)+kr(rctrl_hanja)
- korean:rctrl_ralt = +kr(rctrl_hangul)+kr(ralt_hanja)
+ korean:ralt_hangul = +kr(ralt_hangul)
+ korean:rctrl_hangul = +kr(rctrl_hangul)
+ korean:ralt_hanja = +kr(ralt_hanja)
+ korean:rctrl_hanja = +kr(rctrl_hanja)
kpdl:dot = +kpdl(dot)
kpdl:comma = +kpdl(comma)
kpdl:dotoss = +kpdl(dotoss)
@@ -1125,6 +1140,8 @@
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 = +level5(lsgt_switch)
+ lv5:ralt_switch = +level5(ralt_switch)
lv5:lsgt_switch_lock = +level5(lsgt_switch_lock)
lv5:ralt_switch_lock = +level5(ralt_switch_lock)
lv5:lwin_switch_lock = +level5(lwin_switch_lock)
@@ -1140,6 +1157,7 @@
grp_led:num = +lednum(group_lock)
grp_led:caps = +ledcaps(group_lock)
grp_led:scroll = +ledscroll(group_lock)
+ mod_led:compose = +ledcompose(compose)
japan:kana_lock = +japan(kana_lock)
caps:shiftlock = +ledcaps(shift_lock)
grab:break_actions = +xfree86(grab_break)
diff --git a/test/data/symbols/altwin b/test/data/symbols/altwin
index 7240ab8..038456b 100644
--- a/test/data/symbols/altwin
+++ b/test/data/symbols/altwin
@@ -74,6 +74,12 @@ xkb_symbols "menu" {
key <MENU> { [ Menu ] };
};
+// Menu is mapped to the right Win key.
+partial modifier_keys
+xkb_symbols "menu_win" {
+ key <MENU> { [ Super_R ] };
+};
+
// Layout for Tux key caps with additional right Alt key
partial modifier_keys
xkb_symbols "alt_super_win" {
diff --git a/test/data/symbols/ca b/test/data/symbols/ca
index 84f153c..41a914f 100644
--- a/test/data/symbols/ca
+++ b/test/data/symbols/ca
@@ -1,4 +1,4 @@
-default partial
+default partial
xkb_symbols "fr" {
name[Group1] = "French (Canada)";
@@ -170,7 +170,7 @@ xkb_symbols "multi" {
include "ca(fr)"
- name[Group1] = "Canadian Multilingual (1st part)";
+ name[Group1] = "Canadian (intl., 1st part)";
key <TLDE> { [ slash, backslash, bar ] };
key <AE01> { [ 1, exclam ] };
@@ -206,7 +206,7 @@ xkb_symbols "multi" {
partial
xkb_symbols "multi-2gr" {
- name[Group1] = "Canadian Multilingual (2nd part)";
+ name[Group1] = "Canadian (intl., 2nd part)";
key <TLDE> { [ NoSymbol, hyphen ] };
key <AE01> { [ onesuperior, exclamdown ] };
@@ -327,7 +327,7 @@ xkb_symbols "ike" {
partial
xkb_symbols "multix" {
- name[Group1] = "Canadian Multilingual";
+ name[Group1] = "Canadian (intl.)";
key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";
key <TLDE> { [ slash, backslash, bar, NoSymbol,
diff --git a/test/data/symbols/capslock b/test/data/symbols/capslock
index 6b85c3d..a082b75 100644
--- a/test/data/symbols/capslock
+++ b/test/data/symbols/capslock
@@ -35,6 +35,15 @@ xkb_symbols "escape" {
};
hidden partial modifier_keys
+xkb_symbols "escape_shifted_capslock" {
+ key <CAPS> {
+ type[Group1] = "TWO_LEVEL",
+ symbols[Group1] = [ Escape, Caps_Lock ],
+ actions[Group1] = [ NoAction(), LockMods(modifiers = Lock) ]
+ };
+};
+
+hidden partial modifier_keys
xkb_symbols "backspace" {
key <CAPS> { [ BackSpace ] };
};
diff --git a/test/data/symbols/ch b/test/data/symbols/ch
index a87f93a..626778c 100644
--- a/test/data/symbols/ch
+++ b/test/data/symbols/ch
@@ -1,4 +1,4 @@
-default partial alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin"
@@ -62,7 +62,7 @@ xkb_symbols "de_Sundeadkeys" {
partial alphanumeric_keys
xkb_symbols "de_sundeadkeys" {
include "ch(de_Sundeadkeys)"
- name[Group1]= "German (Switzerland, with Sun dead keys)";
+ name[Group1]= "German (Switzerland, Sun dead keys)";
};
partial alphanumeric_keys
@@ -104,7 +104,7 @@ xkb_symbols "fr_Sundeadkeys" {
partial alphanumeric_keys
xkb_symbols "fr_sundeadkeys" {
include "ch(fr_Sundeadkeys)"
- name[Group1]= "French (Switzerland, with Sun dead keys)";
+ name[Group1]= "French (Switzerland, Sun dead keys)";
};
partial alphanumeric_keys
@@ -153,7 +153,7 @@ xkb_symbols "de_mac" {
key <AD11> { [ udiaeresis, egrave, section, ydiaeresis ] };
key <AD12> { [ dead_diaeresis, exclam, grave, apostrophe ] };
key <AC01> { [ a, A, aring, Aring ] };
- key <AC02> { [ s, S, ssharp, NoSymbol ] };
+ key <AC02> { [ s, S, ssharp, U1E9E ] };
// ligature fl
key <AC03> { [ d, D, Greek_sigma, NoSymbol ] };
// partialderivative is not available here att
diff --git a/test/data/symbols/ctrl b/test/data/symbols/ctrl
index 8791b49..a9e97f5 100644
--- a/test/data/symbols/ctrl
+++ b/test/data/symbols/ctrl
@@ -20,6 +20,25 @@ xkb_symbols "swapcaps" {
modifier_map Lock { <LCTL> };
};
+// Swap the functions of the CapsLock key and the left Ctrl key,
+// but make the Ctrl key a 'Hyper' modifier
+partial modifier_keys
+xkb_symbols "swapcaps_hyper" {
+ replace key <CAPS> { [ Control_L ] };
+ replace key <LCTL> { [ Hyper_L ] };
+ modifier_map Control { <CAPS> };
+ modifier_map Mod3 { <LCTL> };
+};
+
+// Set CapsLock to left Ctrl and left Ctrl to switch layout.
+partial modifier_keys
+xkb_symbols "swapcaps_and_switch_layout" {
+ replace key <CAPS> { [ Control_L ] };
+ replace key <LCTL> { [ ISO_Next_Group ] };
+ modifier_map Control { <CAPS> };
+ modifier_map Lock { <LCTL> };
+};
+
// Move Ctrl to the leftmost key on the middle row and CapsLock to the
// leftmost key on the bottom row. Only works if the geometry or keycodes
// file has defined appropriate aliases for the keys in question.
diff --git a/test/data/symbols/cz b/test/data/symbols/cz
index 3407e92..8fbff0e 100644
--- a/test/data/symbols/cz
+++ b/test/data/symbols/cz
@@ -1,4 +1,4 @@
-default partial alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
// This layout conforms to a new Czech compromise standard
@@ -108,6 +108,74 @@ xkb_symbols "qwerty_bksl" {
key <BKSL> { [ backslash, bar, slash, NoSymbol ] };
};
+partial alphanumeric_keys
+xkb_symbols "qwerty-mac" {
+
+ // This layout corresponds to the Apple's Czech - QWERTY.
+ // 2018 by Jakub Jirutka <jakub@jirutka.cz>
+
+ include "latin"
+ name[Group1]= "Czech (QWERTY, Macintosh)";
+
+ key <TLDE> { [ less, greater, lessthanequal, greaterthanequal]};
+ key <AE01> { [ plus, 1, grave, notsign ] };
+ key <AE02> { [ ecaron, 2, at, enfilledcircbullet]};
+ key <AE03> { [ scaron, 3, numbersign, notequal ] };
+ key <AE04> { [ ccaron, 4, dollar, sterling ] };
+ key <AE05> { [ rcaron, 5, asciitilde, U25CA ] };
+ key <AE06> { [ zcaron, 6, asciicircum, dagger ] };
+ key <AE07> { [ yacute, 7, ampersand, paragraph ] };
+ key <AE08> { [ aacute, 8, asterisk, division ] };
+ key <AE09> { [ iacute, 9, braceleft, guillemotleft] };
+ key <AE10> { [ eacute, 0, braceright, guillemotright]};
+ key <AE11> { [ equal, percent, dead_abovering, dead_cedilla]};
+ key <AE12> { [dead_acute, dead_caron, dead_circumflex, dead_macron]};
+
+ key <AD01> { [ q, Q, NoSymbol, NoSymbol ] };
+ key <AD02> { [ w, W, eabovedot, Eabovedot ] };
+ key <AD03> { [ e, E, eogonek, Eogonek ] };
+ key <AD04> { [ r, R, EuroSign, registered ] };
+ key <AD05> { [ t, T, NoSymbol, trademark ] };
+ key <AD06> { [ y, Y, NoSymbol, NoSymbol ] };
+ key <AD07> { [ u, U, NoSymbol, NoSymbol ] };
+ key <AD08> { [ i, I, NoSymbol, NoSymbol ] };
+ key <AD09> { [ o, O, NoSymbol, NoSymbol ] };
+ key <AD10> { [ p, P, NoSymbol, NoSymbol ] };
+
+ key <AD11> { [ uacute, slash, bracketleft, less ] };
+ key <AD12> { [parenright, parenleft, bracketright, greater ] };
+
+ key <AC01> { [ a, A, aogonek, Aogonekl ] };
+ key <AC02> { [ s, S, ssharp, U2211 ] };
+ key <AC03> { [ d, D, partialderivate, U2206 ] };
+ key <AC04> { [ f, F, NoSymbol, NoSymbol ] };
+ key <AC05> { [ g, G, NoSymbol, NoSymbol ] };
+ key <AC06> { [ h, H, leftsinglequotemark, leftdoublequotemark]};
+ key <AC07> { [ j, J, rightsinglequotemark, rightdoublequotemark]};
+ key <AC08> { [ k, K, NoSymbol, NoSymbol ] };
+ key <AC09> { [ l, L, lstroke, Lstroke ] };
+
+ key <AC10> { [ uring, quotedbl, semicolon, ellipsis ] };
+ key <AC11> { [ section, exclam, apostrophe, dead_tilde ] };
+ key <BKSL> { [dead_diaeresis, grave, dead_diaeresis, dead_doubleacute]};
+
+ key <LSGT> { [ backslash, bar, NoSymbol, NoSymbol ] };
+ key <AB01> { [ z, Z, zabovedot, Zabovedot ] };
+ key <AB02> { [ x, X, NoSymbol, NoSymbol ] };
+ key <AB03> { [ c, C, NoSymbol, copyright ] };
+ key <AB04> { [ v, V, NoSymbol, squareroot ] };
+ key <AB05> { [ b, B, NoSymbol, NoSymbol ] };
+ key <AB06> { [ n, N, singlelowquotemark, doublelowquotemark]};
+ key <AB07> { [ m, M, NoSymbol, NoSymbol ] };
+ key <AB08> { [ comma, question, less, lessthanequal] };
+ key <AB09> { [ period, colon, greater, greaterthanequal]};
+ key <AB10> { [ minus, underscore, endash, emdash ] };
+
+ key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
+
+ include "level3(ralt_switch)"
+};
+
partial alphanumeric_keys alternate_group
xkb_symbols "ucw" {
@@ -118,7 +186,7 @@ xkb_symbols "ucw" {
name[Group1]= "Czech (UCW, only accented letters)";
key <AB01> { [zcaron, Zcaron ] };
- key <AB02> { [ssharp ] };
+ key <AB02> { [ssharp, U1E9E ] };
key <AB03> { [ccaron, Ccaron ] };
key <AB04> { [ccedilla, Ccedilla ] };
key <AB05> { [ntilde, Ntilde ] };
@@ -253,3 +321,163 @@ partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/cz(sun_type6)"
};
+
+xkb_symbols "prog" {
+ // cz-prog 1.0 2019-05-15 by Viktor Grešák <vgresak@gmail.com> and Tomáš Hudec <Tommy.Hudec@gmail.com>
+ //
+ // Programmer keyboard. Based on the US layout with accented Czech letters and dead keys.
+ // Using AltGr and a key from the 1st row generates original level 2 US key as level 3 except TLDE and AE12.
+ // Using AltGr+Shift on accented letters generates its uppercase variant.
+ // Using AltGr or AltGr+Shift on letters which have accent in Czech but are not on the 1st row directly accessible generate accented letters,
+ // i.e. [d, D], [t, T], [n, N], [o, O] generate with AltGr and AltGr+Shift: [dcaron, Dcaron], [tcaron, Tcaron], [ncaron, Ncaron], [oacute, Oacute].
+ // Other Czech letters besides alphanumeric keys (like uacute, uring) are generated using AltGr.
+
+ name[Group1]="Czech (programming)";
+
+ key <AB01> { [ z, Z ] };
+ key <AB02> { [ x, X ] };
+ key <AB03> { [ c, C ] };
+ key <AB04> { [ v, V ] };
+ key <AB05> { [ b, B ] };
+ key <AB06> { [ n, N, ncaron, Ncaron ] };
+ key <AB07> { [ m, M ] };
+ key <AB08> { [ comma, less, multiply ] };
+ key <AB09> { [ period, greater, division ] };
+ key <AB10> { [ slash, question, dead_abovedot ] };
+ key <AC01> { [ a, A ] };
+ key <AC02> { [ s, S ] };
+ key <AC03> { [ d, D, dcaron, Dcaron ] };
+ key <AC04> { [ f, F ] };
+ key <AC05> { [ g, G ] };
+ key <AC06> { [ h, H ] };
+ key <AC07> { [ j, J ] };
+ key <AC08> { [ k, K ] };
+ key <AC09> { [ l, L ] };
+ key <AC10> { [ semicolon, colon, uring, Uring ] };
+ key <AC11> { [ apostrophe, quotedbl, section ] };
+ key <AD01> { [ q, Q ] };
+ key <AD02> { [ w, W ] };
+ key <AD03> { [ e, E ] };
+ key <AD04> { [ r, R ] };
+ key <AD05> { [ t, T, tcaron, Tcaron ] };
+ key <AD06> { [ y, Y ] };
+ key <AD07> { [ u, U ] };
+ key <AD08> { [ i, I ] };
+ key <AD09> { [ o, O, oacute, Oacute ] };
+ key <AD10> { [ p, P ] };
+ key <AD11> { [ bracketleft, braceleft, uacute, Uacute ] };
+ key <AD12> { [ bracketright, braceright ] };
+ key <AE01> { [ plus, 1, exclam, NoSymbol ] };
+ key <AE02> { [ ecaron, 2, at, Ecaron ] };
+ key <AE03> { [ scaron, 3, numbersign, Scaron ] };
+ key <AE04> { [ ccaron, 4, dollar, Ccaron ] };
+ key <AE05> { [ rcaron, 5, percent, Rcaron ] };
+ key <AE06> { [ zcaron, 6, asciicircum, Zcaron ] };
+ key <AE07> { [ yacute, 7, ampersand, Yacute ] };
+ key <AE08> { [ aacute, 8, asterisk, Aacute ] };
+ key <AE09> { [ iacute, 9, parenleft, Iacute ] };
+ key <AE10> { [ eacute, 0, parenright, Eacute ] };
+ key <AE11> { [ equal, minus, underscore, U2212 ] };
+ key <AE12> { [ dead_acute, dead_caron, plusminus, notequal ] };
+ key <BKSL> { [ backslash, bar, dead_diaeresis ] };
+ key <BKSP> { [ BackSpace, BackSpace ] };
+ key <CAPS> { [ Caps_Lock ] };
+ key <COMP> { [ Menu, Multi_key ] };
+ key <LALT> { [ Alt_L, Meta_L ] };
+ key <LCTL> { [ Control_L ] };
+ key <LFSH> { [ Shift_L ] };
+ key <LWIN> { [ Super_L ] };
+ key <RALT> { [ ISO_Level3_Shift ] };
+ key <RCTL> { [ Control_R ] };
+ key <RTRN> { [ Return ] };
+ key <RTSH> { [ Shift_R ] };
+ key <RWIN> { [ Super_R ] };
+ key <SPCE> { [ space ] };
+ key <TAB> { [ Tab, ISO_Left_Tab ] };
+ key <TLDE> { [ grave, asciitilde ] };
+
+ include "level3(ralt_switch)"
+};
+
+xkb_symbols "typo" {
+ // cz-typo 1.0 2019-05-15 by Viktor Grešák <vgresak@gmail.com> and Tomáš Hudec <Tommy.Hudec@gmail.com>
+ //
+ // Contains typographic symbols in third and fourth level.
+ // It is intended to be used in conjuction with other existing layout, e.g. setxkbmap -symbols "pc+cz(basic)+cz(typo)+inet(evdev)"
+
+ name[Group1]="Czech (typographic)";
+
+ key <AB01> { [ NoSymbol, NoSymbol, degree, U2300 ] };
+ key <AB02> { [ NoSymbol, NoSymbol, multiply, U22C5 ] };
+ key <AB03> { [ NoSymbol, NoSymbol, ampersand, copyright ] };
+ key <AB04> { [ NoSymbol, NoSymbol, at, ordfeminine ] };
+ key <AB05> { [ NoSymbol, NoSymbol, enfilledcircbullet, enopencircbullet ] };
+ key <AB07> { [ NoSymbol, NoSymbol, U203A, U2039 ] };
+ key <AB08> { [ NoSymbol, NoSymbol, doublelowquotemark, leftdoublequotemark ] };
+ key <AB09> { [ NoSymbol, NoSymbol, ellipsis, rightdoublequotemark ] };
+ key <AB10> { [ NoSymbol, NoSymbol, endash, emdash ] };
+ key <AC04> { [ NoSymbol, NoSymbol, UFB00, UFB05 ] };
+ key <AC06> { [ NoSymbol, NoSymbol, U2010, U2011 ] };
+ key <AC07> { [ NoSymbol, NoSymbol, guillemotright, guillemotleft ] };
+ key <AC08> { [ NoSymbol, NoSymbol, dagger, doubledagger ] };
+ key <AC09> { [ NoSymbol, NoSymbol, UFB02, UFB04 ] };
+ key <AC11> { [ NoSymbol, NoSymbol, NoSymbol, UFB03 ] };
+ key <AD04> { [ NoSymbol, NoSymbol, U2030, registered ] };
+ key <AD06> { [ NoSymbol, NoSymbol, leftarrow ] };
+ key <AD07> { [ NoSymbol, NoSymbol, downarrow, uparrow ] };
+ key <AD08> { [ NoSymbol, NoSymbol, rightarrow, UFB01 ] };
+ key <AD10> { [ NoSymbol, NoSymbol, minutes, seconds ] };
+ key <AE01> { [ NoSymbol, NoSymbol, NoSymbol, rightsinglequotemark ] };
+ key <AE11> { [ NoSymbol, NoSymbol, underscore, U2212 ] };
+ key <SPCE> { [ space, space, space, nobreakspace ] };
+ key <TLDE> { [ NoSymbol, NoSymbol, singlelowquotemark, leftsinglequotemark ] };
+};
+
+xkb_symbols "coder" {
+
+ // US layout with Czech chars under AltGr
+ // for touch-typing programmers who need to write Czech occasionally
+ // https://github.com/michalkahle/czech-coder-xkb
+
+ include "us"
+ name[Group1]= "Czech (coder)";
+
+ key <TLDE>{[ grave, asciitilde, semicolon, dead_abovering ]};
+ key <AE02>{[ 2, at, ecaron, Ecaron ]};
+ key <AE03>{[ 3, numbersign, scaron, Scaron ]};
+ key <AE04>{[ 4, dollar, ccaron, Ccaron ]};
+ key <AE05>{[ 5, percent, rcaron, Rcaron ]};
+ key <AE06>{[ 6, asciicircum, zcaron, Zcaron ]};
+ key <AE07>{[ 7, ampersand, yacute, Yacute ]};
+ key <AE08>{[ 8, asterisk, aacute, Aacute ]};
+ key <AE09>{[ 9, parenleft, iacute, Iacute ]};
+ key <AE10>{[ 0, parenright, eacute, Eacute ]};
+ key <AE12>{[ equal, plus, dead_acute, dead_caron ]};
+
+ key <AD03>{[ e, E, e, EuroSign ]};
+ key <AD11>{[ bracketleft, braceleft, uacute, Uacute ]};
+
+ key <AC10>{[ semicolon, colon, uring, Uring ]};
+ key <AC11>{[ apostrophe, quotedbl, section, quotedbl ]};
+ key <BKSL>{[ backslash, bar, dead_diaeresis, apostrophe ]};
+
+ include "level3(ralt_switch)"
+};
+
+xkb_symbols "prog_typo" {
+ // cz-prog-typo 1.0 2019-06-17 by Viktor Grešák <vgresak@gmail.com> and Tomáš Hudec <Tommy.Hudec@gmail.com>
+ //
+ // Programmer + Typographic keyboard. Based on the US layout with accented Czech letters and dead keys.
+ // Using AltGr and a key from the 1st row generates original level 2 US key as level 3 except TLDE and AE12.
+ // Using AltGr+Shift on accented letters generates its uppercase variant.
+ // Using AltGr or AltGr+Shift on letters which have accent in Czech but are not on the 1st row directly accessible generate accented letters,
+ // i.e. [d, D], [t, T], [n, N], [o, O] generate with AltGr and AltGr+Shift: [dcaron, Dcaron], [tcaron, Tcaron], [ncaron, Ncaron], [oacute, Oacute].
+ // Other Czech letters besides alphanumeric keys (like uacute, uring) are generated using AltGr.
+ //
+ // Contains typographic symbols in third and fourth level.
+
+ name[Group1]="Czech (programming, typographic)";
+
+ include "cz(prog)"
+ include "cz(typo)"
+};
diff --git a/test/data/symbols/de b/test/data/symbols/de
index c025a1c..8c1083f 100644
--- a/test/data/symbols/de
+++ b/test/data/symbols/de
@@ -131,7 +131,7 @@ xkb_symbols "T3" {
key <AD11> { [ udiaeresis, Udiaeresis, dead_horn, NoSymbol, U017F, dead_abovering, dead_grave, NoSymbol ] };
key.type[Group1] = "EIGHT_LEVEL";
key <AD12> { [ plus, asterisk, asciitilde, NoSymbol, dead_tilde, dead_macron, at, NoSymbol ] };
-
+
key.type[Group1] = "ONE_LEVEL";
key <CAPS> { [ Caps_Lock ] };
key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC";
@@ -157,7 +157,7 @@ xkb_symbols "T3" {
key <AB04> { [ v, V, guillemotleft, NoSymbol, leftdoublequotemark, leftsinglequotemark, U2039, NoSymbol ] };
key <AB05> { [ b, B, U2039, NoSymbol, rightdoublequotemark, rightsinglequotemark, U203A, NoSymbol ] };
key <AB06> { [ n, N, endash, NoSymbol, U019E, U0220, endash, NoSymbol ] };
- key <AB07> { [ m, M, Greek_mu, NoSymbol, mu, masculine, emdash, NoSymbol ] };
+ key <AB07> { [ m, M, mu, NoSymbol, mu, masculine, emdash, NoSymbol ] };
key.type[Group1] = "EIGHT_LEVEL";
key <AB08> { [ comma, semicolon, U02BB, NoSymbol, ellipsis, multiply, dollar, NoSymbol ] };
key <AB09> { [ period, colon, U200C, NoSymbol, periodcentered, division, numbersign, NoSymbol ] };
@@ -284,7 +284,7 @@ xkb_symbols "sundeadkeys" {
include "de(Sundeadkeys)"
- name[Group1]="German (with Sun dead keys)";
+ name[Group1]="German (Sun dead keys)";
};
@@ -764,51 +764,6 @@ xkb_symbols "pl" {
};
partial alphanumeric_keys
-xkb_symbols "htcdream" {
- include "inet(htcdream)"
-
- name[Group1]= "German";
-
- //second row
- key <AD01> { [ q, Q, Tab, Tab ] };
- key <AD02> { [ w, W, grave, grave ] };
- key <AD03> { [ e, E, EuroSign, EuroSign ] };
- key <AD04> { [ r, R, underscore, underscore ] };
- key <AD05> { [ t, T, sterling, sterling] };
- key <AD06> { [ z, Z, division, division ] };
- key <AD07> { [ u, U, udiaeresis, udiaeresis ] };
- key <AD08> { [ i, I, minus, minus ] };
- key <AD09> { [ o, O, odiaeresis, odiaeresis ] };
- key <AD10> { [ p, P, equal, equal ] };
-
- //third row
- key <AC01> { [ a, A, adiaeresis, adiaeresis ] };
- key <AC02> { [ s, S, ssharp, ssharp] };
- key <AC03> { [ d ,D, backslash, backslash ] };
- key <AC04> { [ f, F, braceleft, braceleft ] };
- key <AC05> { [ g, G, braceright, braceright ] };
- key <AC06> { [ h, H, multiply, multiply ] };
- key <AC07> { [ j, J, colon, colon ] };
- key <AC08> { [ k, K, plus, plus ] };
- key <AC09> { [ l, L, apostrophe, apostrophe ] };
-
- //forth row
- key <AB01> { [ y, Y, bar, bar ] };
- key <AB02> { [ x, X, bracketleft, bracketleft ] };
- key <AB03> { [ c, C, bracketright, bracketright ] };
- key <AB04> { [ v, V, less, less ] };
- key <AB05> { [ b, B, greater, greater ] };
- key <AB06> { [ n, N, semicolon, semicolon ] };
- key <AB07> { [ m, M, quotedbl, quotedbl ] };
- key <AB08> { [ comma, comma, question, question ] };
-
- //fifth row
- key <FK15> { [ at, at, asciitilde, asciitilde ] };
-
- include "level3(alt_switch)"
-};
-
-partial alphanumeric_keys
xkb_symbols "tr" {
// add turkish-specific letters to the basic German layout.
@@ -832,10 +787,10 @@ partial alphanumeric_keys
xkb_symbols "us" {
include "us"
- name[Group1]="German (US, with German letters)";
+ name[Group1]="German (US)";
key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
- key <AC02> { [ s, S, ssharp, ssharp ] };
+ key <AC02> { [ s, S, ssharp, U1E9E ] };
key <AC10> { [ semicolon, colon, odiaeresis, Odiaeresis ] };
key <AC11> { [ apostrophe, quotedbl, adiaeresis, Adiaeresis ] };
key <AD03> { [ e, E, EuroSign, EuroSign ] };
@@ -854,7 +809,7 @@ xkb_symbols "hu" {
// modify the basic German layout to not have any dead keys and add Hungarian letters
include "de(basic)"
- name[Group1]="German (with Hungarian letters and no dead keys)";
+ name[Group1]="German (with Hungarian letters, no dead keys)";
key <AB01> { [ y, Y, guillemotleft, less ] };
key <AC10> { [odiaeresis, Odiaeresis, eacute, Eacute ] };
@@ -1055,7 +1010,7 @@ xkb_symbols "bone_eszett_home" {
include "de(bone_eszett_home_base)"
- name[Group1]= "German (Bone, eszett home row)";
+ name[Group1]= "German (Bone, eszett in the home row)";
include "shift(both_capslock)"
include "level3(caps_switch)"
@@ -1111,7 +1066,7 @@ xkb_symbols "neo_qwertz" {
include "de(neo_qwertz_base)"
- name[Group1]= "German (Neo qwertz)";
+ name[Group1]= "German (Neo, QWERTZ)";
include "shift(both_capslock)"
include "level3(caps_switch)"
@@ -1134,7 +1089,7 @@ xkb_symbols "neo_qwerty" {
include "de(neo_qwerty_base)"
- name[Group1]= "German (Neo qwerty)";
+ name[Group1]= "German (Neo, QWERTY)";
include "shift(both_capslock)"
include "level3(caps_switch)"
@@ -1146,7 +1101,7 @@ xkb_symbols "neo_qwerty" {
partial alphanumeric_keys
xkb_symbols "lld" {
include "de(basic)"
- name[Group1] = "German Ladin";
+ name[Group1] = "German (Ladin)";
key <AD10> { [ p, P, ediaeresis, Ediaeresis ] };
diff --git a/test/data/symbols/empty b/test/data/symbols/empty
index acdd677..cae3303 100644
--- a/test/data/symbols/empty
+++ b/test/data/symbols/empty
@@ -1,4 +1,4 @@
-default partial alphanumeric_keys modifier_keys
+default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
name[Group1]= "Empty";
};
diff --git a/test/data/symbols/il b/test/data/symbols/il
index 67487c1..dcd640c 100644
--- a/test/data/symbols/il
+++ b/test/data/symbols/il
@@ -7,7 +7,7 @@
// This implementation extends the standard with Yiddish digraphs
// (a common extension) and Nun Hafukha (a fun character).
-default partial alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
// uses the kbd layout in use in Israel.
diff --git a/test/data/symbols/in b/test/data/symbols/in
index 79d5099..b3a5ca9 100644
--- a/test/data/symbols/in
+++ b/test/data/symbols/in
@@ -1,5 +1,7 @@
// This layout includes all Indian layouts, including:
-// - Devanagari (Hindi, Marathi, Sanskrit)
+// - Hindi
+// - Marathi
+// - Sanskrit
// - Bangla
// - Gujarati
// - Kannada
@@ -28,7 +30,7 @@
// based on a keyboard map from an 'xkb/symbols/dev' file
// Devangari is the default. Kill me if I am wrong:)
-default partial alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "deva" {
// March 2004 -- David Holl <smyrph+dev_xkb@ece.wpi.edu>
name[Group1]="Indian";
@@ -248,20 +250,22 @@ xkb_symbols "ben" {
xkb_symbols "ben_probhat" {
name[Group1]= "Bangla (India, Probhat)";
+ key.type="FOUR_LEVEL";
+
key <ESC> { [ Escape ] };
// numbers
key <TLDE> { [ U200D, asciitilde ] };
- key <AE01> { [ U09E7, exclam ] };
- key <AE02> { [ U09E8, at ] };
- key <AE03> { [ U09E9, numbersign ] };
- key <AE04> { [ U09EA, U09F3 ] };
+ key <AE01> { [ U09E7, exclam, U09F4 ] };
+ key <AE02> { [ U09E8, at, U09F5 ] };
+ key <AE03> { [ U09E9, numbersign, U09F6 ] };
+ key <AE04> { [ U09EA, U09F3, U09F7, U09F2 ] };
key <AE05> { [ U09EB, percent ] };
key <AE06> { [ U09EC, asciicircum ] };
- key <AE07> { [ U09ED, U099E ] };
+ key <AE07> { [ U09ED, U099E, U09FA ] };
key <AE08> { [ U09EE, U09CE ] };
key <AE09> { [ U09EF, parenleft ] };
- key <AE10> { [ U09E6, parenright ] };
+ key <AE10> { [ U09E6, parenright, U09F8, U09F9 ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus ] };
key <BKSP> { [ BackSpace ] };
@@ -279,17 +283,17 @@ xkb_symbols "ben_probhat" {
key <AD09> { [ U0993, U0994 ] };
key <AD10> { [ U09AA, U09AB ] };
key <AD11> { [ U09C7, U09C8 ] };
- key <AD12> { [ U09CB, U09CC ] };
+ key <AD12> { [ U09CB, U09CC, U09D7 ] };
key <RTRN> { [ Return ] };
// caps, a to '
// key <CAPS> { [ Caps_Lock ] };
- key <AC01> { [ U09BE, U0985 ] };
- key <AC02> { [ U09B8, U09B7 ] };
- key <AC03> { [ U09A1, U09A2 ] };
+ key <AC01> { [ U09BE, U0985, U098C, U09E0 ] };
+ key <AC02> { [ U09B8, U09B7, U09E1, U09E3 ] };
+ key <AC03> { [ U09A1, U09A2, U09C4, U09E2 ] };
key <AC04> { [ U09A4, U09A5 ] };
key <AC05> { [ U0997, U0998 ] };
- key <AC06> { [ U09B9, U0983 ] };
+ key <AC06> { [ U09B9, U0983, U09BD ] };
key <AC07> { [ U099C, U099D ] };
key <AC08> { [ U0995, U0996 ] };
key <AC09> { [ U09B2, U0982 ] };
@@ -306,7 +310,7 @@ xkb_symbols "ben_probhat" {
key <AB06> { [ U09A8, U09A3 ] };
key <AB07> { [ U09AE, U0999 ] };
key <AB08> { [ comma, U09C3 ] };
- key <AB09> { [ U0964, U0981 ] };
+ key <AB09> { [ U0964, U0981, U09BC ] };
key <AB10> { [ U09CD, question ] };
key <BKSL> { [ U200C, U0965 ] };
@@ -465,7 +469,7 @@ xkb_symbols "ben_inscript" {
};
xkb_symbols "ben_gitanjali" {
- name[Group1]= "Bangla (India, Uni Gitanjali)";
+ name[Group1]= "Bangla (India, Gitanjali)";
key <ESC> { [ Escape ] };
// numbers
@@ -1053,7 +1057,7 @@ xkb_symbols "ori" {
// INSCRIPT
partial alphanumeric_keys
xkb_symbols "tam" {
- name[Group1]= "Tamil";
+ name[Group1]= "Tamil (Inscript)";
key <TLDE> { [ U0BCA, U0B92 ] };
@@ -1118,7 +1122,7 @@ xkb_symbols "tam" {
};
partial alphanumeric_keys
-xkb_symbols "tam_unicode" {
+xkb_symbols "tam_tamilnet" {
// Description: A keymap based on the TamilNet'99 typewriter keyboard
// Encoding: Unicode (http://www.unicode.org)
@@ -1128,7 +1132,7 @@ xkb_symbols "tam_unicode" {
// Date : Fri Sep 4 11:32:00 CST 2009
// Mapping:
- name[Group1]= "Tamil (Unicode)";
+ name[Group1]= "Tamil (TamilNet '99)";
// granthas
key <TLDE> { [ apostrophe, asciitilde ] };
@@ -1184,7 +1188,7 @@ xkb_symbols "tam_unicode" {
};
partial alphanumeric_keys
-xkb_symbols "tam_keyboard_with_numerals" {
+xkb_symbols "tam_tamilnet_with_tam_nums" {
// Description: A keymap based on the TamilNet'99 typewriter keyboard
// Encoding: Unicode (http://www.unicode.org)
@@ -1193,7 +1197,7 @@ xkb_symbols "tam_keyboard_with_numerals" {
// Date : Fri Sep 4 11:33:00 CST 2009
// Mapping:
- name[Group1]= "Tamil (keyboard with numerals)";
+ name[Group1]= "Tamil (TamilNet '99 with Tamil numerals)";
// Mainly numbers.
key <TLDE> { [ apostrophe, asciitilde ] };
@@ -1249,7 +1253,7 @@ xkb_symbols "tam_keyboard_with_numerals" {
};
partial alphanumeric_keys
-xkb_symbols "tam_TSCII" {
+xkb_symbols "tam_tamilnet_TSCII" {
// Description : A Tamil typewrite-style keymap
// loosely based on TamilNet'99 reommendations
@@ -1257,7 +1261,7 @@ xkb_symbols "tam_TSCII" {
// Author : Thuraiappah Vaseeharan <vasee@ieee.org>
// Last Modified: Sat Jan 5 17:11:26 CST 2002
- name[Group1]= "Tamil (TSCII typewriter)";
+ name[Group1]= "Tamil (TamilNet '99, TSCII encoding)";
key <AE01> { [ 0x10000b7, 0x10000a4 ] }; // aytham
key <AE02> { [ 0x1000082, 0x10000a5 ] }; // shri
@@ -1305,14 +1309,14 @@ xkb_symbols "tam_TSCII" {
};
partial alphanumeric_keys
-xkb_symbols "tam_TAB" {
+xkb_symbols "tam_tamilnet_TAB" {
// Description: A keymap based on the TamilNet'99 typewriter keyboard
// Encoding: TAB (http://www.tamilnet99.org)
// Author: Thuraiappah Vaseeharan <t_vasee@yahoo.com>
// Date : Sun Aug 12 02:23:00 CDT 2001
- name[Group1]= "Tamil (TAB typewriter)";
+ name[Group1]= "Tamil (TamilNet '99, TAB encoding)";
// numeral row
key <AE01> { [ 0x10000e7, 0x10000a7 ] } ;
@@ -1517,7 +1521,7 @@ xkb_symbols "urd-phonetic3" {
partial alphanumeric_keys
xkb_symbols "urd-winkeys" {
include "pk(urd-nla)"
- name[Group1]= "Urdu (Win keys)";
+ name[Group1]= "Urdu (Windows)";
};
// based on a keyboard map from an 'xkb/symbols/gur' file
@@ -1910,7 +1914,7 @@ xkb_symbols "mal_enhanced" {
//
partial alphanumeric_keys
xkb_symbols "hin-kagapa" {
- name[Group1] = "Hindi (KaGaPa phonetic)";
+ name[Group1] = "Hindi (KaGaPa, phonetic)";
key.type="FOUR_LEVEL";
// Roman digits
@@ -1976,14 +1980,14 @@ xkb_symbols "hin-kagapa" {
partial alphanumeric_keys
xkb_symbols "san-kagapa" {
include "in(hin-kagapa)"
- name[Group1] = "Sanskrit (KaGaPa phonetic)";
+ name[Group1] = "Sanskrit (KaGaPa, phonetic)";
};
// Marathi uses Devanagari layout of Hindi
partial alphanumeric_keys
xkb_symbols "mar-kagapa" {
include "in(hin-kagapa)"
- name[Group1] = "Marathi (KaGaPa phonetic)";
+ name[Group1] = "Marathi (KaGaPa, phonetic)";
};
@@ -2001,7 +2005,7 @@ xkb_symbols "mar-kagapa" {
//
partial alphanumeric_keys
xkb_symbols "kan-kagapa" {
- name[Group1] = "Kannada (KaGaPa phonetic)";
+ name[Group1] = "Kannada (KaGaPa, phonetic)";
key.type="FOUR_LEVEL";
// Roman digits
@@ -2078,7 +2082,7 @@ xkb_symbols "kan-kagapa" {
//
partial alphanumeric_keys
xkb_symbols "tel-kagapa" {
- name[Group1] = "Telugu (KaGaPa phonetic)";
+ name[Group1] = "Telugu (KaGaPa, phonetic)";
key.type="FOUR_LEVEL";
// Roman digits
@@ -2205,3 +2209,191 @@ xkb_symbols "eeyek" {
include "level3(ralt_switch)"
};
+
+// This layout is developed by Niranjan Tambe in July 2019
+// for typing Indic languages in International Phonetic Alphabet (IPA).
+
+partial alphanumeric_keys modifier_keys
+xkb_symbols "iipa" {
+
+ name[Group1]= "Indic IPA (IIPA)";
+ key <AE01> { [ 1, exclam] };
+ key <AE02> { [ 2, at] };
+ key <AE03> { [ 3, numbersign] };
+ key <AE04> { [ 4, U20B9] };
+ key <AE05> { [ 5, percent] };
+ key <AE06> { [ 6, asciicircum] };
+ key <AE07> { [ 7, ampersand] };
+ key <AE08> { [ 8, asterisk] };
+ key <AE09> { [ 9, parenleft] };
+ key <AE10> { [ 0, parenright] };
+ key <AE11> { [ minus, underscore] };
+ key <AE12> { [ equal, plus] };
+
+ key <AD01> { [ U02B0, U02B1] }; // [ʰ], [ʱ]
+ key <AD02> { [ U00E6, q] }; // [æ], [q] found in Urdu
+ key <AD03> { [ a, U028B] }; // [a], [ʋ]
+ key <AD04> { [ i, U026A] }; // [i] [ɪ]
+ key <AD05> { [ u, U026F] }; // [u] [ɯ] found in Tamil
+ key <AD06> { [ b, Y] }; // [b]
+ key <AD07> { [ h, U014B] }; // [h], [ŋ]
+ key <AD08> { [ g, U0263] }; // [g], [ɣ] found in Urdu
+ key <AD09> { [ d, U00F0] }; // [d], [ð] found in Malayalam
+ key <AD10> { [ U02A4, U02A3] }; // [ʤ], [ʣ] found in Marathi
+ key <AD11> { [ U0256, U027D] }; // [ɖ], [ɽ]
+ key <AD12> { [ bracketleft, bracketright] }; // "[", "]" needed for denoting phonetic symbols
+
+ key <AC01> { [ o, U0254] }; // [o], [ɔ] found in Bangla
+ key <AC02> { [ e, U025B] }; // [e], [ɛ]
+ key <AC03> { [ U0259, U0361] }; // [ə], [ ͡ ]
+ key <AC04> { [ i, U026A] }; // [i], [ɪ]
+ key <AC05> { [ u, U026F] }; // [u], [ɯ]
+ key <AC06> { [ p, f] }; // [p], [f]
+ key <AC07> { [ U027E, r] }; // [ɾ], [r]
+ key <AC08> { [ k, x] }; // [k], [x] found in Urdu
+ key <AC09> { [ t, U03B8] }; // [t], [θ]
+ key <AC10> { [ U02A7, U02A6] }; // [ʧ], [ʦ] found in Marathi
+ key <AC11> { [ U0288, quotedbl] }; // [ʈ]
+ key <TLDE> { [ grave, asciitilde] };
+
+ key <BKSL> { [ backslash, bar] };
+ key <AB01> { [ U032A, U0303] }; // [ ̪], [ ̃] Dental mark, nasalisation mark
+ key <AB02> { [ U0306, X] }; // [ ̆] Short sound
+ key <AB03> { [ m, U0273] }; // [m], [ɳ]
+ key <AB04> { [ n, v] }; // [n], [v]
+ key <AB05> { [ w, z] }; // [w], [z]
+ key <AB06> { [ l, U026D] }; // [l], [ɭ]
+ key <AB07> { [ s, U0283] }; // [s], [ʃ]
+ key <AB08> { [ comma, U0282] }; // [ʂ]
+ key <AB09> { [ period, U02D0] }; // [ː] Long sound
+ key <AB10> { [ j, slash] }; // [j]
+
+};
+
+// This layout is developed by Niranjan Tambe in July 2019
+// for typing Marathi language with some necessary symbols.
+
+xkb_symbols "marathi" {
+ name[Group1]="मराठी इन्स्क्रिप्ट";
+ key <TLDE> { [ U0962, U090C, grave, asciitilde ] }; // Added ॢ & ऌ
+ key <AE01> { [ U0967, exclam, 1, exclam ] }; // Added exclamation mark
+ key <AE02> { [ U0968, U0945, 2, at ] }; // Added ॅ
+ key <AE03> { [ U0969, U093D, 3, numbersign ] }; // Added ऽ
+ key <AE04> { [ U096a, U20B9, 4 ] }; // Added ₹
+ key <AE05> { [ U096b, percent, 5, percent ] };
+ key <AE06> { [ U096c, asciicircum, 6, asciicircum ] };
+ key <AE07> { [ U096d, U0970, 7, ampersand ] }; // Added ॰
+ key <AE08> { [ U096e, U0950, 8, asterisk ] };
+ key <AE09> { [ U096f, parenleft, 9, parenleft ] };
+ key <AE10> { [ U0966, parenright, 0, parenright ] };
+ key <AE11> { [ minus, U0903, minus, underscore ] };
+ key <AE12> { [ U0943, U090b, U0944, U0960 ] };
+
+ key <AD01> { [ U094c, U0914 ] };
+ key <AD02> { [ U0948, U0910 ] };
+ key <AD03> { [ U093e, U0906 ] };
+ key <AD04> { [ U0940, U0908, U0963, U0961 ] };
+ key <AD05> { [ U0942, U090a ] };
+ key <AD06> { [ U092c, U092d ] };
+ key <AD07> { [ U0939, U0919 ] };
+ key <AD08> { [ U0917, U0918, U095a ] };
+ key <AD09> { [ U0926, U0927 ] };
+ key <AD10> { [ U091c, U091d, U095b ] };
+ key <AD11> { [ U0921, U0922, U095c, U095d ] };
+ key <AD12> { [ U093c, U091e ] };
+ key <BKSL> { [ U0949, U0911, U005C, U007C ] };
+
+ key <AC01> { [ U094b, U0913 ] };
+ key <AC02> { [ U0947, U090f ] };
+ key <AC03> { [ U094d, U0905 ] };
+ key <AC04> { [ U093f, U0907, U0962, U090c ] };
+ key <AC05> { [ U0941, U0909 ] };
+ key <AC06> { [ U092a, U092b, NoSymbol, U095e ] };
+ key <AC07> { [ U0930, U0931 ] };
+ key <AC08> { [ U0915, U0916, U0958, U0959 ] };
+ key <AC09> { [ U0924, U0925 ] };
+ key <AC10> { [ U091a, U091b, U0952 ] };
+ key <AC11> { [ U091f, U0920, NoSymbol, U0951 ] };
+
+ key <AB01> { [ apostrophe, U0972, U0953 ] }; // Added apostrophe & ॲ
+ key <AB02> { [ U0902, U0901, NoSymbol, U0950 ] };
+ key <AB03> { [ U092e, U0923, U0954 ] };
+ key <AB04> { [ U0928, quotedbl ] }; // Added "
+ key <AB05> { [ U0935, UA8FB ] }; // Added headstroke
+ key <AB06> { [ U0932, U0933 ] };
+ key <AB07> { [ U0938, U0936 ] };
+ key <AB08> { [ comma, U0937, U0970 ] };
+ key <AB09> { [ period, U0964, U0965, U093d ] };
+ key <AB10> { [ U092f, question, slash, question ] };
+};
+
+// EXTRAS:
+
+// Modi is an ancient Indian script that is used to write texts in Marathi, Hindi and Sanskrit.
+// This keyboard layout is Based on Marathi KaGaPa phonetic layout. Just the characters which are not applicable in modi, are ommited.
+//
+// Author : D.Abhi <abhishekdeshpande128@gmail.com>
+//
+//
+partial alphanumeric_keys
+xkb_symbols "modi-kagapa" {
+ name[Group1] = "Modi (KaGaPa phonetic)";
+ key.type="FOUR_LEVEL";
+
+ // Roman digits
+ key <TLDE> { [ apostrophe, asciitilde, U201C ] }; // U201C: left double quotation mark
+ key <AE01> { [ 1, exclam, U11651 ] };
+ key <AE02> { [ 2, at, U11652, U20A8 ] }; // U20A8: generic rupee sign (Rs)
+ key <AE03> { [ 3, numbersign, U11653 ] };
+ key <AE04> { [ 4, dollar, U11654, U20B9 ] }; // U20B9: new Indian rupee sign
+ key <AE05> { [ 5, percent, U11655 ] };
+ key <AE06> { [ 6, asciicircum, U11656, U200C ] }; // ZWNJ
+ key <AE07> { [ 7, ampersand, U11657, U200D ] }; // ZWJ
+ key <AE08> { [ 8, asterisk, U11658 ] };
+ key <AE09> { [ 9, parenleft, U11659 ] };
+ key <AE10> { [ 0, parenright, U11650, U11643 ] }; // U11643: Modi abbreviation sign
+ key <AE11> { [ minus, underscore ] };
+ key <AE12> { [ equal, plus ] };
+ key <BKSL> { [ U005C, U007C, U11641, U11642 ] }; // backslash, pipe, Modi danda, Modi double danda
+
+ //Q Row
+ key <AD01> { [ U11618, U11619 ] }; // Q: retroflex Modi letter Ta, Tha
+ key <AD02> { [ U1161A, U1161B ] }; // W: retroflex Modi letter Da, Dha
+ key <AD03> { [ U11639, U1160A, U1160B ] }; // E: Modi vovel sign E, Modi letter E, letter ai
+ key <AD04> { [ U11628, U11635, U11606 ] }; // R: Modi ra, Modi vowel sign vocalic R, vocalic letter R
+ key <AD05> { [ U1161D, U1161E ] }; // T: dental Modi letter ta, tha
+ key <AD06> { [ U11627, U1163A ] }; // Y: Modi letter ya, Modi vowel sign ai
+ key <AD07> { [ U11633, U11634, U11604, U11605 ] }; // U: Modi vowel sign u, uu, Modi letter u, uu
+ key <AD08> { [ U11631, U11632, U11602, U11603 ] }; // I: Modi vowel sign i, ii, Modi letter i, ii
+ key <AD09> { [ U1163B, U1160C ] }; // O: Modi vowel sign o, Modi letter o
+ key <AD10> { [ U11622, U11623 ] }; // P: Modi letter pa, pha
+ key <AD11> { [ bracketleft, braceleft ] };
+ key <AD12> { [ bracketright, braceright ] };
+
+ //A Row
+ key <AC01> { [ U11630, U11601, U11600 ] }; // A: Modi vowel sign aa, Modi letter aa, Modi letter a
+ key <AC02> { [ U1162D, U1162B ] }; // S: Modi letter sa, sha
+ key <AC03> { [ U1161F, U11620 ] }; // D: dental Modi letter da, dha
+ key <AC04> { [ U1163F, U11636, U11607 ] }; // F: Modi sign virama, Modi vowel sign vocalic RR, letter vocalic RR
+ key <AC05> { [ U11610, U11611 ] }; // G: Modi letter ga, gha
+ key <AC06> { [ U1162E, U1163E ] }; // H: Modi letter ha, Modi visarga
+ key <AC07> { [ U11615, U11616 ] }; // J: Modi letter ja, jha
+ key <AC08> { [ U1160E, U1160F ] }; // K: Modi letter ka, kha
+ key <AC09> { [ U11629, U1162F, U11637, U11608 ] }; // L: Modi letter la, lla, Modi vowel sign vocalic L, letter vocalic L
+ key <AC10> { [ semicolon, colon ] };
+ key <AC11> { [ apostrophe, quotedbl ] };
+
+ //Z Row
+ key <AB01> { [ U11617, U11612 ] }; // Z: Modi letter nya, nga
+ key <AB02> { [ U1162C, U11609, U11638 ] }; // X: Modi letter ssa, Modi letter vocalic ll, Modi vowel sign vocalic ll
+ key <AB03> { [ U11613, U11614 ] }; // C: Modi letter ca, cha
+ key <AB04> { [ U1162A, U1163C, U1160D ] }; // V: Modi letter va, Modi vowel sign au, Modi letter au
+ key <AB05> { [ U11624, U11625 ] }; // B: Modi letter ba, bha
+ key <AB06> { [ U11621, U1161C ] }; // N: Modi letter na, nna
+ key <AB07> { [ U11626, U1163D, U093D, U0950 ] }; // M: Modi ma, Modi anusvara, avagraha, Devanagari OM
+ key <AB08> { [ comma, U003C, U11640, U11644 ] }; // comma: comma, less than, Modi chandrabindu, Modi sign huva
+ key <AB09> { [ period, U003E ] }; // period: period, greater than, matra, candra o
+ key <AB10> { [ slash, question ] };
+
+ include "level3(ralt_switch)"
+};
diff --git a/test/data/symbols/inet b/test/data/symbols/inet
index 5403e77..049ac18 100644
--- a/test/data/symbols/inet
+++ b/test/data/symbols/inet
@@ -184,7 +184,7 @@ xkb_symbols "evdev" {
key <I218> { [ Print ] };
// key <I219> { [ ] }; // KEY_HP
key <I220> { [ XF86WebCam ] };
-// key <I221> { [ ] }; // KEY_SOUND
+ key <I221> { [ XF86AudioPreset ] };
// key <I222> { [ ] }; // KEY_QUESTION
key <I223> { [ XF86Mail ] };
key <I224> { [ XF86Messenger ] }; // KEY_CHAT
@@ -212,11 +212,16 @@ xkb_symbols "evdev" {
key <I246> { [ XF86WLAN ] };
// key <I249> { [ ] }; // KEY_VIDEO_NEXT -- drive next video source
// key <I250> { [ ] }; // KEY_VIDEO_PREV -- drive previous video source
-// key <I251> { [ ] }; // KEY_BRIGHTNESS_CYCLE -- bright up, max++ == min
+ key <I251> { [ XF86MonBrightnessCycle ] }; // KEY_BRIGHTNESS_CYCLE -- bright up, max++ == min
// key <I252> { [ ] }; // KEY_BRIGHTNESS_ZERO -- brightness off
// key <I253> { [ ] }; // KEY_DISPLAY_OFF -- turn off display
-// key <I254> { [ ] }; // KEY_WIMAX
- key <I255> { [ XF86Hibernate ] }; // KEY_HIBERNATE
+ key <I254> { [ XF86WWAN ] }; // KEY_WWAN
+ key <I255> { [ XF86RFKill ] }; // KEY_RFKILL
+
+ key <I372> { [ XF86Favorites ] };
+ key <I382> { [ XF86Keyboard ] };
+ key <I569> { [ XF86RotationLockToggle ] };
+ key <I380> { [ XF86FullScreen ] };
key <FK13> { [ XF86Tools ] };
key <FK14> { [ XF86Launch5 ] };
@@ -1422,6 +1427,16 @@ xkb_symbols "microsoftmult" {
key <I80> { [ XF86Documents ] };
};
+// Microsoft Surface
+partial alphanumeric_keys
+xkb_symbols "microsoftsurface" {
+ include "inet(evdev)"
+ key <I88> { [ XF86Search ] };
+ key <I163> { [ XF86AudioPrev ] };
+ key <I164> { [ XF86AudioPlay, XF86AudioPause ] };
+ key <I165> { [ XF86AudioNext ] };
+};
+
// Oretec
@@ -1850,32 +1865,6 @@ xkb_symbols "pc105" {
include "inet(media_nav_acpi_common)"
};
-
-// HTC Dream
-partial alphanumeric_keys
-xkb_symbols "htcdream" {
- key <BKSP> { [ BackSpace ] };
- key <RTRN> { [ Return ] };
-
- key <AE01> { [ 1, 1, exclam, exclam ] };
- key <AE02> { [ 2, 2, at, at ] };
- key <AE03> { [ 3, 3, numbersign, numbersign ] };
- key <AE04> { [ 4, 4, dollar, dollar ] };
- key <AE05> { [ 5, 5, percent, percent ] };
- key <AE06> { [ 6, 6, dead_circumflex, dead_circumflex ] };
- key <AE07> { [ 7, 7, ampersand, ampersand ] };
- key <AE08> { [ 8, 8, asterisk, asterisk ] };
- key <AE09> { [ 9, 9, parenleft, parenleft ] };
- key <AE10> { [ 0, 0, parenright, parenright ] };
-
- key <LFSH> { [ Shift_L ] };
- key <SPCE> { [ space ] };
- key <AB09> { [ period, period, slash, slash ] };
- key <RTSH> { [ Shift_R ] };
-
- modifier_map Shift { <LFSH>, <RTSH> };
-};
-
partial alphanumeric_keys
xkb_symbols "chromebook" {
include "level3(ralt_switch)"
@@ -1907,3 +1896,4 @@ partial alphanumeric_keys
xkb_symbols "teck229" {
include "inet(teck227)"
};
+
diff --git a/test/data/symbols/latin b/test/data/symbols/latin
index d88e3c4..50ded1f 100644
--- a/test/data/symbols/latin
+++ b/test/data/symbols/latin
@@ -1,6 +1,6 @@
// Common Latin alphabet layout
-default partial
+default partial
xkb_symbols "basic" {
key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
diff --git a/test/data/symbols/level3 b/test/data/symbols/level3
index 1aef970..0042743 100644
--- a/test/data/symbols/level3
+++ b/test/data/symbols/level3
@@ -3,7 +3,7 @@
// The default behaviour:
// the right Alt key (AltGr) chooses the third symbol engraved on a key.
-default partial modifier_keys
+default partial modifier_keys
xkb_symbols "ralt_switch" {
key <RALT> {
type[Group1]="ONE_LEVEL",
@@ -209,3 +209,21 @@ xkb_symbols "lsgt_switch_latch" {
};
include "level3(modifier_mapping)"
};
+
+// Number key 4 chooses third shift level when pressed in isolation.
+partial modifier_keys
+xkb_symbols "4_switch_isolated" {
+ override key <AE04> {
+ symbols[Group1] = [ ISO_Level3_Shift ]
+ };
+ include "level3(modifier_mapping)"
+};
+
+// Number key 9 chooses third shift level when pressed in isolation.
+partial modifier_keys
+xkb_symbols "9_switch_isolated" {
+ override key <AE09> {
+ symbols[Group1] = [ ISO_Level3_Shift ]
+ };
+ include "level3(modifier_mapping)"
+};
diff --git a/test/data/symbols/macintosh_vndr/apple b/test/data/symbols/macintosh_vndr/apple
index 53d260c..342eb7d 100644
--- a/test/data/symbols/macintosh_vndr/apple
+++ b/test/data/symbols/macintosh_vndr/apple
@@ -2,7 +2,7 @@
// Keyboard modification for Apple keyboards
//
-partial default modifier_keys
+default partial modifier_keys
xkb_symbols "extended" {
key <KPEQ> { [ KP_Equal ] };
diff --git a/test/data/symbols/pc b/test/data/symbols/pc
index 0199713..dbe08bb 100644
--- a/test/data/symbols/pc
+++ b/test/data/symbols/pc
@@ -1,4 +1,4 @@
-default partial alphanumeric_keys modifier_keys
+default partial alphanumeric_keys modifier_keys
xkb_symbols "pc105" {
key <ESC> { [ Escape ] };
diff --git a/test/data/symbols/ru b/test/data/symbols/ru
index 964705c..7fd8f45 100644
--- a/test/data/symbols/ru
+++ b/test/data/symbols/ru
@@ -2,9 +2,10 @@
// AEN <aen@logic.ru>
// 2001/12/23 by Leon Kanter <leon@blackcatlinux.com>
// 2005/12/09 Valery Inozemtsev <shrek@altlinux.ru>
+// 2018/07/15 @a13 (a.k.a. @dbvvmpg) and Stepanenko Andrey <ftvkyo2011@yandex.ru>
// Windows layout
-default partial alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "winkeys" {
include "ru(common)"
@@ -215,7 +216,7 @@ partial alphanumeric_keys
xkb_symbols "phonetic_winkeys" {
include "ru(phonetic)"
- name[Group1]= "Russian (phonetic, with Win keys)";
+ name[Group1]= "Russian (phonetic, Windows)";
key <LatX> { [ Cyrillic_ha, Cyrillic_HA ] };
key <LatH> { [ Cyrillic_che, Cyrillic_CHE ] };
@@ -223,6 +224,15 @@ xkb_symbols "phonetic_winkeys" {
};
partial alphanumeric_keys
+xkb_symbols "phonetic_YAZHERTY" {
+ include "ru(phonetic_winkeys)"
+ name[Group1]= "Russian (phonetic, YAZHERTY)";
+ key <LatW> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key <LatV> { [ Cyrillic_ve, Cyrillic_VE ] };
+};
+
+
+partial alphanumeric_keys
xkb_symbols "tt" {
include "ru(winkeys)"
@@ -230,12 +240,12 @@ xkb_symbols "tt" {
key.type[group1]="FOUR_LEVEL";
- key <TLDE> { [ 0x010004bb, 0x010004ba, Cyrillic_io, Cyrillic_IO ] };
- key <AD02> { [ 0x010004e9, 0x010004e8, Cyrillic_tse, Cyrillic_TSE ] };
- key <AD09> { [ 0x010004d9, 0x010004d8, Cyrillic_shcha, Cyrillic_SHCHA ] };
- key <AD12> { [ 0x010004af, 0x010004ae, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
- key <AC10> { [ 0x010004a3, 0x010004a2, Cyrillic_zhe, Cyrillic_ZHE ] };
- key <AB07> { [ 0x01000497, 0x01000496, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
+ key <TLDE> { [ Cyrillic_shha, Cyrillic_SHHA, Cyrillic_io, Cyrillic_IO ] };
+ key <AD02> { [ Cyrillic_o_bar, Cyrillic_O_bar, Cyrillic_tse, Cyrillic_TSE ] };
+ key <AD09> { [ Cyrillic_schwa, Cyrillic_SCHWA, Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key <AD12> { [ Cyrillic_u_straight, Cyrillic_U_straight, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
+ key <AC10> { [ Cyrillic_en_descender, Cyrillic_EN_descender, Cyrillic_zhe, Cyrillic_ZHE ] };
+ key <AB07> { [ Cyrillic_zhe_descender, Cyrillic_ZHE_descender, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
include "level3(ralt_switch)"
};
@@ -255,7 +265,7 @@ partial alphanumeric_keys
xkb_symbols "os_winkeys" {
include "ru(winkeys)"
- name[Group1]= "Ossetian (Win keys)";
+ name[Group1]= "Ossetian (Windows)";
key <TLDE> { [ Cyrillic_e, Cyrillic_E ] };
key <AC07> { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] };
@@ -434,20 +444,20 @@ xkb_symbols "bak" {
key.type[group1]="FOUR_LEVEL";
- key <TLDE> { [ 0x010004d9, 0x010004d8, Cyrillic_io, Cyrillic_IO ] };
- key <AE01> { [ exclam, quotedbl, 1, 1 ] };
- key <AE02> { [ 0x010004e9, 0x010004e8, 2, 2 ] };
- key <AE03> { [ 0x010004a1, 0x010004a0, 3, 3 ] };
- key <AE04> { [ 0x01000493, 0x01000492, 4, 4 ] };
- key <AE05> { [ 0x010004ab, 0x010004aa, 5, 5 ] };
- key <AE06> { [ colon, semicolon, 6, 6 ] };
- key <AE07> { [ 0x01000499, 0x01000498, 7, 7 ] };
- key <AE08> { [ 0x010004bb, 0x010004ba, 8, 8 ] };
- key <AE09> { [ question, parenleft, 9, 9 ] };
- key <AE10> { [ numerosign, parenright, 0, 0 ] };
- key <AE11> { [ minus, percent, minus, underscore ] };
- key <AE12> { [ 0x010004af, 0x010004ae, equal, plus ] };
- key <BKSL> { [ 0x010004a3, 0x010004a2, backslash, slash ] };
+ key <TLDE> { [ Cyrillic_schwa, Cyrillic_SCHWA, Cyrillic_io, Cyrillic_IO ] };
+ key <AE01> { [ exclam, quotedbl, 1, 1 ] };
+ key <AE02> { [ Cyrillic_o_bar, Cyrillic_O_bar, 2, 2 ] };
+ key <AE03> { [ 0x010004a1, 0x010004a0, 3, 3 ] };
+ key <AE04> { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, 4, 4 ] };
+ key <AE05> { [ 0x010004ab, 0x010004aa, 5, 5 ] };
+ key <AE06> { [ colon, semicolon, 6, 6 ] };
+ key <AE07> { [ 0x01000499, 0x01000498, 7, 7 ] };
+ key <AE08> { [ Cyrillic_shha, Cyrillic_SHHA, 8, 8 ] };
+ key <AE09> { [ question, parenleft, 9, 9 ] };
+ key <AE10> { [ numerosign, parenright, 0, 0 ] };
+ key <AE11> { [ minus, percent, minus, underscore ] };
+ key <AE12> { [ Cyrillic_u_straight, Cyrillic_U_straight, equal, plus ] };
+ key <BKSL> { [ Cyrillic_en_descender, Cyrillic_EN_descender, backslash, slash ] };
include "level3(ralt_switch)"
};
@@ -517,7 +527,7 @@ xkb_symbols "phonetic_azerty" {
key <AE11> { [parenright, degree, bracketright, questiondown ] };
key <AE12> { [ equal, plus, braceright, dead_ogonek ] };
- key <AB07> { [ comma, question, acute, doubleacute ] };
+ key <AB07> { [ comma, question, acute, doubleacute ] };
key <AB08> { [ semicolon, period, horizconnector, multiply ] };
key <AB09> { [ colon, slash, periodcentered, division ] };
key <AB10> { [ exclam, section, dead_belowdot, dead_abovedot ] };
@@ -629,77 +639,92 @@ xkb_symbols "phonetic_fr" {
name[Group1]= "Russian (phonetic, French)";
};
+// EXTRAS:
+
// Rulemak, Colemak based Russian phonetic layout
// contact: Geert Hendrickx <geert@hendrickx.be>
// http://forum.colemak.com/viewtopic.php?id=519
+//
+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
+// │ Ё ``│ ! ˝ │ @ │ № │ $ │ % │ ^ ¯ │ & │ * ₴ │ ( │ ) │ _ — │ Ъ + ┃ ⌫ ┃
+// │ ё ` │ 1 ´ │ 2 ¨ │ 3 # │ 4 ¢ │ 5 € │ 6 ˘ │ 7 │ 8 ₽ │ 9 [ │ 0 ] │ - – │ ъ = ┃Backspace┃
+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
+// ┃ ┃ Я Ѣ │ Ж Ѵ │ Ф Ѳ │ П │ Г Ґ │ й Ј │ Л Љ │ У Ў │ Ы Ї │ Ю : │ Ш { │ Щ } ┃ Enter ┃
+// ┃ Tab ↹ ┃ я ѣ │ ж ѵ │ ф ѳ │ п │ г ґ │ й ј │ л љ │ у ў │ ы ї │ ю ; │ ш « │ щ » ┃ ⏎ ┃
+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
+// ┃ ⌫ Back ┃ А │ Р │ С │ Т Ћ │ Д Ђ │ Ч Џ │ Н Њ │ Е Є │ И І │ О │ Ь " │ Э | ┃ ┃
+// ┃ space ┃ а │ р │ с │ т ћ │ д ђ │ ч џ │ н њ │ е є │ и і │ о │ ь ' │ э \ ┃ ┃
+// ┣━━━━━━━━┻━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┲━━━┷━━━━━┻━━━━━━┫
+// ┃ ┃ З Ѕ │ Х │ Ц │ В │ Б Ѓ │ К Ќ │ М │ ; │ : │ ? Ӏ ┃ ┃
+// ┃ Shift ⇧ ┃ з ѕ │ х │ ц │ в │ б ѓ │ к ќ │ м │ , < │ . > │ / ӏ ┃ Shift ⇧ ┃
+// ┣━━━━━━━┳━━┻━━━━┳┷━━━━━┷┱────┴─────┴─────┴─────┴─────┴─────┴┲━━━━┷━━┳━━┻━━━━┳━━━━━━━┳━━━┛
+// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
+// ┃ Ctrl ┃ Meta ┃ Alt ┃ Space ┃AltGr ⇮┃ Menu ┃ Ctrl ┃
+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
partial alphanumeric_keys
xkb_symbols "rulemak" {
- include "us(basic)"
name[Group1]= "Russian (Rulemak, phonetic Colemak)";
- key <TLDE> { [ Cyrillic_io, Cyrillic_IO, U0300, asciitilde ] };
- key <AE01> { [ 1, exclam, U0301 ] };
- key <AE02> { [ 2, at, U030B ] };
+ key <TLDE> { [ Cyrillic_io, Cyrillic_IO, U0300, U030F ] }; // Combining grave, double grave
+ key <AE01> { [ 1, exclam, U0301, U030B ] }; // Combining acute, double acute
+ key <AE02> { [ 2, at, U0308 ] }; // Combining diaeresis
key <AE03> { [ 3, numerosign, numbersign ] };
key <AE04> { [ 4, dollar, cent ] };
key <AE05> { [ 5, percent, EuroSign ] };
- key <AE06> { [ 6, asciicircum, U0306 ] };
- key <AE07> { [ 7, ampersand, U0307 ] };
- key <AE08> { [ 8, asterisk, U20BD ] };
+ key <AE06> { [ 6, asciicircum, U0306, U0304 ] }; // Combining breve, macron
+ key <AE07> { [ 7, ampersand ] };
+ key <AE08> { [ 8, asterisk, U20BD, U20B4 ] }; // ruble, hryvnia
key <AE09> { [ 9, parenleft, bracketleft ] };
key <AE10> { [ 0, parenright, bracketright ] };
key <AE11> { [ minus, underscore, endash, emdash ] };
key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] };
- key <AD01> { [ Cyrillic_ya, Cyrillic_YA, q, Q ] };
- key <AD02> { [ Cyrillic_zhe, Cyrillic_ZHE, w, W ] };
- key <AD03> { [ Cyrillic_ef, Cyrillic_EF, f, F ] };
- key <AD04> { [ Cyrillic_pe, Cyrillic_PE, p, P ] };
- key <AD05> { [ Cyrillic_ghe, Cyrillic_GHE, g, G ] };
- key <AD06> { [ Cyrillic_shorti, Cyrillic_SHORTI, j, J ] };
- key <AD07> { [ Cyrillic_el, Cyrillic_EL, l, L ] };
- key <AD08> { [ Cyrillic_u, Cyrillic_U, u, U ] };
- key <AD09> { [ Cyrillic_yeru, Cyrillic_YERU, y, Y ] };
+ key <AD01> { [ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ] }; // yat
+ key <AD02> { [ Cyrillic_zhe, Cyrillic_ZHE, U0475, U0474 ] }; // izhitsa
+ key <AD03> { [ Cyrillic_ef, Cyrillic_EF, U0473, U0472 ] }; // fita
+ key <AD04> { [ Cyrillic_pe, Cyrillic_PE ] };
+ key <AD05> { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
+ key <AD06> { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_je, Cyrillic_JE ] };
+ key <AD07> { [ Cyrillic_el, Cyrillic_EL, Cyrillic_lje, Cyrillic_LJE ] };
+ key <AD08> { [ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ] };
+ key <AD09> { [ Cyrillic_yeru, Cyrillic_YERU, Ukrainian_yi, Ukrainian_YI ] };
key <AD10> { [ Cyrillic_yu, Cyrillic_YU, semicolon, colon ] };
key <AD11> { [ Cyrillic_sha, Cyrillic_SHA, guillemotleft, braceleft ] };
key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA, guillemotright, braceright ] };
key <BKSL> { [ Cyrillic_e, Cyrillic_E, backslash, bar ] };
- key <AC01> { [ Cyrillic_a, Cyrillic_A, a, A ] };
- key <AC02> { [ Cyrillic_er, Cyrillic_ER, r, R ] };
- key <AC03> { [ Cyrillic_es, Cyrillic_ES, s, S ] };
- key <AC04> { [ Cyrillic_te, Cyrillic_TE, t, T ] };
- key <AC05> { [ Cyrillic_de, Cyrillic_DE, d, D ] };
- key <AC06> { [ Cyrillic_che, Cyrillic_CHE, h, H ] };
- key <AC07> { [ Cyrillic_en, Cyrillic_EN, n, N ] };
- key <AC08> { [ Cyrillic_ie, Cyrillic_IE, e, E ] };
- key <AC09> { [ Cyrillic_i, Cyrillic_I, i, I ] };
- key <AC10> { [ Cyrillic_o, Cyrillic_O, o, O ] };
+ key <AC01> { [ Cyrillic_a, Cyrillic_A ] };
+ key <AC02> { [ Cyrillic_er, Cyrillic_ER ] };
+ key <AC03> { [ Cyrillic_es, Cyrillic_ES ] };
+ key <AC04> { [ Cyrillic_te, Cyrillic_TE, Serbian_tshe, Serbian_TSHE ] };
+ key <AC05> { [ Cyrillic_de, Cyrillic_DE, Serbian_dje, Serbian_DJE ] };
+ key <AC06> { [ Cyrillic_che, Cyrillic_CHE, Cyrillic_dzhe, Cyrillic_DZHE ] };
+ key <AC07> { [ Cyrillic_en, Cyrillic_EN, Cyrillic_nje, Cyrillic_NJE ] };
+ key <AC08> { [ Cyrillic_ie, Cyrillic_IE, Ukrainian_ie, Ukrainian_IE ] };
+ key <AC09> { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] };
+ key <AC10> { [ Cyrillic_o, Cyrillic_O ] };
key <AC11> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, quotedbl ] };
- key <AB01> { [ Cyrillic_ze, Cyrillic_ZE, z, Z ] };
- key <AB02> { [ Cyrillic_ha, Cyrillic_HA, x, X ] };
- key <AB03> { [ Cyrillic_tse, Cyrillic_TSE, c, C ] };
- key <AB04> { [ Cyrillic_ve, Cyrillic_VE, v, V ] };
- key <AB05> { [ Cyrillic_be, Cyrillic_BE, b, B ] };
- key <AB06> { [ Cyrillic_ka, Cyrillic_KA, k, K ] };
- key <AB07> { [ Cyrillic_em, Cyrillic_EM, m, M ] };
+ key <AB01> { [ Cyrillic_ze, Cyrillic_ZE, Macedonia_dse, Macedonia_DSE ] };
+ key <AB02> { [ Cyrillic_ha, Cyrillic_HA ] };
+ key <AB03> { [ Cyrillic_tse, Cyrillic_TSE ] };
+ key <AB04> { [ Cyrillic_ve, Cyrillic_VE ] };
+ key <AB05> { [ Cyrillic_be, Cyrillic_BE, Macedonia_gje, Macedonia_GJE ] };
+ key <AB06> { [ Cyrillic_ka, Cyrillic_KA, Macedonia_kje, Macedonia_KJE ] };
+ key <AB07> { [ Cyrillic_em, Cyrillic_EM ] };
key <AB08> { [ comma, semicolon, less ] };
key <AB09> { [ period, colon, greater ] };
- key <AB10> { [ slash, question ] };
+ key <AB10> { [ slash, question, U04CF, U04C0 ] }; // palochka
- key <CAPS> { [ BackSpace, BackSpace, BackSpace, BackSpace ] };
- key <LSGT> { [ U0301, asciitilde, grave ] };
- key <SPCE> { [ space, space, space, nobreakspace ] };
- key <MENU> { [ Mode_switch, Multi_key ] };
+ key <LSGT> { [ equal, plus, multiply, division ] };
include "level3(ralt_switch)"
+ include "capslock(backspace)"
+ include "nbsp(level4)"
};
-// EXTRAS:
-
// Church Slavonic language layout
// based on the Russian standard keyboard
// by Aleksandr Andreev and Yuri Shardt
@@ -709,21 +734,21 @@ xkb_symbols "chu" {
name[Group1]= "Church Slavonic";
- key <TLDE> { [ U0457, U0407, U0482, U20DD ] }; // ї Ї ҂ e.g: а⃝ where the last is a combining ten thousands sign
+ key <TLDE> { [ Ukrainian_yi, Ukrainian_YI, U0482, U20DD ] }; // ї Ї ҂ e.g: а⃝ where the last is a combining ten thousands sign
key <AE01> { [ U0461, U0460, U047D, U047C ] }; // ѡ Ѡ ѽ Ѽ
- key <AE02> { [ U0454, U0404, U0465, U0464 ] }; // є Є ѥ Ѥ
+ key <AE02> { [ Ukrainian_ie, Ukrainian_IE, U0465, U0464 ] }; // є Є ѥ Ѥ
key <AE03> { [ U046F, U046E, U0469, U0468 ] }; // ѯ Ѯ ѩ Ѩ
key <AE04> { [ U0471, U0470, U046D, U046C ] }; // ѱ Ѱ ѭ Ѭ
key <AE05> { [ U0473, U0472, UA657, UA656 ] }; // ѳ Ѳ iotified A
key <AE06> { [ U0475, U0474, U0477, U0476 ] }; // ѵ Ѵ ѷ Ѷ
key <AE07> { [ U047B, U047A, UA64D, UA64C ] }; // ѻ Ѻ ꙍ Ꙍ
key <AE08> { [ U047F, U047E, U046B, U046A ] }; // ѿ Ѿ ѫ Ѫ
- key <AE09> { [ U0455, U0405,parenleft,U002A ] }; // ѕ Ѕ ( *
- key <AE10> { [Cyrillic_u,Cyrillic_U,parenright,U0488]}; // у У ) NB: for digraph Ouk, use Cyrillic_o + Cyrillic_u
+ key <AE09> { [ Macedonia_dse, Macedonia_DSE, parenleft, asterisk ] }; // ѕ Ѕ ( *
+ key <AE10> { [ Cyrillic_u, Cyrillic_U, parenright, U0488]}; // у У ) NB: for digraph Ouk, use Cyrillic_o + Cyrillic_u
key <AE11> { [ U0483, U0486, U0487, U005F ] }; // а҃ а҆ а҇, _ (titlo, psili, pokrytie, underscore)
key <AE12> { [ U0301, U0300, U0484, UA67E ] }; // а̀ а́ а҄ ꙾ (oxia, varia, kamora, kavyka)
- key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, U0456 ] };
+ key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, Ukrainian_i ] };
key <AD02> { [ Cyrillic_tse, Cyrillic_TSE, U2DF0 ] };
key <AD03> { [ UA64B, UA64A, U2DF9 ] }; // Cyrillic monograph Uk (not U)!
key <AD04> { [ Cyrillic_ka, Cyrillic_KA, U2DE6 ] };
@@ -792,33 +817,33 @@ xkb_symbols "ruu" {
name[Group1]= "Russian (with Ukrainian-Belorussian layout)";
key <TLDE> { [ U2019, apostrophe, U0301, asciitilde ] }; // Apostrophe and Stress symbol
- key <AE01> { [ 1, exclam, U00F7, U2248 ] }; // Division Sign and Almost Equal To
+ key <AE01> { [ 1, exclam, division, U2248 ] }; // Division Sign and Almost Equal To
key <AE02> { [ 2, quotedbl, currency, infinity ] };
- key <AE03> { [ 3, numerosign, U00A7, U20B4 ] }; // Paragraph and Hryvnia sign
+ key <AE03> { [ 3, numerosign, section, U20B4 ] }; // Paragraph and Hryvnia sign
key <AE04> { [ 4, semicolon, dollar, EuroSign ] };
- key <AE05> { [ 5, percent, degree, U2030 ] }; // Per Mille Sign
- key <AE06> { [ 6, colon, less, U2264 ] }; // Less-Than Or Equal To
- key <AE07> { [ 7, question, greater, U2265 ] }; // Greater-Than Or Equal To
- key <AE08> { [ 8, asterisk, enfilledcircbullet, U00D7 ] }; // Multiplication Sign
+ key <AE05> { [ 5, percent, degree, permille ] };
+ key <AE06> { [ 6, colon, less, lessthanequal ] };
+ key <AE07> { [ 7, question, greater, greaterthanequal ] };
+ key <AE08> { [ 8, asterisk,enfilledcircbullet,multiply ] };
key <AE09> { [ 9, parenleft, bracketleft, braceleft ] };
key <AE10> { [ 0, parenright, bracketright, braceright ] };
key <AE11> { [ minus, underscore, emdash, endash ] };
key <AE12> { [ equal, plus, notequal, plusminus ] };
key <AD03> { [ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ] };
- key <AD04> { [ Cyrillic_ka, Cyrillic_KA, registered ] }; // Registered tm
+ key <AD04> { [ Cyrillic_ka, Cyrillic_KA, registered ] };
key <AD05> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] };
key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
- key <AD10> { [ Cyrillic_ze, Cyrillic_ZE, U00B6 ] }; // Pilcrow Sign
+ key <AD10> { [ Cyrillic_ze, Cyrillic_ZE, paragraph ] };
key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, Ukrainian_yi, Ukrainian_YI ] };
key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, Ukrainian_i, Ukrainian_I ] };
key <AC11> { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE ] };
- key <BKSL> { [ slash, bar, backslash, U00A6 ] }; // Broken Bar
+ key <BKSL> { [ slash, bar, backslash, brokenbar ] };
key <AB03> { [ Cyrillic_es, Cyrillic_ES, copyright ] };
key <AB06> { [ Cyrillic_te, Cyrillic_TE, trademark ] };
- key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, U00B5 ] }; // Micro Sign
+ key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, mu ] };
key <AB08> { [ Cyrillic_be, Cyrillic_BE, guillemotleft, doublelowquotemark ] };
key <AB09> { [ Cyrillic_yu, Cyrillic_YU, guillemotright, leftdoublequotemark ] };
key <AB10> { [ period, comma, slash, ellipsis ] };
@@ -884,34 +909,34 @@ xkb_symbols "prxn" {
key <TLDE> { [ U2019, apostrophe, U0301, U0300, U2053, U2015, U02BC, asciitilde ] }; // Typographic Apostrophe, Apostrophe, Combining Acute, Combining Grave, Swung Dash, Quotation Dash, Modifier Letter Apostrophe, Tilde
key <AE01> { [ 1, exclam, U0304, U0306, U0308, U0311, U0307, U0313 ] }; // 1, !, Combining Macron, Combining Breve, Combining Diaresis, Combining Inverted Breve, Combining Dot Above, Combining Comma Above
key <AE02> { [ 2,quotedbl,numerosign, U20BF, U20B8, U20AE, U00A3, U20B9 ] }; // 2 " № ₿ ₸ ₮ £ ₹
- key <AE03> { [ 3, U00A7, U20B4, currency, U20BD, U20AA, U20BC, U20BE ] }; // 3 § ₴ ¤ ₽ ₪ ₼ ₾
+ key <AE03> { [ 3, section, U20B4, currency, U20BD, U20AA, U20BC, U20BE ] }; // 3 § ₴ ¤ ₽ ₪ ₼ ₾
key <AE04> { [ 4, semicolon, dollar, EuroSign, U0482, U20DD, U0488, U0489 ] }; // 4 ; $ € Thousands Sign, Combining Enclosing Circle, Combining Hundred Thousands, Combining Millions
- key <AE05> { [ 5, percent, degree, U2030, UA670, UA671, UA672, UA66F ] }; // 5, %, °, ‰, Combinining Ten Millions, Combining Hundred Millions, Combining Thousand Millions, Combining Vzmet
+ key <AE05> { [ 5, percent, degree, permille, UA670, UA671, UA672, UA66F ] }; // 5, %, °, ‰, Combinining Ten Millions, Combining Hundred Millions, Combining Thousand Millions, Combining Vzmet
key <AE06> { [ 6, colon, U0335, U0336, U0483, U0487, UFE2E, UFE2F ] }; // 6, :, Combining Short Stroke Overlay, Combining Long Stroke Overlay, Combining Titlo, Combining Pokrytie, Combining Titlo Left Half, Combining Titlo Right Half
key <AE07> { [ 7, question, U030B, U030F, U030C, U0303, U032C, U0360 ] }; // 7, ?, Combining Double Acute, Combining Double Grave, Combining Caron/Háček, Combining Tilde, Combining Caron/Háček Below, Combining Double Tilde
key <AE08> { [ 8, asterisk, U0331, U0332, U0333, U032F, U032D, U032E ] }; // 8, *, Combining Macron Below, Combining Low Line, Combining Double Low Line, Combining Inverted Breve Below, Combining Circumflex Accent, Combining Breve Below
key <AE09> { [ 9,parenleft, bracketleft, braceleft, U035F, U035D, U035E, U035C ] }; // 9 ( [ { Combining Double Macron Below, Combining Double Breve, Combining Double Macron, Combining Double Breve Below
key <AE10> { [ 0,parenright,bracketright, braceright, U27E8, U27E9, U04A7, U04A6 ] }; // 0 ) ] } ⟨⟩ ҧ Ҧ
- key <AE11> { [ minus, underscore, emdash, endash, U2011, U00AD, U2010, U2212 ] }; // Hyphen-Minus, Underscore, Em Dash, En Dash, Non-Breaking-Hyphen, Soft Hyphen, Hyphen, Minus Sign
+ key <AE11> { [ minus, underscore, emdash, endash, U2011,hyphen, U2010, U2212 ] }; // Hyphen-Minus, Underscore, Em Dash, En Dash, Non-Breaking-Hyphen, Soft Hyphen, Hyphen, Minus Sign
key <AE12> { [ equal, plus,notequal, U2248, U04FF, U04FE, U050D, U050C ] }; // = + ≠ ≈ ӿ Ӿ ԍ Ԍ
key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_je, Cyrillic_JE, U04CF, U04C0, U030A, U0325 ] }; // й Й ј Ј ӏ Ӏ, Combining Ring Above and Below
key <AD02> { [ Cyrillic_tse, Cyrillic_TSE, U04B5, U04B4, Cyrillic_u_straight, Cyrillic_U_straight, U051B, U051A ] }; // ц Ц ҵ Ҵ ү Ү ԛ Ԛ
- key <AD03> { [ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU, Cyrillic_u_straight_bar,Cyrillic_U_straight_bar, Byelorussian_shortu, Byelorussian_SHORTU ] }; // у У ў Ў ұ Ұ ў Ў
- key <AD04> { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender,Cyrillic_KA_descender, U049F, U049E, U046F, U046E ] }; // к К Қ қ ҟ Ҟ ѯ Ѯ
+ key <AD03> { [ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU, Cyrillic_u_straight_bar,Cyrillic_U_straight_bar, Byelorussian_shortu, Byelorussian_SHORTU ] }; // у У ў Ў ұ Ұ ў Ў
+ key <AD04> { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender, U049F, U049E, U046F, U046E ] }; // к К Қ қ ҟ Ҟ ѯ Ѯ
key <AD05> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO, U0463, U0462, UA653, UA652 ] }; // е Е ё Ё ѣ Ѣ ꙓ Ꙓ
key <AD06> { [ Cyrillic_en, Cyrillic_EN, Cyrillic_nje, Cyrillic_NJE, Cyrillic_en_descender, Cyrillic_EN_descender, U04C8, U04C7 ] }; // н Н њ Њ ң Ң ӈ Ӈ
key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn,Ukrainian_GHE_WITH_UPTURN, Cyrillic_ghe_bar, Cyrillic_GHE_bar, U04F7, U04F6 ] }; // г Г Ґ ґ ғ Ғ ӷ Ӷ
key <AD08> { [ Cyrillic_sha, Cyrillic_SHA, U04A1, U04A0, U04AB, U04AA, UA67D, UA67F ] }; // ш Ш ҡ Ҡ ҫ Ҫ Combining Payerok Payerok
key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA, U0505, U0504, UA68D, UA68C, U050F, U050E ] }; // щ Щ ԅ Ԅ ꚍ Ꚍ ԏ Ԏ
key <AD10> { [ Cyrillic_ze, Cyrillic_ZE, U04E1, U04E0, U0499, U0498, U0507, U0506 ] }; // з З ӡ Ӡ ҙ Ҙ ԇ Ԇ
- key <AD11> { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA, Cyrillic_ha_descender, Cyrillic_HA_descender, U04FD, U04FC ] }; // х Х һ Һ ҳ Ҳ ӽ Ӽ
- key <AD12> { [Cyrillic_hardsign,Cyrillic_HARDSIGN, Ukrainian_yi, Ukrainian_YI, Macedonia_dse, Macedonia_DSE, U033E, U2E2F ] }; // ъ Ъ ї Ї ѕ Ѕ, Combining Yerok, Yerok
+ key <AD11> { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA, Cyrillic_ha_descender, Cyrillic_HA_descender, U04FD, U04FC ] }; // х Х һ Һ ҳ Ҳ ӽ Ӽ
+ key <AD12> { [Cyrillic_hardsign,Cyrillic_HARDSIGN, Ukrainian_yi, Ukrainian_YI, Macedonia_dse, Macedonia_DSE, U033E, U2E2F ] }; // ъ Ъ ї Ї ѕ Ѕ, Combining Yerok, Yerok
key <AC01> { [ Cyrillic_ef, Cyrillic_EF, U0473, U0472, U04C4, U04C3, U04FB, U04FA ] }; // ф Ф ѳ Ѳ ӄ Ӄ ӻ Ӻ
- key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, Ukrainian_i, Ukrainian_I, U04D5, U04D4, U04A9, U04A8 ] }; // ы Ы і І ӕ Ӕ ҩ Ҩ
+ key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, Ukrainian_i, Ukrainian_I, U04D5, U04D4, U04A9, U04A8 ] }; // ы Ы і І ӕ Ӕ ҩ Ҩ
key <AC03> { [ Cyrillic_ve, Cyrillic_VE, U051D, U051C, U0529, U0528, U0527, U0526 ] }; // в В ԝ Ԝ ԩ Ԩ ԧ Ԧ
- key <AC04> { [ Cyrillic_a, Cyrillic_A, U04D9, U04D8, UA657, UA656, UA655, UA654 ] }; // а А ә Ә ꙗ Ꙗ ꙕ Ꙕ
+ key <AC04> { [ Cyrillic_a, Cyrillic_A, Cyrillic_schwa, Cyrillic_SCHWA, UA657, UA656, UA655, UA654 ] }; // а А ә Ә ꙗ Ꙗ ꙕ Ꙕ
key <AC05> { [ Cyrillic_pe, Cyrillic_PE, U0525, U0524, U0471, U0470, UA65F, UA65E ] }; // п П ԥ Ԥ ѱ Ѱ ꙟ Ꙟ
key <AC06> { [ Cyrillic_er, Cyrillic_ER, U0481, U0480, U048F, U048E, U0521, U0520 ] }; // р Р ҁ Ҁ ҏ Ҏ ԡ Ԡ
key <AC07> { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar, U047B, U047A, U0461, U0460 ] }; // о О ө Ө ѻ Ѻ ѡ Ѡ
@@ -923,11 +948,11 @@ xkb_symbols "prxn" {
key <LSGT> { [ U0495, U0494, U0501, U0500, U0503, U0502, U0509, U0508 ] }; // ҕ Ҕ ԁ Ԁ ԃ Ԃ ԉ Ԉ
key <AB01> { [ Cyrillic_ya, Cyrillic_YA, U0469, U0468, U0467, U0466, UA657, UA656 ] }; // я Я ѩ Ѩ ѧ Ѧ ꙗ Ꙗ
- key <AB02> { [ Cyrillic_che, Cyrillic_CHE, Serbian_tshe, Serbian_TSHE, U04B7, U04B6, U2016, U00A6 ] }; // ч Ч ћ Ћ ҷ Ҷ ‖ ¦
+ key <AB02> { [ Cyrillic_che, Cyrillic_CHE, Serbian_tshe, Serbian_TSHE, Cyrillic_che_descender, Cyrillic_CHE_descender, U2016, U00A6 ] }; // ч Ч ћ Ћ ҷ Ҷ ‖ ¦
key <AB03> { [ Cyrillic_es, Cyrillic_ES, U046D, U046C, U046B, U046A, U04F7, U04F6 ] }; // с С ѭ Ѭ ѫ Ѫ ӷ Ӷ
- key <AB04> { [ Cyrillic_em, Cyrillic_EM, multiply, U00F7, U22C5, U2219, U04CE, U04CD ] }; // м М × ÷ ⋅ ∙ ӎ Ӎ
- key <AB05> { [ Cyrillic_i, Cyrillic_I, U0475, U0474, U048B, U048A, periodcentered, U261B ] }; // и И ѵ Ѵ ҋ Ҋ · ☛
- key <AB06> { [ Cyrillic_te, Cyrillic_TE, U04AD, U04AC, U051F, U051E, Cyrillic_che_vertstroke,Cyrillic_CHE_vertstroke]}; // т Т ҭ Ҭ ԟ Ԟ ҹ Ҹ
+ key <AB04> { [ Cyrillic_em, Cyrillic_EM, multiply, division, U22C5, U2219, U04CE, U04CD ] }; // м М × ÷ ⋅ ∙ ӎ Ӎ
+ key <AB05> { [ Cyrillic_i, Cyrillic_I, U0475, U0474, U048B, U048A, periodcentered, U261B ] }; // и И ѵ Ѵ ҋ Ҋ · ☛
+ key <AB06> { [ Cyrillic_te, Cyrillic_TE, U04AD, U04AC, U051F, U051E, Cyrillic_che_vertstroke, Cyrillic_CHE_vertstroke ] }; // т Т ҭ Ҭ ԟ Ԟ ҹ Ҹ
key <AB07> { [Cyrillic_softsign,Cyrillic_SOFTSIGN, U04A5, U04A4, UA64F, UA64E, U048D, U048C ] }; // ь Ь ҥ Ҥ ꙏ Ꙏ ҍ Ҍ
key <AB08> { [ Cyrillic_be, Cyrillic_BE, guillemotleft, doublelowquotemark, singlelowquotemark, U2039, U0523, U0522 ] }; // б Б « „ ‚ ‹ ԣ Ԣ
key <AB09> { [ Cyrillic_yu, Cyrillic_YU, guillemotright, leftdoublequotemark, leftsinglequotemark, U203A, rightdoublequotemark, rightsinglequotemark]}; // ю Ю » “ ‘ › ” ’
@@ -959,3 +984,75 @@ xkb_symbols "prxn" {
// srp: Потребно да се ставља lv5:rwin_switch_lock или једна из других брава петег ступња, да би шљакао пребацивач Caps!
// https://bugs.freedesktop.org/show_bug.cgi?id=102189
};
+
+
+partial alphanumeric_keys
+xkb_symbols "unipunct" {
+
+// Раскладка представляет собой обычную русскую раскладку, в которой некоторые редко используемые буквы
+// убрали на третий уровень, и поставили все пунктуационные знаки на то же место, где они стоят на
+// US раскладке (+ добавлен знак номера, который отсутствует в US раскладке, но часто нужен в RU).
+
+// ru(unipunct):
+// `~ 1! 2@ 3#3№ 4$ 5% 6^ 7& 8* 9( 0) -_ =+
+// хХ бБ уУюЮ кК еЕэЭ нН гГ шШщЩ жЖ зЗ [{ ]} \|
+// фФ ыЫ вВ аА пП рР оОёЁ лЛ дД ;: '" //"
+// яЯ чЧцЦ сС мМ иИйЙ тТ ьЬъЪ ,< .> /?
+
+ include "us(basic)"
+ name[Group1]= "Russian (with US punctuation)";
+
+ // Единственный символ, который отсутствует на US раскладке - №
+ key <AE03> { [ 3, numbersign, 3, numerosign ] };
+
+ key <LatQ> { [ Cyrillic_ha, Cyrillic_HA ] };
+ key <LatW> { [ Cyrillic_be, Cyrillic_BE ] };
+ key <LatE> { [ Cyrillic_u, Cyrillic_U, Cyrillic_yu, Cyrillic_YU ] };
+ key <LatR> { [ Cyrillic_ka, Cyrillic_KA ] };
+ key <LatT> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ] };
+ key <LatY> { [ Cyrillic_en, Cyrillic_EN ] };
+ key <LatU> { [ Cyrillic_ghe, Cyrillic_GHE ] };
+ key <LatI> { [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key <LatO> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key <LatP> { [ Cyrillic_ze, Cyrillic_ZE ] };
+
+ key <LatA> { [ Cyrillic_ef, Cyrillic_EF ] };
+ key <LatS> { [ Cyrillic_yeru, Cyrillic_YERU ] };
+ key <LatD> { [ Cyrillic_ve, Cyrillic_VE ] };
+ key <LatF> { [ Cyrillic_a, Cyrillic_A ] };
+ key <LatG> { [ Cyrillic_pe, Cyrillic_PE ] };
+ key <LatH> { [ Cyrillic_er, Cyrillic_ER ] };
+ key <LatJ> { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] };
+ key <LatK> { [ Cyrillic_el, Cyrillic_EL ] };
+ key <LatL> { [ Cyrillic_de, Cyrillic_DE ] };
+
+ key <LatZ> { [ Cyrillic_ya, Cyrillic_YA ] };
+ key <LatX> { [ Cyrillic_che, Cyrillic_CHE, Cyrillic_tse, Cyrillic_TSE ] };
+ key <LatC> { [ Cyrillic_es, Cyrillic_ES ] };
+ key <LatV> { [ Cyrillic_em, Cyrillic_EM ] };
+ key <LatB> { [ Cyrillic_i, Cyrillic_I, Cyrillic_shorti, Cyrillic_SHORTI ] };
+ key <LatN> { [ Cyrillic_te, Cyrillic_TE ] };
+ key <LatM> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "phonetic_mac" {
+
+ include "ru(phonetic_winkeys)"
+ name[Group1]= "Russian (phonetic Macintosh)";
+
+ key <LatE> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] };
+ key <LatW> { [ Cyrillic_sha, Cyrillic_SHA ] };
+ key <LatV> { [ Cyrillic_ve, Cyrillic_VE ] };
+ key <TLDE> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key <AD11> { [ Cyrillic_yu, Cyrillic_YU ] };
+ key <AD12> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key <AE03> { [ 3, numbersign, numerosign ] };
+ key <AE04> { [ 4, dollar, U20BD ] }; // ruble
+ key <AE05> { [ 5, percent ] };
+ key <AE06> { [ 6, caret ] };
+ key <AE11> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, minus, underscore ] };
+ key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] };
+
+ include "level3(ralt_switch)"
+};
diff --git a/test/data/symbols/terminate b/test/data/symbols/terminate
index a43f2b9..60c2479 100644
--- a/test/data/symbols/terminate
+++ b/test/data/symbols/terminate
@@ -1,4 +1,4 @@
-default partial modifier_keys
+default partial modifier_keys
xkb_symbols "ctrl_alt_bksp" {
key <BKSP> {
type="CTRL+ALT",
diff --git a/test/data/symbols/us b/test/data/symbols/us
index 9cc056d..b876978 100644
--- a/test/data/symbols/us
+++ b/test/data/symbols/us
@@ -1,4 +1,4 @@
-default partial alphanumeric_keys modifier_keys
+default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
name[Group1]= "English (US)";
@@ -361,7 +361,7 @@ xkb_symbols "dvorak-alt-intl" {
key <AC03> { [ e, E, eacute ] };
key <AC04> { [ u, U, ucircumflex ] };
key <AC05> { [ i, I, icircumflex ] };
- key <AC10> { [ s, S, ssharp ] };
+ key <AC10> { [ s, S, ssharp, U1E9E ] };
key <AB01> { [ semicolon, colon, acircumflex ] };
key <AB02> { [ q, Q, odiaeresis, dead_ogonek ] };
@@ -488,8 +488,8 @@ xkb_symbols "dvorak-r" {
};
// Classic dvorak layout
-// by Piter Punk <piterpk@terra.com.br> - 2006-07-06
-// Based on dvorak layout and e-mail from Russel L. Harris rlharris@oplink.net
+// by Piter Punk <piterpk@terra.com.br> - 2006-07-06
+// Based on dvorak layout and e-mail from Russel L. Harris rlharris@oplink.net
// on xorg list.
partial alphanumeric_keys
xkb_symbols "dvorak-classic" {
@@ -604,7 +604,7 @@ xkb_symbols "dvp" {
key <AC07> { [ h, H, dead_acute ] };
key <AC08> { [ t, T, thorn, THORN ] };
key <AC09> { [ n, N, ntilde, Ntilde ] };
- key <AC10> { [ s, S, ssharp ] };
+ key <AC10> { [ s, S, ssharp, U1E9E ] };
key <AC11> { [ minus, underscore, hyphen, endash ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
key <BKSL> { [ backslash, bar ] };
@@ -774,7 +774,7 @@ xkb_symbols "colemak" {
key <AC01> { [ a, A, aacute, Aacute ] };
key <AC02> { [ r, R, dead_grave, asciitilde ] };
- key <AC03> { [ s, S, ssharp, asciitilde ] };
+ key <AC03> { [ s, S, ssharp, 0x1001e9e ] };
key <AC04> { [ t, T, dead_acute, dead_doubleacute ] };
key <AC05> { [ d, D, dead_diaeresis, asciitilde ] };
key <AC06> { [ h, H, dead_caron, asciitilde ] };
@@ -878,7 +878,7 @@ xkb_symbols "classmate-intl" {
key <LSGT> { [ backslash, bar, backslash, bar ] };
- key <KP7> { [ KP_Home, KP_7,
+ key <KP7> { [ KP_Home, KP_7,
onehalf, dead_horn ] };
key <KP8> { [ KP_Up, KP_8,
threequarters, dead_ogonek ] };
@@ -957,7 +957,7 @@ xkb_symbols "classmate-altgr-intl" {
key <LSGT> { [ backslash, bar, backslash, bar ] };
- key <KP7> { [ KP_Home, KP_7,
+ key <KP7> { [ KP_Home, KP_7,
dead_horn, dead_horn ] };
key <KP8> { [ KP_Up, KP_8,
dead_ogonek, dead_ogonek ] };
@@ -1032,7 +1032,7 @@ xkb_symbols "olpc" {
key <AD12> { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below
key <AC01> { [ a, A, ae, AE ] };
- key <AC02> { [ s, S, ssharp, 0x1001E9C ] }; // uppercase S sharp
+ key <AC02> { [ s, S, ssharp, 0x1001E9E ] }; // uppercase S sharp
key <AC03> { [ d, D, eth, ETH ] };
key <AC04> { [ f, F, thorn, THORN ] };
key <AC06> { [ h, H, sterling, sterling ] };
@@ -1056,7 +1056,7 @@ xkb_symbols "olpc" {
partial alphanumeric_keys
xkb_symbols "olpc2" {
include "us(olpc)"
- name[Group1]= "English (the divide/multiply keys toggle the layout)";
+ name[Group1]= "English (the divide/multiply toggle the layout)";
include "group(olpc)"
};
@@ -1095,7 +1095,7 @@ xkb_symbols "olpcm" {
key <AD12> { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below
key <AC01> { [ a, A, ae, AE ] };
- key <AC02> { [ s, S, ssharp, 0x1001E9C ] }; // uppercase S sharp
+ key <AC02> { [ s, S, ssharp, 0x1001E9E ] }; // uppercase S sharp
key <AC03> { [ d, D, eth, ETH ] };
key <AC04> { [ f, F, thorn, THORN ] };
key <AC06> { [ h, H, sterling, sterling ] };
@@ -1178,6 +1178,31 @@ xkb_symbols "chr" {
key <AB10> { [ U13C2, U13C9 ] };
};
+// Add Hawaiian `okina and kahako to US layout
+// Author: Greg Meyer <gregory.meyer@gmail.com>, 2020
+// this mapping follows the one for Windows here: http://www.olelo.hawaii.edu/enehana/winkbd.php
+// `okina replaces apostrophe (apostrophe moves to level 3)
+// vowels with kahako (macron) are level 3 symbols
+partial alphanumeric_keys
+xkb_symbols "haw" {
+
+ include "us(basic)"
+ name[Group1] = "Hawaiian";
+
+ // `okina replaces single apostrophe
+ // alt gives the literal apostrophe
+ key <AC11> {[ U02BB, quotedbl, apostrophe ] };
+
+ // kahako
+ key <AC01> {[ a, A, amacron, Amacron ]};
+ key <AD03> {[ e, E, emacron, Emacron ]};
+ key <AD07> {[ u, U, umacron, Umacron ]};
+ key <AD08> {[ i, I, imacron, Imacron ]};
+ key <AD09> {[ o, O, omacron, Omacron ]};
+
+ include "level3(ralt_switch)"
+};
+
// Serbian charecters added as third level symbols to US keyboard layout.
partial alphanumeric_keys
@@ -1203,51 +1228,6 @@ xkb_symbols "hbs" {
include "level3(ralt_switch)"
};
-//based on http://upload.wikimedia.org/wikipedia/commons/1/18/T-Mobile_G1_launch_event_2.jpg
-partial alphanumeric_keys
-xkb_symbols "htcdream" {
- include "inet(htcdream)"
- name[Group1]= "English (US)";
-
- //second row
- key <AD01> { [ q, Q, Tab, Tab ] };
- key <AD02> { [ w, W, grave, grave ] };
- key <AD03> { [ e, E, underscore, underscore ] };
- key <AD04> { [ r, R, sterling, sterling ] };
- key <AD05> { [ t, T, EuroSign, EuroSign ] };
- key <AD06> { [ y, Y, division, division ] };
- key <AD07> { [ u, U, multiply, multiply ] };
- key <AD08> { [ i, I, minus, minus ] };
- key <AD09> { [ o, O, plus, plus ] };
- key <AD10> { [ p, P, equal, equal ] };
-
- //third row
- key <AC01> { [ a, A, NoSymbol, NoSymbol ] };
- key <AC02> { [ s, S, bar, bar ] };
- key <AC03> { [ d ,D, backslash, backslash ] };
- key <AC04> { [ f, F, braceleft, braceleft ] };
- key <AC05> { [ g, G, braceright, braceright ] };
- key <AC06> { [ h, H, colon, colon ] };
- key <AC07> { [ j, J, semicolon, semicolon ] };
- key <AC08> { [ k, K, quotedbl, quotedbl ] };
- key <AC09> { [ l, L, apostrophe, apostrophe ] };
-
- //forth row
- key <AB01> { [ z, Z, NoSymbol, NoSymbol ] };
- key <AB02> { [ x, X, NoSymbol, NoSymbol ] };
- key <AB03> { [ c, C, NoSymbol, NoSymbol ] };
- key <AB04> { [ v, V, bracketleft, bracketleft ] };
- key <AB05> { [ b, B, bracketright, bracketright ] };
- key <AB06> { [ n, N, less, less ] };
- key <AB07> { [ m, M, greater, greater ] };
- key <AB08> { [ comma, comma, question, question ] };
-
- //fifth row
- key <FK15> { [ at, at, asciitilde, asciitilde ] };
-
- include "level3(alt_switch)"
-};
-
// Workman Keyboard Layout symbols for xkb on X.Org Server 7.x
// 09-06-2010 OJ Bucao. http://www.workmanlayout.com
@@ -1642,6 +1622,24 @@ xkb_symbols "cz_sk_de" {
include "level3(ralt_switch)"
};
+// 03 December 2017 - Added us(scn), please refer to
+// Cadèmia Siciliana <l10n@cademiasiciliana.org>
+partial alphanumeric_keys
+xkb_symbols "scn" {
+
+ include "us(intl)"
+ name[Group1]="Sicilian (US keyboard)";
+
+ key <AD03> { [ e, E, U0259, U018F ] };
+ key <AC03> { [ d, D, U1E0D, U1E0C ] };
+ key <AC04> { [ f, F, U0111, U0110 ] };
+ key <AC06> { [ h, H, U1E25, U1E24 ] };
+ key <AB02> { [ x, X, U03C7, U03A7 ] };
+ key <AB09> { [ period, greater, U1D58, dead_caron ] };
+
+ include "level3(ralt_switch)"
+};
+
// XCompose is out! Unicode combining is in! For those of us who live
// on the edge: A keymap using Unicode combining characters instead of
// deadkeys. This variation does not deviate from the lame MS-style
@@ -1665,7 +1663,7 @@ xkb_symbols "cz_sk_de" {
partial alphanumeric_keys
xkb_symbols "intl-unicode" {
- name[Group1]= "English (US, international AltGr Unicode combining)";
+ name[Group1]= "English (US, intl., AltGr Unicode combining)";
include "us(intl)"
include "level3(ralt_switch)"
@@ -1715,7 +1713,7 @@ xkb_symbols "intl-unicode" {
partial alphanumeric_keys
xkb_symbols "alt-intl-unicode" {
- name[Group1]= "English (US, international AltGr Unicode combining, alternative)";
+ name[Group1]= "English (US, intl., AltGr Unicode combining, alt.)";
include "us(intl-unicode)"
@@ -1787,3 +1785,224 @@ partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/us(sun_type6)"
};
+
+// Implementation of the 3l keyboard layout
+// See https://github.com/jackrosenthal/threelayout for specification
+partial alphanumeric_keys modifier_keys
+xkb_symbols "3l" {
+ name[Group1] = "English (3l)";
+
+ key.type[Group1] = "ONE_LEVEL";
+ key <TAB> { [ Escape ] };
+ key <CAPS> { [ Tab ] };
+ key <AC11> { [ ISO_Level3_Shift ] }; // Sym Modifier
+ key <AB10> { [ ISO_Level5_Shift ] }; // Cur/Num Modifier
+
+ // Top row numbers - not part of spec, but given for convenience
+ key <AE01> { [ 1 ] };
+ key <AE02> { [ 2 ] };
+ key <AE03> { [ 3 ] };
+ key <AE04> { [ 4 ] };
+ key <AE05> { [ 5 ] };
+ key <AE06> { [ 6 ] };
+ key <AE07> { [ 7 ] };
+ key <AE08> { [ 8 ] };
+ key <AE09> { [ 9 ] };
+ key <AE10> { [ 0 ] };
+
+ // Main keys
+ // Order of mods (defined by EIGHT_LEVEL_SEMIALPHABETIC) is:
+ // [ None, Shift, Sym, Shift+Sym, Num, Shift+Num, Sym+Num, Shift+Sym+Num ]
+ key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
+
+ // Second row
+ key <AD01> { [ q, Q, quotedbl, Greek_omicron, Prior, Prior, U21CD, Greek_OMICRON ] };
+ key <AD02> { [ f, F, underscore, Greek_phi, BackSpace, BackSpace, U21A4, Greek_PHI ] };
+ key <AD03> { [ u, U, bracketleft, Greek_upsilon, Up, Up, U2191, Greek_UPSILON ] };
+ key <AD04> { [ y, Y, bracketright, Greek_psi, Delete, Delete, U21A6, Greek_PSI ] };
+ key <AD05> { [ z, Z, asciicircum, Greek_zeta, Next, Next, U21CF, Greek_ZETA ] };
+ key <AD06> { [ x, X, exclam, Greek_xi, NoSymbol, NoSymbol, U2260, Greek_XI ] };
+ key <AD07> { [ k, K, less, Greek_kappa, 1, A, U2A7D, Greek_KAPPA ] };
+ key <AD08> { [ c, C, greater, Greek_chi, 2, B, U2A7E, Greek_CHI ] };
+ key <AD09> { [ w, W, equal, Greek_omega, 3, C, U2261, Greek_OMEGA ] };
+ key <AD10> { [ b, B, ampersand, Greek_beta, NoSymbol, NoSymbol, U2248, Greek_BETA ] };
+
+ // Home row
+ key <AC01> { [ o, O, slash, Greek_omega, Home, Home, U21D0, Greek_OMEGA ] };
+ key <AC02> { [ h, H, minus, Greek_theta, Left, Left, U2190, Greek_THETA ] };
+ key <AC03> { [ e, E, braceleft, Greek_epsilon, Down, Down, U2193, Greek_EPSILON ] };
+ key <AC04> { [ a, A, braceright, Greek_alpha, Right, Right, U2192, Greek_ALPHA ] };
+ key <AC05> { [ i, I, asterisk, Greek_iota, End, End, U21D2, Greek_IOTA ] };
+ key <AC06> { [ d, D, question, Greek_delta, period, colon, U2286, Greek_DELTA ] };
+ key <AC07> { [ r, R, parenleft, Greek_rho, 4, D, U2227, Greek_RHO ] };
+ key <AC08> { [ t, T, parenright, Greek_tau, 5, E, U2228, Greek_TAU ] };
+ key <AC09> { [ n, N, apostrophe, Greek_eta, 6, F, U2200, Greek_ETA ] };
+ key <AC10> { [ s, S, colon, Greek_sigma, NoSymbol, NoSymbol, U2203, Greek_SIGMA ] };
+
+ // Bottom row
+ key <AB01> { [ comma, comma, numbersign, NoSymbol, slash, NoSymbol, U21AE, NoSymbol ] };
+ key <AB02> { [ m, M, dollar, Greek_mu, asterisk, NoSymbol, U2194, Greek_MU ] };
+ key <AB03> { [ period, period, bar, NoSymbol, minus, NoSymbol, U21CE, NoSymbol ] };
+ key <AB04> { [ j, J, asciitilde, Greek_SIGMA, plus, NoSymbol, U21D4, NoSymbol ] };
+ key <AB05> { [ semicolon, semicolon, grave, NoSymbol, comma, NoSymbol, U2282, NoSymbol ] };
+ key <AB06> { [ g, G, plus, Greek_gamma, 0, NoSymbol, U2229, Greek_GAMMA ] };
+ key <AB07> { [ l, L, percent, Greek_lambda, 7, parenleft, U222A, Greek_LAMBDA ] };
+ key <AB08> { [ p, P, backslash, Greek_pi, 8, parenright, U2208, Greek_PI ] };
+ key <AB09> { [ v, V, at, Greek_nu, 9, NoSymbol, U2209, Greek_NU ] };
+
+ include "level5(modifier_mapping)"
+};
+
+// Chromebooks typically have the key which is normally in the caps
+// lock position mapped to keycode 133 (LWIN). For 3l, it is critical
+// that the key in this positon correspond to tab, so there is a
+// variant available for chromebook hardware.
+partial modifier_keys
+xkb_symbols "3l-cros" {
+ include "us(3l)"
+ name[Group1] = "English (3l, Chromebook)";
+ key <LWIN> {
+ type[Group1] = "ONE_LEVEL",
+ symbols[Group1] = [ Tab ]
+ };
+};
+
+// A 3l variant for emacs users, which maps control to caps lock and (re)maps
+// tab back to tab.
+partial modifier_keys
+xkb_symbols "3l-emacs" {
+ include "us(3l)"
+ name[Group1] = "English (3l, emacs)";
+
+ key <TAB> { [ Tab ] };
+ key <CAPS> { [ Control_L ] };
+
+ modifier_map Control { <CAPS> };
+};
+
+// Drix EU Latin - version 3.1 (2019-10-07)
+// Author: Jerome Leclanche <jerome@leclan.ch>
+// Latin layout based on classic US qwerty, with azerty-style second-row m key.
+// Features:
+// - Programmer-centric punctuation keys (All common symbols on right hand except < and > on left)
+// - Most common dead accents on altgr-shift number row
+// - Unicode arrows on Altgr+shift+WASD
+// - Some commonly used special characters available:
+// - Most common european special characters
+// - Misc currency symbols, copyright/registered/trademark symbols
+// - Common math symbols + some common greek letters
+// - Compose key replaces Mod5
+//
+// This layout is in the Public Domain.
+//
+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
+// │ ~ ~ │ " ´ │ ' ` │ ^ ^ │ ` ¨ │ ´ ° │ 6 ¯ │ 7 ¸ │ 8 ˛ │ 9 ˇ │ | ˝ │ _ ± │ = ≠ ┃Backspace┃
+// │ @ £ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ⁴ │ 5 ⁵ │ 6 ⁶ │ 7 ⁷ │ 8 ⁸ │ 9 ⁹ │ 0 ⁰ │ - " │ + ' ┃ ⌫ ┃
+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
+// ┃Tab ┃ Q Ø │ W ↑ │ E € │ R ₽ │ T τ │ Y ¥ │ U U │ I ’ │ O Ω │ P ₱ │ [ « │ ] » ┃ ⏎ ┃
+// ┃ ↹ ┃ q ø │ w w │ e € │ r ® │ t ™ │ y ¥ │ u u │ i ‘ │ o œ │ p π │ ( { │ ) } ┃ Enter ┃
+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
+// ┃Caps ┃ A ← │ S ↓ │ D → │ F Ƒ │ G G │ H H │ J ” │ K „ │ L λ │ M M │ % ‰ │ & × ┃ ┃
+// ┃Lock ⇬ ┃ a æ │ s ß │ d Δ │ f ƒ │ g g │ h h │ j “ │ k ‚ │ l £ │ m µ │ # ~ │ * $ ┃ ┃
+// ┣━━━━━━┳━┹───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┲━┷━━━━━┻━━━━━━┫
+// ┃Shift ┃ > ≥ │ Z ¶ │ X ÷ │ C ¢ │ V V │ B ₿ │ N N │ ? ¿ │ , · │ ; ´ │ \ ¦ ┃Shift ┃
+// ┃ ⇧ ┃ < ≤ │ z § │ x × │ c © │ v ♀ │ b ♂ │ n ⚥ │ ! ¡ │ . … │ : ` │ / | ┃ ⇧ ┃
+// ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴────┲┷━━━━━╈━━━━━┻┳━━━━━━┳━━━━━━┫
+// ┃Ctrl ┃ Fn ┃Alt ┃ ␣ Space Nobreakspace ⍽ ┃AltGr ┃Multi ┃ Ctxt ┃ Ctrl ┃
+// ┃ ┃ ┃ ┃ ␣ Space Nobreakspace ⍽ ┃ ┃ ┃ Menu ┃ ┃
+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛
+
+partial alphanumeric_keys modifier_keys
+xkb_symbols "drix" {
+
+ name[Group1] = "English (Drix)";
+
+ // First row
+ key <TLDE> {[ at, asciitilde, sterling, dead_tilde ]}; // @ ~ £ ~
+ key <AE01> {[ 1, quotedbl, onesuperior, dead_grave ]}; // 1 " ¹ `
+ key <AE02> {[ 2, apostrophe, twosuperior, dead_acute ]}; // 2 ' ² ´
+ key <AE03> {[ 3, asciicircum, threesuperior, dead_circumflex ]}; // 3 ^ ³ ^
+ key <AE04> {[ 4, grave, foursuperior, dead_diaeresis ]}; // 4 4 ⁴ ¨
+ key <AE05> {[ 5, degree, fivesuperior, dead_abovering ]}; // 5 ° ⁵ °
+ key <AE06> {[ 6, 6, sixsuperior, dead_macron ]}; // 6 6 ⁶ ¯
+ key <AE07> {[ 7, 7, sevensuperior, dead_cedilla ]}; // 7 7 ⁷ ¸
+ key <AE08> {[ 8, 8, eightsuperior, dead_ogonek ]}; // 8 8 ⁸ ˛
+ key <AE09> {[ 9, 9, ninesuperior, dead_caron ]}; // 9 9 ⁹ ˇ
+ key <AE10> {[ 0, bar, zerosuperior, dead_doubleacute ]}; // 0 | ⁰ ˝
+ key <AE11> {[ minus, underscore, quotedbl, plusminus ]}; // - _ " ±
+ key <AE12> {[ plus, equal, apostrophe, notequal ]}; // + = ' ≠
+
+ // Second row
+ key <AD01> {[ q, Q, oslash, Ooblique ]}; // q Q ø Ø
+ key <AD02> {[ w, W, w, uparrow ]}; // w W w ↑
+ key <AD03> {[ e, E, EuroSign, EuroS ]}; // e E € €
+ key <AD04> {[ r, R, registered, 0x10020bd ]}; // r R ® ₽
+ key <AD05> {[ t, T, trademark, Greek_tau ]}; // t T ™ τ
+ key <AD06> {[ y, Y, yen, yen ]}; // y Y ¥ ¥
+ key <AD07> {[ u, U, u, U ]}; // u U u U
+ key <AD08> {[ i, I, leftsinglequotemark, rightsinglequotemark ]}; // i I ‘ ’
+ key <AD09> {[ o, O, oe, Greek_OMEGA ]}; // o O œ Ω
+ key <AD10> {[ p, P, Greek_pi, 0x10020b1 ]}; // p P π ₱
+ key <AD11> {[ parenleft, bracketleft, braceleft, guillemotleft ]}; // ( [ { «
+ key <AD12> {[ parenright, bracketright, braceright, guillemotright ]}; // ) ] } »
+
+ // Third row
+ key <AC01> {[ a, A, ae, leftarrow ]}; // a A æ ←
+ key <AC02> {[ s, S, ssharp, downarrow ]}; // s S ß ↓
+ key <AC03> {[ d, D, Greek_DELTA, rightarrow ]}; // d D Δ →
+ key <AC04> {[ f, F, 0x1000192, 0x1000191 ]}; // f F ƒ Ƒ
+ key <AC05> {[ g, G, g, G ]}; // g G g G
+ key <AC06> {[ h, H, h, H ]}; // h H h H
+ key <AC07> {[ j, J, leftdoublequotemark, rightdoublequotemark ]}; // j J “ ”
+ key <AC08> {[ k, K, singlelowquotemark, doublelowquotemark ]}; // k K ‚ „
+ key <AC09> {[ l, L, sterling, Greek_lambda ]}; // l L £ λ
+ key <AC10> {[ m, M, mu, M ]}; // m M µ M
+ key <AC11> {[ numbersign, percent, asciitilde, 0x1002030 ]}; // # % ~ ‰
+
+ // Fourth row
+ key <LSGT> {[ less, greater, lessthanequal, greaterthanequal ]}; // < > ≤ ≥
+ key <AB01> {[ z, Z, section, paragraph ]}; // z Z § ¶
+ key <AB02> {[ x, X, multiply, division ]}; // x X × ÷
+ key <AB03> {[ c, C, copyright, cent ]}; // c C © ¢
+ key <AB04> {[ v, V, 0x1002640, V ]}; // v V ♀ V
+ key <AB05> {[ b, B, 0x1002642, 0x10020bf ]}; // b B ♂ ₿
+ key <AB06> {[ n, N, 0x10026a5, N ]}; // n N ⚥ N
+ key <AB07> {[ exclam, question, exclamdown, questiondown ]}; // ! ? ¡ ¿
+ key <AB08> {[ period, comma, 0x1002026, periodcentered ]}; // . , … ·
+ key <AB09> {[ colon, semicolon, grave, acute ]}; // : ; ` ´
+ key <AB10> {[ slash, backslash, bar, brokenbar ]}; // / \ | ¦
+
+ // Next to the enter key
+ key <BKSL> {[ asterisk, ampersand, dollar, multiply ]}; // * & $ ×
+
+ // Rebind right Super (windows key) into a Compose key
+ key <RWIN> {[ Multi_key ]};
+
+ // Implement AltGr and AltGr+Shift
+ // For some reason, include "level3(ralt_switch)" doesn't do the trick.
+ key <RALT> {
+ type[Group1]="TWO_LEVEL",
+ [ ISO_Level3_Shift, Multi_key ]
+ };
+};
+
+// German and Swedish characters added as third level symbols to the US keyboard layout
+// Author: Stephan Lachnit <stephanlachnit@protonmail.com>, 2019
+// the german umlauts are placed over the characters without diaeresis, the sharp-s over the s
+// the swedish ao is placed over the p, since it's closed to the position on a swedish keyboard
+// the euro sign is placed over the e, as it is usual for german and swedish keyboards
+partial alphanumeric_keys
+xkb_symbols "de_se_fi" {
+
+ include "us(basic)"
+ include "eurosign(e)"
+ name[Group1] = "German, Swedish and Finnish (US)";
+
+ key <AC01> {[ a, A, adiaeresis, Adiaeresis ]};
+ key <AD09> {[ o, O, odiaeresis, Odiaeresis ]};
+ key <AC02> {[ s, S, ssharp, U1E9E ]};
+ key <AD07> {[ u, U, udiaeresis, Udiaeresis ]};
+ key <AD10> {[ p, P, aring, Aring ]};
+
+ include "level3(ralt_switch)"
+};
diff --git a/test/data/types/extra b/test/data/types/extra
index e7529f4..3f1e48d 100644
--- a/test/data/types/extra
+++ b/test/data/types/extra
@@ -1,4 +1,4 @@
-partial default xkb_types "default" {
+default partial xkb_types "default" {
// Defines a type with a four-level shift, similar to the three-level
// type used for iso9995, but it lets the Shift key behave "normally".
diff --git a/test/data/types/iso9995 b/test/data/types/iso9995
index d3c4e0b..137a522 100644
--- a/test/data/types/iso9995
+++ b/test/data/types/iso9995
@@ -1,4 +1,4 @@
-partial default xkb_types "default" {
+default partial xkb_types "default" {
// A key type which can be used to implement
// an ISO9995-style level-three shift.
diff --git a/test/data/types/level5 b/test/data/types/level5
index 0570725..19d1552 100644
--- a/test/data/types/level5
+++ b/test/data/types/level5
@@ -1,4 +1,4 @@
-partial default xkb_types "default" {
+default partial xkb_types "default" {
// Defines a type with an eight-level shift, similar to the three-level
// type used for iso9995, but it lets the Shift key behave "normally".
diff --git a/test/data/types/mousekeys b/test/data/types/mousekeys
index 901848a..0bf8384 100644
--- a/test/data/types/mousekeys
+++ b/test/data/types/mousekeys
@@ -1,4 +1,4 @@
-partial default xkb_types "default" {
+default partial xkb_types "default" {
virtual_modifiers Alt;
type "SHIFT+ALT" {
diff --git a/test/data/types/numpad b/test/data/types/numpad
index 5861f11..01723e9 100644
--- a/test/data/types/numpad
+++ b/test/data/types/numpad
@@ -1,4 +1,4 @@
-partial default xkb_types "pc" {
+default partial xkb_types "pc" {
type "KEYPAD" {
modifiers = Shift+NumLock;
map[None] = Level1;
diff --git a/test/data/types/pc b/test/data/types/pc
index 404e3c9..a980664 100644
--- a/test/data/types/pc
+++ b/test/data/types/pc
@@ -1,4 +1,4 @@
-partial default xkb_types "default" {
+default partial xkb_types "default" {
// Some types that are necessary
// for a full implementation of
diff --git a/test/state.c b/test/state.c
index 3ec7c66..08832f9 100644
--- a/test/state.c
+++ b/test/state.c
@@ -514,7 +514,7 @@ test_range(struct xkb_keymap *keymap)
xkb_keycode_t counter;
assert(xkb_keymap_min_keycode(keymap) == 9);
- assert(xkb_keymap_max_keycode(keymap) == 253);
+ assert(xkb_keymap_max_keycode(keymap) == 569);
counter = xkb_keymap_min_keycode(keymap);
xkb_keymap_key_for_each(keymap, key_iter, &counter);