diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/data/keycodes/evdev | 12 | ||||
-rw-r--r-- | test/data/rules/base | 589 | ||||
-rw-r--r-- | test/data/rules/evdev | 586 | ||||
-rw-r--r-- | test/data/symbols/altwin | 6 | ||||
-rw-r--r-- | test/data/symbols/ca | 8 | ||||
-rw-r--r-- | test/data/symbols/capslock | 9 | ||||
-rw-r--r-- | test/data/symbols/ch | 8 | ||||
-rw-r--r-- | test/data/symbols/ctrl | 19 | ||||
-rw-r--r-- | test/data/symbols/cz | 232 | ||||
-rw-r--r-- | test/data/symbols/de | 65 | ||||
-rw-r--r-- | test/data/symbols/empty | 2 | ||||
-rw-r--r-- | test/data/symbols/il | 2 | ||||
-rw-r--r-- | test/data/symbols/in | 252 | ||||
-rw-r--r-- | test/data/symbols/inet | 50 | ||||
-rw-r--r-- | test/data/symbols/latin | 2 | ||||
-rw-r--r-- | test/data/symbols/level3 | 20 | ||||
-rw-r--r-- | test/data/symbols/macintosh_vndr/apple | 2 | ||||
-rw-r--r-- | test/data/symbols/pc | 2 | ||||
-rw-r--r-- | test/data/symbols/ru | 281 | ||||
-rw-r--r-- | test/data/symbols/terminate | 2 | ||||
-rw-r--r-- | test/data/symbols/us | 335 | ||||
-rw-r--r-- | test/data/types/extra | 2 | ||||
-rw-r--r-- | test/data/types/iso9995 | 2 | ||||
-rw-r--r-- | test/data/types/level5 | 2 | ||||
-rw-r--r-- | test/data/types/mousekeys | 2 | ||||
-rw-r--r-- | test/data/types/numpad | 2 | ||||
-rw-r--r-- | test/data/types/pc | 2 | ||||
-rw-r--r-- | test/state.c | 2 |
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); |