summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRan Benita <ran234@gmail.com>2017-12-03 13:04:35 +0200
committerRan Benita <ran234@gmail.com>2017-12-03 13:07:21 +0200
commit6456835f1c547e4f9da3dc8728d1fe09eeca8593 (patch)
treea8538457112052cf404f4341cf91ed75fca339df
parent8db924b87df7fdd40023b55a3ee55558d6fd841e (diff)
downloadxorg-lib-libxkbcommon-6456835f1c547e4f9da3dc8728d1fe09eeca8593.tar.gz
test/data: sync with xkeyboard-config 2.22
Some tweaks to the de(neo) keyseq tests were required. It seems to have improved. Signed-off-by: Ran Benita <ran234@gmail.com>
-rw-r--r--test/data/rules/base50
-rw-r--r--test/data/rules/evdev47
-rw-r--r--test/data/symbols/altwin27
-rw-r--r--test/data/symbols/awesome26
-rw-r--r--test/data/symbols/ca6
-rw-r--r--test/data/symbols/capslock21
-rw-r--r--test/data/symbols/ch9
-rw-r--r--test/data/symbols/ctrl19
-rw-r--r--test/data/symbols/cz78
-rw-r--r--test/data/symbols/de467
-rw-r--r--test/data/symbols/group31
-rw-r--r--test/data/symbols/il2
-rw-r--r--test/data/symbols/in153
-rw-r--r--test/data/symbols/inet126
-rw-r--r--test/data/symbols/keypad53
-rw-r--r--test/data/symbols/latin2
-rw-r--r--test/data/symbols/level510
-rw-r--r--test/data/symbols/macintosh_vndr/apple2
-rw-r--r--test/data/symbols/macintosh_vndr/us4
-rw-r--r--test/data/symbols/ru326
-rw-r--r--test/data/symbols/us260
-rw-r--r--test/data/types/level5242
-rw-r--r--test/keyseq.c15
23 files changed, 1640 insertions, 336 deletions
diff --git a/test/data/rules/base b/test/data/rules/base
index 5f02efa..11e1b56 100644
--- a/test/data/rules/base
+++ b/test/data/rules/base
@@ -9,12 +9,15 @@
// If you want non-latin layouts implicitly include the en_US layout
// uncomment lines below
//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \
-// in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \
-// ru scc sy syr tel th tj tam ua uz
+// in ir iku jp kan kh kr la lao lk mk mm mn mv mal olck \
+// ori pk ru scc sy syr tel th tj tam ua uz
// PC models
! $pcmodels = pc101 pc102 pc104 pc105
+// Jolla devices and keyboards
+! $jollamodels = jollasbj
+
// Microsoft models (using MS geometry)
! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose
@@ -122,7 +125,9 @@
sk1300 sk2500 sk6200 sk7100 \
sven sven303 symplon \
toshiba_s3000 trust trustda \
- unitekkb1925 yahoo
+ unitekkb1925 yahoo \
+ teck227 teck229 \
+ apex300
! $inetmediakbds = acer_ferrari4k acer_laptop btc5090 btc9019u cherryblueb \
cherrybluea herrycyboard chicony042 compaqik13 compaqik18 \
@@ -188,6 +193,7 @@
thinkpad = thinkpad(intl)
thinkpad60 = thinkpad(60)
thinkpadz60 = thinkpad(60)
+ apex300 = steelseries(apex300)
$tmgeometries = typematrix(%m)
winbook = winbook(XP5)
pc98 = nec(pc98)
@@ -347,6 +353,8 @@
classmate us = pc+%l(classmate)
empty * = empty(basic)
* empty = empty(basic)
+ jollasbj $nonlatin = jolla_vndr/sbj(common)+us+%l%(v):2
+ jollasbj * = jolla_vndr/sbj(common)+%l%(v)
$sun $sun_custom = pc+sun_vndr/%l%(v)
pc98 nec_vndr/jp = nec_vndr/jp(pc98)
macintosh_old us = macintosh_vndr/us(oldmac)
@@ -456,6 +464,7 @@
* 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])
$sun $sun_custom = pc+sun_vndr/%l[1]%(v[1])
macintosh_old us = macintosh_vndr/us(oldmac)
macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1])
@@ -927,6 +936,7 @@
btc5126t = +inet(nav_acpi_common)
btc9116u = +inet(btc9019u)
btc6301urf = +inet(media_nav_acpi_common)
+ chromebook = +inet(chromebook)
dellsk8125 = +inet(dell)
dellsk8135 = +inet(dell)
cherrybunlim = +inet(nav_common)
@@ -977,26 +987,51 @@
! layout variant = compat
de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de koy = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de bone = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de bone_eszett_home = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de neo_qwertz = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de neo_qwerty = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
jp $sun_compat = complete+japan(kana_lock)
! layout[1] variant[1] = compat
de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de koy = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de bone = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de bone_eszett_home = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de neo_qwertz = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de neo_qwerty = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
jp $sun_compat = complete+japan(kana_lock)
! layout[2] variant[2] = compat
de neo = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
de adnw = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+ de koy = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+ de bone = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+ de bone_eszett_home = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+ de neo_qwertz = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+ de neo_qwerty = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
jp $sun_compat = +complete+japan(kana_lock):2
! layout[3] variant[3] = compat
de neo = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
de adnw = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+ de koy = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+ de bone = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+ de bone_eszett_home = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+ de neo_qwertz = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+ de neo_qwerty = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
jp $sun_compat = +complete+japan(kana_lock):3
! layout[4] variant[4] = compat
de neo = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
de adnw = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+ de koy = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+ de bone = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+ de bone_eszett_home = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+ de neo_qwertz = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+ de neo_qwerty = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
jp $sun_compat = +complete+japan(kana_lock):4
! model layout = compat
@@ -1046,13 +1081,16 @@
altwin:left_meta_win = +altwin(left_meta_win)
altwin:hyper_win = +altwin(hyper_win)
altwin:alt_super_win = +altwin(alt_super_win)
+ altwin:swap_lalt_lwin = +altwin(swap_lalt_lwin)
altwin:swap_alt_win = +altwin(swap_alt_win)
+ altwin:prtsc_rwin = +altwin(prtsc_rwin)
grab:debug = +srvr_ctrl(grab_debug)
grp:switch = +group(switch)
grp:lswitch = +group(lswitch)
grp:win_switch = +group(win_switch)
grp:lwin_switch = +group(lwin_switch)
grp:rwin_switch = +group(rwin_switch)
+ grp:menu_switch = +group(menu_switch)
grp:toggle = +group(toggle)
grp:shifts_toggle = +group(shifts_toggle)
grp:ctrls_toggle = +group(ctrls_toggle)
@@ -1089,6 +1127,7 @@
grp:ralt_rshift_toggle = +group(ralt_rshift_toggle)
grp:alt_shift_toggle = +group(alt_shift_toggle)
grp:alt_shift_toggle_bidir = +group(alt_shift_toggle_bidir)
+ grp:lctrl_lwin_toggle = +group(lctrl_lwin_toggle)
lv3:switch = +level3(switch)
lv3:ralt_switch = +level3(ralt_switch)
lv3:ralt_switch_multikey = +level3(ralt_switch_multikey)
@@ -1108,6 +1147,7 @@
caps:backspace = +capslock(backspace)
caps:super = +capslock(super)
caps:hyper = +capslock(hyper)
+ caps:menu = +capslock(menu)
caps:none = +capslock(none)
caps:ctrl_modifier = +capslock(ctrl_modifier)
ctrl:nocaps = +ctrl(nocaps)
@@ -1164,6 +1204,8 @@
nbsp:level4nl = +nbsp(level4nl)
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)
kpdl:dot = +kpdl(dot)
kpdl:comma = +kpdl(comma)
kpdl:dotoss = +kpdl(dotoss)
@@ -1203,7 +1245,7 @@
lv5:ralt_switch_lock_cancel = +level5(ralt_switch_lock_cancel)
lv5:lwin_switch_lock_cancel = +level5(lwin_switch_lock_cancel)
lv5:rwin_switch_lock_cancel = +level5(rwin_switch_lock_cancel)
-
+ parens:swap_brackets = +parens(swap_brackets)
! option = compat
diff --git a/test/data/rules/evdev b/test/data/rules/evdev
index f58e5b2..872e1de 100644
--- a/test/data/rules/evdev
+++ b/test/data/rules/evdev
@@ -9,12 +9,15 @@
// If you want non-latin layouts implicitly include the en_US layout
// uncomment lines below
//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \
-// in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \
-// ru scc sy syr tel th tj tam ua uz
+// in ir iku jp kan kh kr la lao lk mk mm mn mv mal olck \
+// ori pk ru scc sy syr tel th tj tam ua uz
// PC models
! $pcmodels = pc101 pc102 pc104 pc105
+// Jolla devices and keyboards
+! $jollamodels = jollasbj
+
// Microsoft models (using MS geometry)
! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose
@@ -91,6 +94,7 @@
! model = keycodes
pc98 = evdev(pc98)
applealu_jis = evdev+macintosh(jisevdev)
+ $jollamodels = evdev+jolla(jolla)
olpc = evdev+olpc(olpc)
olpcm = evdev+olpc(olpcm)
* = evdev
@@ -128,6 +132,7 @@
thinkpad = thinkpad(intl)
thinkpad60 = thinkpad(60)
thinkpadz60 = thinkpad(60)
+ apex300 = steelseries(apex300)
$tmgeometries = typematrix(%m)
winbook = winbook(XP5)
pc98 = nec(pc98)
@@ -287,6 +292,8 @@
classmate us = pc+%l(classmate)
empty * = empty(basic)
* empty = empty(basic)
+ jollasbj $nonlatin = jolla_vndr/sbj(common)+us+%l%(v):2
+ jollasbj * = jolla_vndr/sbj(common)+%l%(v)
$sun $sun_custom = pc+sun_vndr/%l%(v)
pc98 nec_vndr/jp = nec_vndr/jp(pc98)
macintosh_old us = macintosh_vndr/us(oldmac)
@@ -396,6 +403,7 @@
* 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])
$sun $sun_custom = pc+sun_vndr/%l[1]%(v[1])
macintosh_old us = macintosh_vndr/us(oldmac)
macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1])
@@ -858,6 +866,7 @@
! model = symbols
$evdevkbds = +inet(evdev)+inet(%m)
+ chromebook = +inet(evdev)+inet(chromebook)
applealu_jis = +inet(evdev)+macintosh_vndr/jp(alujiskeys)
* = +inet(evdev)
@@ -866,26 +875,51 @@
! layout variant = compat
de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de koy = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de bone = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de bone_eszett_home = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de neo_qwertz = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de neo_qwerty = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
jp $sun_compat = complete+japan(kana_lock)
! layout[1] variant[1] = compat
de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de koy = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de bone = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de bone_eszett_home = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de neo_qwertz = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de neo_qwerty = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
jp $sun_compat = complete+japan(kana_lock)
! layout[2] variant[2] = compat
de neo = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
de adnw = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+ de koy = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+ de bone = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+ de bone_eszett_home = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+ de neo_qwertz = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+ de neo_qwerty = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
jp $sun_compat = +complete+japan(kana_lock):2
! layout[3] variant[3] = compat
de neo = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
de adnw = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+ de koy = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+ de bone = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+ de bone_eszett_home = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+ de neo_qwertz = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+ de neo_qwerty = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
jp $sun_compat = +complete+japan(kana_lock):3
! layout[4] variant[4] = compat
de neo = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
de adnw = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+ de koy = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+ de bone = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+ de bone_eszett_home = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+ de neo_qwertz = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+ de neo_qwerty = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
jp $sun_compat = +complete+japan(kana_lock):4
! model layout = compat
@@ -935,13 +969,16 @@
altwin:left_meta_win = +altwin(left_meta_win)
altwin:hyper_win = +altwin(hyper_win)
altwin:alt_super_win = +altwin(alt_super_win)
+ altwin:swap_lalt_lwin = +altwin(swap_lalt_lwin)
altwin:swap_alt_win = +altwin(swap_alt_win)
+ altwin:prtsc_rwin = +altwin(prtsc_rwin)
grab:debug = +srvr_ctrl(grab_debug)
grp:switch = +group(switch)
grp:lswitch = +group(lswitch)
grp:win_switch = +group(win_switch)
grp:lwin_switch = +group(lwin_switch)
grp:rwin_switch = +group(rwin_switch)
+ grp:menu_switch = +group(menu_switch)
grp:toggle = +group(toggle)
grp:shifts_toggle = +group(shifts_toggle)
grp:ctrls_toggle = +group(ctrls_toggle)
@@ -978,6 +1015,7 @@
grp:ralt_rshift_toggle = +group(ralt_rshift_toggle)
grp:alt_shift_toggle = +group(alt_shift_toggle)
grp:alt_shift_toggle_bidir = +group(alt_shift_toggle_bidir)
+ grp:lctrl_lwin_toggle = +group(lctrl_lwin_toggle)
lv3:switch = +level3(switch)
lv3:ralt_switch = +level3(ralt_switch)
lv3:ralt_switch_multikey = +level3(ralt_switch_multikey)
@@ -997,6 +1035,7 @@
caps:backspace = +capslock(backspace)
caps:super = +capslock(super)
caps:hyper = +capslock(hyper)
+ caps:menu = +capslock(menu)
caps:none = +capslock(none)
caps:ctrl_modifier = +capslock(ctrl_modifier)
ctrl:nocaps = +ctrl(nocaps)
@@ -1053,6 +1092,8 @@
nbsp:level4nl = +nbsp(level4nl)
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)
kpdl:dot = +kpdl(dot)
kpdl:comma = +kpdl(comma)
kpdl:dotoss = +kpdl(dotoss)
@@ -1092,7 +1133,7 @@
lv5:ralt_switch_lock_cancel = +level5(ralt_switch_lock_cancel)
lv5:lwin_switch_lock_cancel = +level5(lwin_switch_lock_cancel)
lv5:rwin_switch_lock_cancel = +level5(rwin_switch_lock_cancel)
-
+ parens:swap_brackets = +parens(swap_brackets)
! option = compat
diff --git a/test/data/symbols/altwin b/test/data/symbols/altwin
index 76a289a..7240ab8 100644
--- a/test/data/symbols/altwin
+++ b/test/data/symbols/altwin
@@ -1,4 +1,4 @@
-// Meta is mapped to second level of Alt keys.
+// Meta is mapped to second level of Alt.
partial modifier_keys
xkb_symbols "meta_alt" {
key <LALT> { [ Alt_L, Meta_L ] };
@@ -8,7 +8,7 @@ xkb_symbols "meta_alt" {
// modifier_map Mod4 {};
};
-// Alt is mapped to the Win keys (and the usual Alt keys).
+// Alt is mapped to the Super and the usual Alt.
partial modifier_keys
xkb_symbols "alt_win" {
key <LWIN> { [ Alt_L ] };
@@ -16,7 +16,7 @@ xkb_symbols "alt_win" {
modifier_map Mod1 { <LWIN>, <RWIN> };
};
-// Ctrl is mapped to the Win keys (and the usual Ctrl keys).
+// Ctrl is mapped to the Super and the usual Ctrl keys.
partial modifier_keys
xkb_symbols "ctrl_win" {
key <LWIN> { [ Control_L ] };
@@ -24,7 +24,7 @@ xkb_symbols "ctrl_win" {
modifier_map Control { <LWIN>, <RWIN> };
};
-// Ctrl is mapped to the Alt keys, Alt to the Win keys, and Win to the Ctrl keys.
+// Ctrl is mapped to the Alt, Alt to the Super, and Win to the Ctrl keys.
partial modifier_keys
xkb_symbols "ctrl_alt_win" {
key <LALT> { [ Control_L, Control_L ] };
@@ -39,7 +39,7 @@ xkb_symbols "ctrl_alt_win" {
modifier_map Mod4 { <LCTL>, <RCTL> };
};
-// Meta is mapped to the Win keys.
+// Meta is mapped to the Super.
partial modifier_keys
xkb_symbols "meta_win" {
key <LALT> { [ Alt_L, Alt_L ] };
@@ -60,7 +60,7 @@ xkb_symbols "left_meta_win" {
modifier_map Mod4 { <META>, Meta_L };
};
-// Hyper is mapped to the Win keys.
+// Hyper is mapped to the Super.
partial modifier_keys
xkb_symbols "hyper_win" {
key <LWIN> { [ Hyper_L ] };
@@ -85,25 +85,32 @@ xkb_symbols "alt_super_win" {
modifier_map Mod4 { Super_L, Super_R };
};
-// Swap the Alt and Win keys.
+// Swap the Alt and Super.
partial modifier_keys
xkb_symbols "swap_alt_win" {
include "altwin(swap_lalt_lwin)"
include "altwin(swap_ralt_rwin)"
};
-// Swap the left Alt and Win keys.
-hidden partial modifier_keys
+// Swap the left Alt and Super.
+partial modifier_keys
xkb_symbols "swap_lalt_lwin" {
key <LALT> { type[Group1] = "ONE_LEVEL",
symbols[Group1] = [ Super_L ] };
key <LWIN> { [ Alt_L, Meta_L ] };
};
-// Swap the right Alt and Win keys.
+// Swap the right Alt and Super.
hidden partial modifier_keys
xkb_symbols "swap_ralt_rwin" {
key <RALT> { type[Group1] = "ONE_LEVEL",
symbols[Group1] = [ Super_R ] };
key <RWIN> { [ Alt_R, Meta_R ] };
};
+
+// Win is mapped to the PrtSc key (and the usual Win key).
+partial modifier_keys
+xkb_symbols "prtsc_rwin" {
+ replace key <PRSC> { [ Super_R, Super_R ] };
+ modifier_map Mod4 { <PRSC>, <RWIN> };
+};
diff --git a/test/data/symbols/awesome b/test/data/symbols/awesome
new file mode 100644
index 0000000..a8d38c4
--- /dev/null
+++ b/test/data/symbols/awesome
@@ -0,0 +1,26 @@
+default alphanumeric_keys modifier_keys function_keys alternate_group
+xkb_symbols "awesome" {
+ include "us"
+
+ name[Group1]= "My Awesome Layout";
+
+ key <AE02> { [ 2, at, Page_Up, Page_Up ] };
+ key <AE03> { [ 3, numbersign, Page_Down, Page_Down ] };
+
+ key <AD01> { [ q, Q, Escape, Escape ] };
+ key <AD02> { [ w, W, Home, Home ] };
+ key <AD03> {
+ type="THREE_LEVEL",
+ symbols=[ e, E, Up]
+ };
+ key <AD04> { [ r, R, End, End ] };
+ key <AD05> { [ t, T, Tab, Tab ] };
+
+ key <AC01> { [ a, A, Return, Return ] };
+ key <AC02> { [ s, S, Left] };
+ key <AC03> { [ d, D, Down] };
+ key <AC04> { [ f, F, Righ] };
+ key <AC05> { [ g, G, BackSpace, BackSpace ] };
+
+ key <AB05> { [ b, B, Delete, Delete ] };
+};
diff --git a/test/data/symbols/ca b/test/data/symbols/ca
index 2ba48b4..84f153c 100644
--- a/test/data/symbols/ca
+++ b/test/data/symbols/ca
@@ -170,7 +170,7 @@ xkb_symbols "multi" {
include "ca(fr)"
- name[Group1] = "Canadian Multilingual (first part)";
+ name[Group1] = "Canadian Multilingual (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 (second part)";
+ name[Group1] = "Canadian Multilingual (2nd part)";
key <TLDE> { [ NoSymbol, hyphen ] };
key <AE01> { [ onesuperior, exclamdown ] };
@@ -467,6 +467,8 @@ partial alphanumeric_keys
xkb_symbols "eng" {
include "us(basic)"
name[Group1] = "English (Canada)";
+
+ key <LSGT> { [ backslash, bar, VoidSymbol, VoidSymbol ] };
};
// EXTRAS:
diff --git a/test/data/symbols/capslock b/test/data/symbols/capslock
index 3f4a0cd..6b85c3d 100644
--- a/test/data/symbols/capslock
+++ b/test/data/symbols/capslock
@@ -16,12 +16,6 @@ xkb_symbols "grouplock" {
};
hidden partial modifier_keys
-xkb_symbols "swapescape" {
- key <CAPS> { [ Escape ] };
- key <ESC> { [ Caps_Lock ] };
-};
-
-hidden partial modifier_keys
xkb_symbols "groupshift" {
key <CAPS> {
type[Group1] = "PC_ALT_LEVEL2",
@@ -30,6 +24,12 @@ xkb_symbols "groupshift" {
};
hidden partial modifier_keys
+xkb_symbols "swapescape" {
+ key <CAPS> { [ Escape ] };
+ key <ESC> { [ Caps_Lock ] };
+};
+
+hidden partial modifier_keys
xkb_symbols "escape" {
key <CAPS> { [ Escape ] };
};
@@ -52,8 +52,8 @@ xkb_symbols "hyper" {
};
hidden partial modifier_keys
-xkb_symbols "none" {
- key <CAPS> { [ VoidSymbol ] };
+xkb_symbols "menu" {
+ key <CAPS> { [ Menu ] };
};
hidden partial modifier_keys
@@ -72,3 +72,8 @@ xkb_symbols "ctrl_modifier" {
};
modifier_map Control { <CAPS> };
};
+
+hidden partial modifier_keys
+xkb_symbols "none" {
+ key <CAPS> { [ VoidSymbol ] };
+};
diff --git a/test/data/symbols/ch b/test/data/symbols/ch
index 62c69f9..a87f93a 100644
--- a/test/data/symbols/ch
+++ b/test/data/symbols/ch
@@ -20,6 +20,7 @@ xkb_symbols "basic" {
key <AD03> { [ e, E, EuroSign ] };
key <AD06> { [ z, Z ] };
+ key <AD09> { [ o, O, oe, OE ] };
key <AD11> { [ udiaeresis, egrave, bracketleft ] };
key <AD12> { [ dead_diaeresis, exclam, bracketright ] };
@@ -61,14 +62,14 @@ xkb_symbols "de_Sundeadkeys" {
partial alphanumeric_keys
xkb_symbols "de_sundeadkeys" {
include "ch(de_Sundeadkeys)"
- name[Group1]= "German (Switzerland, Sun dead keys)";
+ name[Group1]= "German (Switzerland, with Sun dead keys)";
};
partial alphanumeric_keys
xkb_symbols "de_nodeadkeys" {
// modify the basic Swiss German layout not to have any dead keys
include "ch(basic)"
- name[Group1]= "German (Switzerland, eliminate dead keys)";
+ name[Group1]= "German (Switzerland, no dead keys)";
key <AE11> { [ apostrophe, question, acute ] };
key <AE12> { [ asciicircum, grave, asciitilde ] };
key <AD12> { [ diaeresis, exclam, bracketright ] };
@@ -103,14 +104,14 @@ xkb_symbols "fr_Sundeadkeys" {
partial alphanumeric_keys
xkb_symbols "fr_sundeadkeys" {
include "ch(fr_Sundeadkeys)"
- name[Group1]= "French (Switzerland, Sun dead keys)";
+ name[Group1]= "French (Switzerland, with Sun dead keys)";
};
partial alphanumeric_keys
xkb_symbols "fr_nodeadkeys" {
// modify the basic Swiss French layout not to have any dead keys
include "ch(fr)"
- name[Group1]= "French (Switzerland, eliminate dead keys)";
+ name[Group1]= "French (Switzerland, no dead keys)";
key <AE11> { [ apostrophe, question, acute ] };
key <AE12> { [ asciicircum, grave, asciitilde ] };
key <AD12> { [ diaeresis, exclam, bracketright ] };
diff --git a/test/data/symbols/ctrl b/test/data/symbols/ctrl
index dd68add..8791b49 100644
--- a/test/data/symbols/ctrl
+++ b/test/data/symbols/ctrl
@@ -8,6 +8,7 @@ xkb_symbols "nocaps" {
// Make the left Ctrl key a left Meta.
xkb_symbols "lctrl_meta" {
replace key <LCTL> { [ Meta_L ] };
+ modifier_map Mod4 { <LCTL> };
};
// Swap the functions of the CapsLock key and the left Ctrl key.
@@ -15,6 +16,8 @@ partial modifier_keys
xkb_symbols "swapcaps" {
replace key <CAPS> { [ Control_L ] };
replace key <LCTL> { [ Caps_Lock ] };
+ modifier_map Control { <CAPS> };
+ modifier_map Lock { <LCTL> };
};
// Move Ctrl to the leftmost key on the middle row and CapsLock to the
@@ -24,6 +27,8 @@ partial modifier_keys
xkb_symbols "ac_ctrl" {
replace key <AC00> { [ Control_L ] };
replace key <AA00> { [ Caps_Lock ] };
+ modifier_map Control { <AC00> };
+ modifier_map Lock { <AA00> };
};
// Move Ctrl to the leftmost key on the bottom row and CapsLock to the
@@ -33,12 +38,15 @@ partial modifier_keys
xkb_symbols "aa_ctrl" {
replace key <AA00> { [ Control_L ] };
replace key <AC00> { [ Caps_Lock ] };
+ modifier_map Control { <AA00> };
+ modifier_map Lock { <AC00> };
};
-// Right Ctrl key functions as another right Alt.
+// Right Ctrl functions as another right Alt.
partial modifier_keys
xkb_symbols "rctrl_ralt" {
key <RCTL> { symbols[Group1]= [ Alt_R ] };
+ modifier_map Mod1{ <RCTL> };
};
// Menu key functions as another right Ctrl.
@@ -61,6 +69,8 @@ partial modifier_keys
xkb_symbols "swap_lalt_lctl" {
replace key <LALT> { [ Control_L, Control_L ] };
replace key <LCTL> { [ Alt_L, Meta_L ] };
+ modifier_map Mod1 { <LCTL> };
+ modifier_map Control { <LALT> };
};
// Swap the functions of the left Win key and the left Ctrl key.
@@ -68,6 +78,8 @@ partial modifier_keys
xkb_symbols "swap_lwin_lctl" {
replace key <LWIN> { [ Control_L ] };
replace key <LCTL> { [ Super_L ] };
+ modifier_map Mod4 { <LCTL> };
+ modifier_map Control { <LWIN> };
};
// Swap the functions of the right Win key and the right Ctrl key.
@@ -75,6 +87,8 @@ partial modifier_keys
xkb_symbols "swap_rwin_rctl" {
replace key <RWIN> { [ Control_R ] };
replace key <RCTL> { [ Super_R ] };
+ modifier_map Mod4 { <RCTL> };
+ modifier_map Control { <RWIN> };
};
// Map Ctrl to the left Alt key, Alt to the left Win key,
@@ -84,4 +98,7 @@ xkb_symbols "swap_lalt_lctl_lwin" {
replace key <LALT> { [ Control_L, Control_L ] };
replace key <LWIN> { [ Alt_L, Meta_L ] };
replace key <LCTL> { [ Super_L ] };
+ modifier_map Mod1 { <LWIN> };
+ modifier_map Mod4 { <LCTL> };
+ modifier_map Control { <LALT> };
};
diff --git a/test/data/symbols/cz b/test/data/symbols/cz
index 97ab3cf..3407e92 100644
--- a/test/data/symbols/cz
+++ b/test/data/symbols/cz
@@ -86,7 +86,7 @@ xkb_symbols "qwerty" {
// 2011 by Lukáš Mojžíš <lmojzis@grenames.cz>
include "cz(basic)"
- name[Group1]= "Czech (qwerty)";
+ name[Group1]= "Czech (QWERTY)";
key <AB01> { [ z, Z, degree, NoSymbol ] };
key <AC10> { [ uring, quotedbl, semicolon, colon ] };
@@ -103,7 +103,7 @@ xkb_symbols "qwerty_bksl" {
// Use <BKSL> instead of <LSGT> (useful for keyboards without <LSGT> key).
include "cz(qwerty)"
- name[Group1]= "Czech (qwerty, extended Backslash)";
+ name[Group1]= "Czech (QWERTY, extended backslash)";
key <BKSL> { [ backslash, bar, slash, NoSymbol ] };
};
@@ -115,7 +115,7 @@ xkb_symbols "ucw" {
// it contains accented characters only, no 'latin' set.
// 2008 by Milan Vancura <mvancura@suse.cz>
- name[Group1]= "Czech (UCW layout, accented letters only)";
+ name[Group1]= "Czech (UCW, only accented letters)";
key <AB01> { [zcaron, Zcaron ] };
key <AB02> { [ssharp ] };
@@ -154,7 +154,7 @@ xkb_symbols "dvorak-ucw" {
// AltGr produces accented characters.
include "us(dvorak)"
- name[Group1]= "Czech (US Dvorak with CZ UCW support)";
+ name[Group1]= "Czech (US, Dvorak, UCW support)";
key <AB03> { [ j, J, eacute, Eacute ] };
key <AB04> { [ k, K, uacute, Uacute ] };
@@ -177,6 +177,76 @@ xkb_symbols "dvorak-ucw" {
include "level3(ralt_switch)"
};
+// phonetic layout for Russian letters on an CZ (QWERTY) keyboard
+// originaly created by Pavel Sorejs <sorejs@gmail.com>
+
+partial alphanumeric_keys
+xkb_symbols "rus" {
+
+ include "cz(qwerty)"
+ name[Group1]= "Russian (Czech, phonetic)";
+
+ key <AE01> { [ plus, ampersand, 1 , 1 ] };
+ key <AE02> { [ Cyrillic_hardsign, 2, 2 , 2 ] };
+ key <AE03> { [ Cyrillic_sha, Cyrillic_SHA, 3 , 3 ] };
+ key <AE04> { [ Cyrillic_che, Cyrillic_CHE, 4 , 4 ] };
+ key <AE05> { [ Cyrillic_shcha, Cyrillic_SHCHA, 5 , 5 ] };
+ key <AE06> { [ Cyrillic_zhe, Cyrillic_ZHE, 6 , 6 ] };
+ key <AE07> { [ quotedbl, 4, 7 , 7 ] };
+ key <AE08> { [ section, 5, 8 , 8 ] };
+ key <AE09> { [ dollar, 6, 9 , 9 ] };
+ key <AE10> { [ equal, 7, 0 , 0 ] };
+ key <AE11> { [ percent, 8 ] };
+ key <AE12> { [ apostrophe, 9 ] };
+
+ key <AB08> { [ comma, question ] };
+ key <AB09> { [ period, exclam ] };
+ key <AB10> { [ minus, slash ] };
+
+ key <AC11> { [ semicolon, colon ] };
+
+ key <LSGT> { [ bar, brokenbar ] };
+
+ key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
+
+
+ key <AD01> { [ numerosign, 1, q, Q ] };
+ key <AD02> { [ Cyrillic_yu, Cyrillic_YU, w, W ] };
+ key <AD03> { [ Cyrillic_ie, Cyrillic_IE, e, E ] };
+ key <AD04> { [ Cyrillic_er, Cyrillic_ER, r, R ] };
+ key <AD05> { [ Cyrillic_te, Cyrillic_TE, t, T ] };
+ key <AD06> { [ Cyrillic_yeru, Cyrillic_YERU, y, Y ] };
+ key <AD07> { [ Cyrillic_u, Cyrillic_U, u, U ] };
+ key <AD08> { [ Cyrillic_i, Cyrillic_I, i, I ] };
+ key <AD09> { [ Cyrillic_o, Cyrillic_O, o, O ] };
+ key <AD10> { [ Cyrillic_pe, Cyrillic_PE, p, P ] };
+ key <AD11> { [ Cyrillic_e, Cyrillic_E, bracketleft, division ] };
+ key <AD12> { [ parenright, parenleft, bracketright, multiply ] };
+
+ key <AC01> { [ Cyrillic_a, Cyrillic_A, a, A ] };
+ key <AC02> { [ Cyrillic_es, Cyrillic_ES, s, S ] };
+ key <AC03> { [ Cyrillic_de, Cyrillic_DE, d, D ] };
+ key <AC04> { [ Cyrillic_ef, Cyrillic_EF, f, F ] };
+ key <AC05> { [ Cyrillic_ghe, Cyrillic_GHE, g, G ] };
+ key <AC06> { [ Cyrillic_ha, Cyrillic_HA, h, H ] };
+ key <AC07> { [ Cyrillic_shorti, Cyrillic_SHORTI, j, J ] };
+ key <AC08> { [ Cyrillic_ka, Cyrillic_KA, k, K ] };
+ key <AC09> { [ Cyrillic_el, Cyrillic_EL, l, L ] };
+ key <AC10> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, less, greater ] };
+
+ key <AB01> { [ Cyrillic_ze, Cyrillic_ZE, z, Z ] };
+ key <AB02> { [ Cyrillic_ya, Cyrillic_YA, 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_en, Cyrillic_EN, n, N ] };
+ key <AB07> { [ Cyrillic_em, Cyrillic_EM, m, M ] };
+
+ key <BKSL> { [ backslash, brokenbar ] };
+
+ include "level3(ralt_switch)"
+};
+
// EXTRAS:
partial alphanumeric_keys
diff --git a/test/data/symbols/de b/test/data/symbols/de
index 944732e..c025a1c 100644
--- a/test/data/symbols/de
+++ b/test/data/symbols/de
@@ -13,14 +13,6 @@ xkb_symbols "basic" {
key <AE11> {type[Group1]="FOUR_LEVEL_PLUS_LOCK", symbols[Group1]=
[ssharp, question, backslash, questiondown, 0x1001E9E ]};
-// The unicode capital letter sharp s U+1E9E is transformed to "SS"
-// to match the rules for capitalizing sharp s in german.
-// If the capital sharp s is needed, delete the line
-// starting with <U1E9C> from /usr/share/X11/locale/iso8859-15/Compose.
-// If both doubled S and capital sharp s are needed, use 0x1001E9E
-// for capital sharp s and some free unicode codepoint like 0x1001E9C
-// for doubled S. Don`t forget to change this in the Compose file, too.
-
key <AE12> { [dead_acute, dead_grave, dead_cedilla, dead_ogonek ] };
key <AD03> { [ e, E, EuroSign, EuroSign ] };
@@ -43,6 +35,7 @@ xkb_symbols "basic" {
key <AB08> { [ comma, semicolon, periodcentered, multiply ] };
key <AB09> { [ period, colon, U2026, division ] };
key <AB10> { [ minus, underscore, endash, emdash ] };
+ key <LSGT> { [ less, greater, bar, dead_belowmacron ] };
include "kpdl(comma)"
@@ -50,11 +43,11 @@ xkb_symbols "basic" {
};
partial alphanumeric_keys
-xkb_symbols "legacy" {
+xkb_symbols "deadtilde" {
// previous standard German layout with tilde as dead key
include "de(basic)"
- name[Group1]="German (legacy)";
+ name[Group1]="German (dead tilde)";
key <AD12> { [ plus, asterisk, dead_tilde, dead_macron ] };
};
@@ -65,15 +58,15 @@ xkb_symbols "nodeadkeys" {
// modify the basic German layout to not have any dead keys
include "de(basic)"
- name[Group1]="German (eliminate dead keys)";
-
- key <TLDE> { [asciicircum, degree, notsign, notsign ] };
- key <AE12> { [ acute, grave, cedilla, cedilla ] };
- key <AD11> { [udiaeresis, Udiaeresis, diaeresis, diaeresis ] };
- key <AD12> { [ plus, asterisk, asciitilde, macron ] };
- key <AC10> { [odiaeresis, Odiaeresis, doubleacute, doubleacute ] };
- key <AC11> { [adiaeresis, Adiaeresis, asciicircum, asciicircum ] };
- key <BKSL> { [numbersign, apostrophe, grave, grave ] };
+ name[Group1]="German (no dead keys)";
+
+ key <TLDE> { [asciicircum, degree, notsign, notsign ] };
+ key <AE12> { [ acute, grave, cedilla, cedilla ] };
+ key <AD11> { [ udiaeresis, Udiaeresis, diaeresis, diaeresis ] };
+ key <AD12> { [ plus, asterisk, asciitilde, macron ] };
+ key <AC10> { [ odiaeresis, Odiaeresis, doubleacute, doubleacute ] };
+ key <AC11> { [ adiaeresis, Adiaeresis, asciicircum, asciicircum ] };
+ key <BKSL> { [ numbersign, apostrophe, rightsinglequotemark, grave ] };
};
partial alphanumeric_keys
@@ -85,9 +78,9 @@ xkb_symbols "deadgraveacute" {
include "de(basic)"
name[Group1]="German (dead grave acute)";
- key <TLDE> { [asciicircum, degree, notsign, notsign ] };
- key <AD12> { [ plus, asterisk, asciitilde, dead_macron ] };
- key <BKSL> { [numbersign, apostrophe, grave, grave ] };
+ key <TLDE> { [asciicircum, degree, notsign, notsign ] };
+ key <AD12> { [ plus, asterisk, asciitilde, dead_macron ] };
+ key <BKSL> { [ numbersign, apostrophe, rightsinglequotemark, grave ] };
};
partial alphanumeric_keys
@@ -100,8 +93,8 @@ xkb_symbols "deadacute" {
name[Group1]="German (dead acute)";
- key <AE12> { [dead_acute, grave, dead_cedilla, dead_ogonek ] };
- key <BKSL> { [numbersign, apostrophe, dead_grave, dead_grave ] };
+ key <AE12> { [dead_acute, grave, dead_cedilla, dead_ogonek ] };
+ key <BKSL> { [numbersign, apostrophe, rightsinglequotemark, dead_grave ] };
};
@@ -179,7 +172,7 @@ xkb_symbols "T3" {
key.type[Group1] = "THREE_LEVEL";
key <LFSH> { [ Shift_L, Shift_L, ISO_Level5_Latch ] };
key <RTSH> { [ Shift_R, Shift_R, ISO_Level5_Latch ] };
- key <RALT> { [ ISO_Level3_Latch, ISO_Level5_Latch, ISO_Level5_Latch ] };
+ key <RALT> { [ ISO_Level3_Shift, ISO_Level5_Latch, ISO_Level5_Latch ] };
};
partial alphanumeric_keys
@@ -207,7 +200,7 @@ xkb_symbols "ro_nodeadkeys" {
// Read the comment for de_ro !
include "de(nodeadkeys)"
- name[Group1]="Romanian (Germany, eliminate dead keys)";
+ name[Group1]="Romanian (Germany, no dead keys)";
key <AD05> { [ t, T, tcedilla, Tcedilla ] };
key <AD08> { [ i, I, icircumflex, Icircumflex ] };
@@ -291,7 +284,7 @@ xkb_symbols "sundeadkeys" {
include "de(Sundeadkeys)"
- name[Group1]="German (Sun dead keys)";
+ name[Group1]="German (with Sun dead keys)";
};
@@ -338,7 +331,7 @@ xkb_symbols "neo_base" {
// Alphanumeric-keys
// ===============
- key.type[Group1] = "EIGHT_LEVEL";
+ key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK";
// Tab as Multi_key (Compose)
// --------------------------------------------------------------
@@ -366,7 +359,7 @@ xkb_symbols "neo_base" {
// Top row
// --------------------------------------------------------------
- key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
+ key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK";
key <AD01> { [ x, X, ellipsis, Greek_xi, Prior, Prior, Greek_XI, NoSymbol ] };
key <AD02> { [ v, V, underscore, NoSymbol, BackSpace, BackSpace, radical, NoSymbol ] };
key <AD03> { [ l, L, bracketleft, Greek_lambda, Up, Up, Greek_LAMBDA, NoSymbol ] };
@@ -381,12 +374,12 @@ xkb_symbols "neo_base" {
key <AD11> { [ ssharp, U1E9E, U017F, Greek_finalsmallsigma, U2212, NoSymbol, jot, NoSymbol ] };
- key.type[Group1] = "EIGHT_LEVEL";
+ key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK";
key <AD12> { [ dead_acute, dead_tilde, dead_stroke, dead_psili, dead_doubleacute, NoSymbol, dead_breve, NoSymbol ] };
// Middle row
// --------------------------------------------------------------
- key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
+ key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK";
key <AC01> { [ u, U, backslash, NoSymbol, Home, Home, includedin, NoSymbol ] };
key <AC02> { [ i, I, slash, Greek_iota, Left, Left, integral, NoSymbol ] };
key <AC03> { [ a, A, braceleft, Greek_alpha, Down, Down, U2200, NoSymbol ] };
@@ -411,12 +404,12 @@ xkb_symbols "neo_base" {
key <AB06> { [ b, B, plus, Greek_beta, colon, NoSymbol, U21D0, NoSymbol ] };
key <AB07> { [ m, M, percent, Greek_mu, KP_1, KP_1, ifonlyif, NoSymbol ] };
- key.type[Group1] = "EIGHT_LEVEL";
+ key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK";
key <AB08> { [ comma, endash, quotedbl, U03F1, KP_2, KP_2, U21D2, NoSymbol ] };
key <AB09> { [ period, enfilledcircbullet, apostrophe, U03D1, KP_3, KP_3, U21A6, NoSymbol ] };
- key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
+ key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK";
key <AB10> { [ j, J, semicolon, Greek_theta, semicolon, NoSymbol, Greek_THETA, NoSymbol ] };
- key.type[Group1] = "EIGHT_LEVEL";
+ key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK";
// Space key
// --------------------------------------------------------------
@@ -472,8 +465,8 @@ xkb_symbols "neo" {
include "shift(both_capslock)"
include "level3(caps_switch)"
include "level3(bksl_switch)"
- include "level5(lsgt_switch)"
- include "level5(ralt_switch)"
+ include "level5(lsgt_switch_lock)"
+ include "level5(ralt_switch_lock)"
};
// Copied from macintosh_vndr/de
@@ -510,7 +503,7 @@ partial alphanumeric_keys
xkb_symbols "mac_nodeadkeys" {
// modify the standard German mac layout to not have any dead keys
include "de(mac)"
- name[Group1]= "German (Macintosh, eliminate dead keys)";
+ name[Group1]= "German (Macintosh, no dead keys)";
key <TLDE> { [ asciicircum, degree, notsign ] };
key <AE04> { [ 4, dollar, onequarter, currency ] };
@@ -520,7 +513,7 @@ xkb_symbols "mac_nodeadkeys" {
key <AC10> { [ odiaeresis, Odiaeresis, acute ] };
key <AC11> { [ adiaeresis, Adiaeresis, asciicircum ] };
- key <BKSL> { [ numbersign, apostrophe, grave ] };
+ key <BKSL> { [ numbersign, apostrophe, rightsinglequotemark ] };
};
partial alphanumeric_keys
@@ -550,7 +543,7 @@ partial alphanumeric_keys
xkb_symbols "dsb_qwertz"
{
include "latin(basic)"
- name[Group1] = "Lower Sorbian (qwertz)";
+ name[Group1] = "Lower Sorbian (QWERTZ)";
key <AB01> { [ y, Y ] };
key <AB02> { [ x, X ] };
key <AB03> { [ c, C, cacute, Cacute ] };
@@ -580,7 +573,7 @@ xkb_symbols "qwerty" {
include "de(basic)"
- name[Group1] = "German (qwerty)";
+ name[Group1] = "German (QWERTY)";
key <AB01> { [ z, Z, leftarrow, yen ] };
key <AD06> { [ y, Y, guillemotleft, less ] };
@@ -597,8 +590,6 @@ xkb_symbols "ru" {
name[Group1]= "Russian (Germany, phonetic)";
- key.type[group1]="FOUR_LEVEL_ALPHABETIC";
-
key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
key <LatW> { [ Cyrillic_ve, Cyrillic_VE ] };
@@ -636,6 +627,142 @@ xkb_symbols "ru" {
include "level3(ralt_switch)"
};
+// layout for Russian (recommended) letters on a german keyboard
+// based on "Russisch für Deutsche, empfohlen" by B. Bendixen und H. Rothe http://russisch.urz.uni-leipzig.de/key2000.htm 2016-02-01
+// adapted for Linux by Niko Krause <nikokrause@gmx.de> 2016-06-09
+
+partial alphanumeric_keys
+xkb_symbols "ru-recom" {
+
+ include "de(basic)"
+
+ name[Group1]= "Russian (Germany, recommended)";
+
+ key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
+ key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
+ key <LatW> { [ Cyrillic_ve, Cyrillic_VE ] };
+ key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
+ key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
+ key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
+ key <TLDE> { [ Cyrillic_ya, Cyrillic_YA, asciicircum, degree ] };
+ key <LatX> { [ Cyrillic_ha, Cyrillic_HA ] };
+ key <LatZ> { [ Cyrillic_tse, Cyrillic_TSE ] };
+ key <LatI> { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] };
+ key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI, Ukrainian_yi, Ukrainian_YI ] };
+ key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
+ key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
+ key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
+ key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
+ key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
+ key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
+ key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
+ key <LatS> { [ Cyrillic_es, Cyrillic_ES, Cyrillic_ze, Cyrillic_ZE ] };
+ key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
+ key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
+ key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
+ key <LatH> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key <LatC> { [ Cyrillic_che, Cyrillic_CHE ] };
+ key <AC10> { [ Cyrillic_io, Cyrillic_IO ] };
+ key <AD11> { [ Cyrillic_yu, Cyrillic_YU ] };
+ key <AD12> { [ Cyrillic_sha, Cyrillic_SHA, plus, asterisk ] };
+ key <LSGT> { [ Cyrillic_ze, Cyrillic_ZE ] };
+ key <LatY> { [ Cyrillic_yeru, Cyrillic_YERU ] };
+ key <LatV> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
+ key <AC11> { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE ] };
+ key <BKSL> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, numbersign, apostrophe ] };
+ key <LatQ> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
+
+ key <AE11> { [ asciitilde, question, backslash, questiondown ] };
+ key <AE12> { [ U0301, U0300, U0323, U0307 ] };
+
+ include "level3(ralt_switch)"
+};
+
+// layout for Russian (transliteration) letters on a german keyboard
+// based on "Russisch für Deutsche, Transliteration" by B. Bendixen und H. Rothe http://russisch.urz.uni-leipzig.de/key2000.htm 2016-02-01
+// adapted for Linux by Niko Krause <nikokrause@gmx.de> 2016-06-09
+
+partial alphanumeric_keys
+xkb_symbols "ru-translit" {
+
+ include "de(basic)"
+
+ name[Group1]= "Russian (Germany, transliteration)";
+
+ key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
+ key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
+ key <LatW> { [ Cyrillic_sha, Cyrillic_SHA ] };
+ key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
+ key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
+ key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
+ key <TLDE> { [ Cyrillic_ya, Cyrillic_YA, asciicircum, degree ] };
+ key <LatX> { [ Cyrillic_ha, Cyrillic_HA ] };
+ key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
+ key <LatI> { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] };
+ key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI, Ukrainian_yi, Ukrainian_YI ] };
+ key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
+ key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
+ key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
+ key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
+ key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
+ key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
+ key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
+ key <LatS> { [ Cyrillic_es, Cyrillic_ES, Cyrillic_che, Cyrillic_CHE ] };
+ key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
+ key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
+ key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
+ key <LatH> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key <LatC> { [ Cyrillic_tse, Cyrillic_TSE ] };
+ key <AC10> { [ Cyrillic_io, Cyrillic_IO ] };
+ key <AD11> { [ Cyrillic_yu, Cyrillic_YU ] };
+ key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, plus, asterisk ] };
+ key <LSGT> { [ Cyrillic_che, Cyrillic_CHE ] };
+ key <LatY> { [ Cyrillic_yeru, Cyrillic_YERU ] };
+ key <LatV> { [ Cyrillic_ve, Cyrillic_VE ] };
+ key <AC11> { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE ] };
+ key <BKSL> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, numbersign, apostrophe ] };
+ key <LatQ> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
+
+ key <AE11> { [ asciitilde, question, backslash, questiondown ] };
+ key <AE12> { [ U0301, U0300, U0323, U0307 ] };
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "pl" {
+
+ // Combined layout for entering both German and Polish symbols on a German physical
+ // keyboard. Based on German (no dead keys) and Polish (basic). Polish diacritics
+ // on AltGr+"acelnosxz". EuroSign moved to AE04 (AltGr+dollar key) to avoid conflict
+ // with Polish eogonek.
+ //
+ // https://github.com/kontextify/xkeyboard-config
+
+ include "latin(type4)"
+
+ name[Group1]= "Polish (Germany, no dead keys)";
+
+ include "de(nodeadkeys)"
+ key <AE04> { [ 4, dollar, EuroSign, currency ] };
+
+ key <AD01> { [ q, Q ] };
+ key <AD02> { [ w, W ] };
+ key <AD03> { [ e, E, eogonek, Eogonek ] };
+ key <AD09> { [ o, O, oacute, Oacute ] };
+ key <AC01> { [ a, A, aogonek, Aogonek ] };
+ key <AC02> { [ s, S, sacute, Sacute ] };
+ key <AC04> { [ f, F ] };
+ key <AD06> { [ z, Z, zabovedot, Zabovedot ] };
+ key <AB02> { [ x, X, zacute, Zacute ] };
+ key <AB03> { [ c, C, cacute, Cacute ] };
+ key <AB06> { [ n, N, nacute, Nacute ] };
+
+ include "kpdl(comma)"
+
+ include "level3(ralt_switch)"
+};
+
partial alphanumeric_keys
xkb_symbols "htcdream" {
include "inet(htcdream)"
@@ -705,7 +832,7 @@ partial alphanumeric_keys
xkb_symbols "us" {
include "us"
- name[Group1]="German (US keyboard with German letters)";
+ name[Group1]="German (US, with German letters)";
key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
key <AC02> { [ s, S, ssharp, ssharp ] };
@@ -729,19 +856,19 @@ xkb_symbols "hu" {
include "de(basic)"
name[Group1]="German (with Hungarian letters and no dead keys)";
- key <AB01> { [ y, Y, guillemotleft, less ] };
- key <AC10> { [odiaeresis, Odiaeresis, eacute, Eacute ] };
- key <AC11> { [adiaeresis, Adiaeresis, aacute, Aacute] };
- key <AD03> { [ e, E, EuroSign, EuroSign ] };
- key <AD06> { [ z, Z, leftarrow, yen ] };
- key <AD07> { [ u, U, uacute, Uacute ] };
- key <AD08> { [ i, I, iacute, Iacute ] };
- key <AD09> { [ o, O, odoubleacute,Odoubleacute ] };
- key <AD11> { [udiaeresis, Udiaeresis, udoubleacute,Udoubleacute ] };
- key <AD12> { [ plus, asterisk, asciitilde, macron ] };
- key <AE12> { [ acute, grave, oacute, Oacute ] };
- key <BKSL> { [numbersign, apostrophe, grave, grave ] };
- key <TLDE> { [asciicircum, degree, notsign, notsign ] };
+ key <AB01> { [ y, Y, guillemotleft, less ] };
+ key <AC10> { [odiaeresis, Odiaeresis, eacute, Eacute ] };
+ key <AC11> { [adiaeresis, Adiaeresis, aacute, Aacute] };
+ key <AD03> { [ e, E, EuroSign, EuroSign ] };
+ key <AD06> { [ z, Z, leftarrow, yen ] };
+ key <AD07> { [ u, U, uacute, Uacute ] };
+ key <AD08> { [ i, I, iacute, Iacute ] };
+ key <AD09> { [ o, O, odoubleacute, Odoubleacute ] };
+ key <AD11> { [udiaeresis, Udiaeresis, udoubleacute, Udoubleacute ] };
+ key <AD12> { [ plus, asterisk, asciitilde, macron ] };
+ key <AE12> { [ acute, grave, oacute, Oacute ] };
+ key <BKSL> { [numbersign, apostrophe, rightsinglequotemark, grave ] };
+ key <TLDE> { [asciicircum, degree, notsign, notsign ] };
};
partial alphanumeric_keys
@@ -753,11 +880,11 @@ partial alphanumeric_keys
xkb_symbols "adnw_base" {
include "de(neo_base)"
- key.type[Group1] = "EIGHT_LEVEL";
+ key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK";
key <AD04> { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] };
key <AB04> { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] };
- key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
+ key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK";
key <AD01> { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] };
key <AD02> { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] };
key <AD03> { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] };
@@ -800,7 +927,227 @@ xkb_symbols "adnw" {
include "shift(both_capslock)"
include "level3(caps_switch)"
include "level3(bksl_switch)"
- include "level5(lsgt_switch)"
- include "level5(ralt_switch)"
+ include "level5(lsgt_switch_lock)"
+ include "level5(ralt_switch_lock)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "koy_base" {
+ include "de(neo_base)"
+
+ key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK";
+ key <AD02> { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] };
+ key <AD04> { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] };
+
+ key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK";
+ key <AD01> { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] };
+ key <AD03> { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] };
+ key <AD05> { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] };
+ key <AD06> { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] };
+ key <AD07> { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] };
+ key <AD08> { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] };
+ key <AD09> { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] };
+ key <AD10> { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] };
+ key <AD11> { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] };
+ key <AC01> { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] };
+ key <AC02> { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] };
+ key <AC03> { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] };
+ key <AC04> { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] };
+ key <AC05> { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] };
+ key <AC06> { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] };
+ key <AC07> { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] };
+ key <AC08> { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] };
+ key <AC09> { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] };
+ key <AC10> { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] };
+ key <AC11> { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] };
+ key <AB01> { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] };
+ key <AB02> { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] };
+ key <AB03> { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] };
+ key <AB04> { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] };
+ key <AB05> { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] };
+ key <AB06> { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] };
+ key <AB07> { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] };
+ key <AB08> { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] };
+ key <AB09> { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] };
+ key <AB10> { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] };
+};
+
+partial alphanumeric_keys modifier_keys keypad_keys
+xkb_symbols "koy" {
+
+ include "de(koy_base)"
+
+ name[Group1]= "German (KOY)";
+
+ include "shift(both_capslock)"
+ include "level3(caps_switch)"
+ include "level3(bksl_switch)"
+ include "level5(lsgt_switch_lock)"
+ include "level5(ralt_switch_lock)"
};
+partial alphanumeric_keys
+xkb_symbols "bone_base" {
+ include "de(neo_base)"
+
+ key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK";
+ key <AB08> { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] };
+ key <AB09> { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] };
+
+ key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK";
+ key <AD01> { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] };
+ key <AD02> { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] };
+ key <AD03> { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] };
+ key <AD04> { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] };
+ key <AD05> { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] };
+ key <AD06> { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] };
+ key <AD07> { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] };
+ key <AD08> { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] };
+ key <AD09> { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] };
+ key <AD10> { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] };
+ key <AD11> { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] };
+ key <AC01> { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] };
+ key <AC02> { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] };
+ key <AC03> { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] };
+ key <AC04> { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] };
+ key <AC05> { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] };
+ key <AC06> { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] };
+ key <AC07> { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] };
+ key <AC08> { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] };
+ key <AC09> { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] };
+ key <AC10> { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] };
+ key <AC11> { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] };
+ key <AB01> { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] };
+ key <AB02> { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] };
+ key <AB03> { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] };
+ key <AB04> { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] };
+ key <AB05> { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] };
+ key <AB06> { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] };
+ key <AB07> { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] };
+ key <AB10> { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] };
+};
+
+partial alphanumeric_keys modifier_keys keypad_keys
+xkb_symbols "bone" {
+
+ include "de(bone_base)"
+
+ name[Group1]= "German (Bone)";
+
+ include "shift(both_capslock)"
+ include "level3(caps_switch)"
+ include "level3(bksl_switch)"
+ include "level5(lsgt_switch_lock)"
+ include "level5(ralt_switch_lock)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "bone_eszett_home_base" {
+ include "de(bone_base)"
+
+ key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK";
+ key <AD11> { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] };
+ key <AC11> { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] };
+};
+
+partial alphanumeric_keys modifier_keys keypad_keys
+xkb_symbols "bone_eszett_home" {
+
+ include "de(bone_eszett_home_base)"
+
+ name[Group1]= "German (Bone, eszett home row)";
+
+ include "shift(both_capslock)"
+ include "level3(caps_switch)"
+ include "level3(bksl_switch)"
+ include "level5(lsgt_switch_lock)"
+ include "level5(ralt_switch_lock)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "neo_qwertz_base" {
+ include "de(neo_base)"
+
+ key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK";
+ key <AB08> { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] };
+ key <AB09> { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] };
+ key <AB10> { [ minus, emdash, NoSymbol, U2011, NoSymbol, NoSymbol, hyphen, NoSymbol ] };
+
+ key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK";
+ key <AE11> { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] };
+ key <AD01> { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] };
+ key <AD02> { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] };
+ key <AD03> { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] };
+ key <AD04> { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] };
+ key <AD05> { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] };
+ key <AD06> { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] };
+ key <AD07> { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] };
+ key <AD08> { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] };
+ key <AD09> { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] };
+ key <AD10> { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] };
+ key <AD11> { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] };
+ key <AC01> { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] };
+ key <AC02> { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] };
+ key <AC03> { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] };
+ key <AC04> { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] };
+ key <AC05> { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] };
+ key <AC06> { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] };
+ key <AC07> { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] };
+ key <AC08> { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] };
+ key <AC09> { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] };
+ key <AC10> { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] };
+ key <AC11> { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] };
+ key <AB01> { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] };
+ key <AB02> { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] };
+ key <AB03> { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] };
+ key <AB04> { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] };
+ key <AB05> { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] };
+ key <AB06> { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] };
+ key <AB07> { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] };
+};
+
+partial alphanumeric_keys modifier_keys keypad_keys
+xkb_symbols "neo_qwertz" {
+
+ include "de(neo_qwertz_base)"
+
+ name[Group1]= "German (Neo qwertz)";
+
+ include "shift(both_capslock)"
+ include "level3(caps_switch)"
+ include "level3(bksl_switch)"
+ include "level5(lsgt_switch_lock)"
+ include "level5(ralt_switch_lock)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "neo_qwerty_base" {
+ include "de(neo_qwertz_base)"
+
+ key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK";
+ key <AD06> { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] };
+ key <AB01> { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] };
+};
+
+partial alphanumeric_keys modifier_keys keypad_keys
+xkb_symbols "neo_qwerty" {
+
+ include "de(neo_qwerty_base)"
+
+ name[Group1]= "German (Neo qwerty)";
+
+ include "shift(both_capslock)"
+ include "level3(caps_switch)"
+ include "level3(bksl_switch)"
+ include "level5(lsgt_switch_lock)"
+ include "level5(ralt_switch_lock)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "lld" {
+ include "de(basic)"
+ name[Group1] = "German Ladin";
+
+ key <AD10> { [ p, P, ediaeresis, Ediaeresis ] };
+
+};
diff --git a/test/data/symbols/group b/test/data/symbols/group
index 8b00dff..12f35a4 100644
--- a/test/data/symbols/group
+++ b/test/data/symbols/group
@@ -45,6 +45,16 @@ xkb_symbols "rwin_switch" {
};
};
+// The right Menu key (while pressed) chooses the second keyboard group.
+// while Shift+Menu acts as Menu.
+partial modifier_keys
+xkb_symbols "menu_switch" {
+ key <MENU> {
+ symbols[Group1] = [ Mode_switch, Menu ],
+ virtualMods= AltGr
+ };
+};
+
// The right Ctrl key (while pressed) chooses the second keyboard group.
// (Needed mainly for the Canadian keyboard.)
partial modifier_keys
@@ -89,8 +99,9 @@ xkb_symbols "shift_caps_switch" {
partial modifier_keys
xkb_symbols "win_space_toggle" {
key <SPCE> {
- type[Group1]="PC_SUPER_LEVEL2",
- symbols[Group1]= [ space, ISO_Next_Group ]
+ type="PC_SUPER_LEVEL2",
+ symbols[Group1]= [ space, ISO_Next_Group ],
+ symbols[Group2]= [ space, ISO_Next_Group ]
};
};
@@ -322,18 +333,18 @@ partial modifier_keys
xkb_symbols "ctrls_toggle" {
virtual_modifiers LControl, RControl;
key <LCTL> {
- type[Group1]="PC_RCONTROL_LEVEL2",
+ type[Group1]="PC_CONTROL_LEVEL2",
symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
virtualMods= LControl
};
key <RCTL> {
- type[Group1]="PC_LCONTROL_LEVEL2",
+ type[Group1]="PC_CONTROL_LEVEL2",
symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
virtualMods= RControl
};
};
-// Pressing both Alt keys switches to the next or previous group
+// Pressing both Alt switches to the next or previous group
// (depending on which Alt is pressed first).
partial modifier_keys
xkb_symbols "alts_toggle" {
@@ -446,3 +457,13 @@ xkb_symbols "lctrl_lwin_rctrl_menu" {
symbols[Group1] = [ Menu, ISO_Last_Group ]
};
};
+
+// Control_L+Win_L toggles groups.
+partial modifier_keys
+xkb_symbols "lctrl_lwin_toggle" {
+ key <LWIN> {
+ type[ Group1 ] = "PC_CONTROL_LEVEL2",
+ symbols[ Group1 ] = [ Super_L, ISO_Next_Group ]
+ };
+};
+
diff --git a/test/data/symbols/il b/test/data/symbols/il
index 48452d6..67487c1 100644
--- a/test/data/symbols/il
+++ b/test/data/symbols/il
@@ -205,7 +205,7 @@ xkb_symbols "biblical" {
key <AE02> { [ 2, U0599, VoidSymbol, at ] };
key <AE03> { [ 3, U0592, VoidSymbol, numbersign ] };
key <AE04> { [ 4, U05AF, NewSheqelSign, dollar ] };
- key <AE05> { [ 5, VoidSymbol, U200D, percent ] };
+ key <AE05> { [ 5, U05BA, U200D, percent ] };
key <AE06> { [ 6, U05B9, U200C, asciicircum ] };
key <AE07> { [ 7, U05BF, U034F, ampersand ] };
key <AE08> { [ 8, U05C2, U200E, asterisk ] };
diff --git a/test/data/symbols/in b/test/data/symbols/in
index 04c35a2..79d5099 100644
--- a/test/data/symbols/in
+++ b/test/data/symbols/in
@@ -4,6 +4,7 @@
// - Gujarati
// - Kannada
// - Malayalam
+// - Ol Chiki
// - Oriya
// - Tamil
// - Telugu
@@ -21,6 +22,8 @@
// http://ekushey.org/projects/shadhinota/index.html
// - Microsoft Windows XP SP2: Indic Language Standards - an Introduction:
// http://www.bhashaindia.com/MSProducts/XpSp2/Articles/IndicLanguageStandards.aspx
+// - Ol Chiki:
+// http://www.unicode.org/L2/L2005/05243r-n2984-ol-chiki.pdf (fig. 9)
// based on a keyboard map from an 'xkb/symbols/dev' file
@@ -914,6 +917,75 @@ xkb_symbols "mal_lalitha" {
partial alphanumeric_keys
+xkb_symbols "olck" {
+
+ // Layout for the Ol Chiki script.
+ // http://www.unicode.org/L2/L2005/05243r-n2984-ol-chiki.pdf (figure 9)
+
+ name[Group1]= "Ol Chiki";
+
+ key <TLDE> { [ grave, U1C7B ] };
+
+ key <AE01> { [ U1C51, exclam ] };
+ key <AE02> { [ U1C52, at ] };
+ key <AE03> { [ U1C53, numbersign ] };
+ key <AE04> { [ U1C54, dollar, U20B9 ] };
+ key <AE05> { [ U1C55, percent ] };
+ key <AE06> { [ U1C56, asciicircum ] };
+ key <AE07> { [ U1C57, ampersand ] };
+ key <AE08> { [ U1C58, asterisk ] };
+ key <AE09> { [ U1C59, parenleft ] };
+ key <AE10> { [ U1C50, parenright ] };
+ key <AE11> { [ minus, U1C7C ] };
+ key <AE12> { [ equal, plus ] };
+
+ key <AD01> { [ U1C67 ] };
+ key <AD02> { [ U1C63 ] };
+ key <AD03> { [ U1C6E ] };
+ key <AD04> { [ U1C68 ] };
+ key <AD05> { [ U1C74, U1C5B ] };
+ key <AD06> { [ U1C6D ] };
+ key <AD07> { [ U1C69 ] };
+ key <AD08> { [ U1C64 ] };
+ key <AD09> { [ U1C5A, U1C73 ] };
+ key <AD10> { [ U1C6F ] };
+ key <AD11> { [ bracketleft, braceleft ] };
+ key <AD12> { [ bracketright, braceright ] };
+ key <BKSL> { [ U1C7F, U1C7E ] };
+
+ key <AC01> { [ U1C5F ] };
+ key <AC02> { [ U1C65 ] };
+ key <AC03> { [ U1C70, U1C6B ] };
+ key <AC04> { [ U1C5D ] };
+ key <AC05> { [ U1C5C ] };
+ key <AC06> { [ U1C66, U1C77 ] };
+ key <AC07> { [ U1C61 ] };
+ key <AC08> { [ U1C60 ] };
+ key <AC09> { [ U1C5E ] };
+ key <AC10> { [ semicolon, U1C7A ] };
+ key <AC11> { [ apostrophe, quotedbl ] };
+
+ key <AB01> { [ U1C72 ] };
+ key <AB02> { [ U1C7D ] };
+ key <AB03> { [ U1C6A ] };
+ key <AB04> { [ U1C76 ] };
+ key <AB05> { [ U1C75 ] };
+ key <AB06> { [ U1C71, U1C78 ] };
+ key <AB07> { [ U1C62, U1C6C ] };
+ key <AB08> { [ comma, less ] };
+ key <AB09> { [ U1C79, greater ] };
+ key <AB10> { [ slash, question ] };
+
+ key <RALT> {
+ symbols[Group1] = [ Mode_switch, Multi_key ],
+ virtualMods = AltGr
+ };
+
+ include "level3(ralt_switch)"
+};
+
+
+partial alphanumeric_keys
xkb_symbols "ori" {
// Inscript layout for Oriya
// Author: G Karunakar <karunakar@freedomink.org>
@@ -1357,7 +1429,80 @@ xkb_symbols "tel" {
include "level3(ralt_switch)"
};
+//Name : Sarala
+//Description : This is an adaptation of the Sarala keyboard (http://www.medhajananam.org/sarala/) developed
+// by Krishna Dhullipalla. Because of the way keyboard shortcuts are laid out in KDE, the keyboard
+// modifiers had to be changed. The layout does not take any part of the original Sarala keyboard
+// code however. It has been developed from scratch, so the experience may differ.
+//
+// There is a ibus-m17n version of Sarala layout developed by Satya Pothamsetti <potham@gmail.com> on
+// http://www.medhajananam.org/.
+//Standard : Supports Unicode 9.0.
+//Help : This layout differs slightly from the layout on Medhajenanam. The layout has been depicted in the
+// pdf file attached to this post on Sarala google group.
+// (https://groups.google.com/forum/#!topic/sarala-keyboard/-gsa90dUFcs).
+//
+//Layout Developed by : Krishna Dhullipalla <krishnadvr@yahoo.com> (http://www.medhajananam.org/)
+//Author : Venkat R Akkineni <venkatram.akkineni@india.com>
+//Date : Apr 28 2017
partial alphanumeric_keys
+xkb_symbols "tel-sarala"
+{
+ name[Group1] = "Telugu (Sarala)";
+ key.type="FOUR_LEVEL";
+ // sequence base, shift, alt, alt + shift
+ key <AB01> { [ U0C4A, U0C12 ] }; // ొ ఒ
+ key <AB02> { [ U0C42, U0C0A ] }; // ూ ఊ
+ key <AB03> { [ U0C21, U0C22 ] }; // డ ఢ
+ key <AB04> { [ U0C35, U0C39 ] }; // వ హ
+ key <AB05> { [ U0C2C, U0C2D ] }; // బ భ
+ key <AB06> { [ U0C28, U0C23 ] }; // న ణ
+ key <AB07> { [ U0C2E, U0C01 ] }; // మ ఁ
+ key <AB08> { [ U002C, U0C1E, leftcaret ] }; // , ఞ <
+ key <AB09> { [ U002E, U0C19, rightcaret ] }; // . ఙ >
+ key <AB10> { [ U0C36, question, KP_Divide ] }; // శ ? /
+ key <AC01> { [ U0C2F, U0C3D ] }; // య ఽ
+ key <AC02> { [ U0C02, U0C03 ] }; // ం ః
+ key <AC03> { [ U0C26, U0C27 ] }; // ద ధ
+ key <AC04> { [ U0C4D, U0C05 ] }; // ్ అ
+ key <AC05> { [ U0C17, U0C18 ] }; // గ ఘ
+ key <AC06> { [ U0C1A, U0C1B, U0C58, U0C59 ] }; // చ ఛ ౘ ౙ
+ key <AC07> { [ U0C3E, U0C06 ] }; // ా ఆ
+ key <AC08> { [ U0C15, U0C16, U0C62, U0C63 ] }; // క ఖ ౢ ౣ
+ key <AC09> { [ U0C32, U0C33, U0C0C, U0C61 ] }; // ల ళ ఌ ౡ
+ key <AC10> { [ U0C1F, U0C20, semicolon, colon ] }; // ట ఠ ; :
+ key <AC11> { [ quoteright, quotedbl ] }; // ' "
+ key <AD01> { [ U0C46, U0C0E, U0C44, U0C34 ] }; // ె ఎ ౄ ఴ
+ key <AD02> { [ U0C38, U0C37, U0C44 ] }; // స ష ౄ
+ key <AD03> { [ U0C47, U0C0F, U0C44 ] }; // ే ఏ ౄ
+ key <AD04> { [ U0C30, U0C31, U0C44, U0C60 ] }; // ర ఱ ౄ ౠ
+ key <AD05> { [ U0C24, U0C25 ] }; // త థ
+ key <AD06> { [ U0C40, U0C08 ] }; // ీ ఈ
+ key <AD07> { [ U0C41, U0C09 ] }; // ు ఉ
+ key <AD08> { [ U0C3F, U0C07 ] }; // ి ఇ
+ key <AD09> { [ U0C4B, U0C13 ] }; // ో ఓ
+ key <AD10> { [ U0C2A, U0C2B ] }; // ప ఫ
+ key <AD11> { [ U0C1C, U0C1D, bracketleft, braceleft ] }; // జ ఝ [ {
+ key <AD12> { [ U0C48, U0C10, bracketright, braceright ] }; // ై ఐ ] }
+ key <AE01> { [ KP_1, exclam, U0C67, U0C78 ] }; // 1 ! ౦ ౸
+ key <AE02> { [ KP_2, at, U0C68, U0C79 ] }; // 2 @ ౨ ౹
+ key <AE03> { [ KP_3, numbersign, U0C69, U0C7A ] }; // 3 # ౩ ౺
+ key <AE04> { [ KP_4, dollar, U0C6A, U0C7B ] }; // 4 $ ౪ ౻
+ key <AE05> { [ KP_5, percent, U0C6B, U0C7C ] }; // 5 % ౫ ౼
+ key <AE06> { [ KP_6, asciicircum, U0C6C, U0C7D ] }; // 6 ^ ౬ ౽
+ key <AE07> { [ KP_7, ampersand, U0C6D, U0C7E ] }; // 7 & ౭ ౾
+ key <AE08> { [ KP_8, KP_Multiply, U0C6E, U0C7F ] }; // 8 * ౮ ౿
+ key <AE09> { [ KP_9, U0028, U0C6F, U20B9 ] }; // 9 ( ౯ ₹
+ key <AE10> { [ KP_0, U0029, U0C66, U0C55 ] }; // 0 ) ౦ ౕ
+ key <AE11> { [ KP_Subtract, underbar, NoSymbol, U0C56 ] }; // - _ ౖ
+ key <AE12> { [ KP_Equal, KP_Add ] }; // = +
+ key <BKSL> { [ U0C4C, U0C14, U0964, U0965 ] }; // ౌ ఔ । ॥
+ key <TLDE> { [ U0C43, U0C0B, quoteleft, asciitilde ] }; // ృ ఋ ` ~
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
xkb_symbols "urd-phonetic" {
include "pk(urd-phonetic)"
name[Group1]= "Urdu (phonetic)";
@@ -1366,13 +1511,13 @@ xkb_symbols "urd-phonetic" {
partial alphanumeric_keys
xkb_symbols "urd-phonetic3" {
include "pk(urd-crulp)"
- name[Group1]= "Urdu (alternative phonetic)";
+ name[Group1]= "Urdu (alt. phonetic)";
};
partial alphanumeric_keys
xkb_symbols "urd-winkeys" {
include "pk(urd-nla)"
- name[Group1]= "Urdu (WinKeys)";
+ name[Group1]= "Urdu (Win keys)";
};
// based on a keyboard map from an 'xkb/symbols/gur' file
@@ -1654,7 +1799,7 @@ partial alphanumeric_keys
xkb_symbols "eng" {
include "us(basic)"
- name[Group1]= "English (India, with rupee sign)";
+ name[Group1]= "English (India, with rupee)";
include "rupeesign(4)"
include "level3(ralt_switch)"
@@ -1672,7 +1817,7 @@ xkb_symbols "eng" {
partial alphanumeric_keys
xkb_symbols "mal_enhanced" {
- name[Group1] = "Malayalam (enhanced Inscript, with rupee sign)";
+ name[Group1] = "Malayalam (enhanced Inscript, with rupee)";
//From grave to backslash (\)
diff --git a/test/data/symbols/inet b/test/data/symbols/inet
index 33b0583..5403e77 100644
--- a/test/data/symbols/inet
+++ b/test/data/symbols/inet
@@ -2,7 +2,7 @@
// Copyright (C) 2002 Stanislav Brabec <sbrabec@suse.cz>
//
// Based on the LinEAK project.
-// LinEAK - Linux support for Easy Access and Internet Keyboards
+// LinEAK - Linux support for Easy Access and Internets
// Copyright (C) 2001, 2002 Mark Smulders <Mark@PIRnet.nl>
// Usage in XF86Config:
@@ -245,7 +245,7 @@ xkb_symbols "airkey" {
key <I31> { [ XF86AudioStop, XF86Eject ] };
};
-// Acer C300 Laptop
+// Acer C300 laptop
partial alphanumeric_keys
xkb_symbols "acer_c300" {
include "inet(nav_common)"
@@ -275,7 +275,7 @@ xkb_symbols "acer_ferrari4k" {
key <I74> { [ XF86Launch4 ] };
};
-// Acer Laptop (Generic layout for Acer laptops from 2004 onwards)
+// Acer laptop (Generic layout for Acer laptops from 2004 onwards)
// From Carlos Corbacho <cathectic@gmail.com>
// Keys marked (HAL) require HAL 0.5.10 (or newer) to be set up correctly
// (Your laptop must also be added to hal-info)
@@ -310,7 +310,7 @@ xkb_symbols "acer_laptop" {
// Azona
-// Azona RF2300 wireless Internet Keyboard
+// Azona RF2300 wireless Internet
partial alphanumeric_keys
xkb_symbols "azonaRF2300" {
// From Radics Laszlo <garaboncias@mailbox.hu>
@@ -331,7 +331,7 @@ xkb_symbols "azonaRF2300" {
// Brother
-// Brother Internet Keyboard
+// Brother Internet
partial alphanumeric_keys
xkb_symbols "brother" {
include "inet(acpi_common)"
@@ -491,7 +491,7 @@ xkb_symbols "cherryblueb" {
key <IR7C> { [ XF86Go ] };
};
-// Cherry Blue Line CyBo@rd (alternate option)
+// Cherry Blue Line CyBo@rd (alt.)
partial alphanumeric_keys
xkb_symbols "cherrybluea" {
include "inet(media_nav_acpi_common)"
@@ -519,7 +519,7 @@ xkb_symbols "cherrycmexpert" {
// Chicony
-// Chicony Internet Keyboard
+// Chicony Internet
partial alphanumeric_keys
xkb_symbols "chicony" {
include "inet(acpi_common)"
@@ -578,7 +578,7 @@ xkb_symbols "chicony9885" {
// Compaq
-// Compaq Easy Access Keyboard
+// Compaq Easy Access
partial alphanumeric_keys
xkb_symbols "compaqeak8" {
key <I13> { [ XF86Community ] };
@@ -591,7 +591,7 @@ xkb_symbols "compaqeak8" {
key <I23> { [ XF86WWW ] };
};
-// Compaq Internet Keyboard (7 keys)
+// Compaq Internet (7 keys)
partial alphanumeric_keys
xkb_symbols "compaqik7" {
key <I12> { [ XF86LightBulb ] };
@@ -603,7 +603,7 @@ xkb_symbols "compaqik7" {
key <I32> { [ XF86Shop ] };
};
-// Compaq Internet Keyboard (13 keys)
+// Compaq Internet (13 keys)
partial alphanumeric_keys
xkb_symbols "compaqik13" {
include "inet(media_acpi_common)"
@@ -614,7 +614,7 @@ xkb_symbols "compaqik13" {
key <I32> { [ XF86Shop ] };
};
-// Compaq Internet Keyboard (18 keys)
+// Compaq Internet (18 keys)
partial alphanumeric_keys
xkb_symbols "compaqik18" {
include "inet(media_acpi_common)"
@@ -630,7 +630,7 @@ xkb_symbols "compaqik18" {
key <I68> { [ Print ] };
};
-// Laptop/notebook Compaq (eg. Armada, Evo) Laptop Keyboard
+// laptop/notebook Compaq (eg. Armada, Evo) laptop Keyboard
partial alphanumeric_keys
xkb_symbols "armada" {
include "inet(media_acpi_common)"
@@ -643,7 +643,7 @@ xkb_symbols "armada" {
key <I75> { [ XF86Launch0 ] }; // Info Center
};
-// Laptop/notebook Compaq (eg. Presario) Internet Keyboard
+// Compaq Presario laptop
partial alphanumeric_keys
xkb_symbols "presario" {
include "inet(media_acpi_common)"
@@ -656,7 +656,7 @@ xkb_symbols "presario" {
key <I75> { [ XF86AudioMedia ] };
};
-// Compaq iPaq Keyboard
+// Compaq iPaq
partial alphanumeric_keys
xkb_symbols "ipaq" {
key <FK16> { [ XF86Shop ] };
@@ -679,7 +679,7 @@ xkb_symbols "dell" {
key <I26> { [ XF86HomePage ] };
};
-// Dell Precision M65
+// Dell Precision M65 laptop
partial alphanumeric_keys
xkb_symbols "dellm65" {
include "inet(media_common)"
@@ -687,7 +687,7 @@ xkb_symbols "dellm65" {
key <LWIN> { [ Super_L ] };
};
-// Laptop/notebook Dell Inspiron 8xxx
+// laptop/notebook Dell Inspiron 8xxx
partial alphanumeric_keys
xkb_symbols "inspiron" {
include "inet(media_common)"
@@ -699,7 +699,7 @@ xkb_symbols "inspiron" {
key <IR7C> { [ XF86AudioPlay, XF86AudioPause ] };
};
-// DELL USB Multimedia Keyboard (former 8135, generalized, superset of 8125)
+// DELL USB Multimedia (former 8135, generalized, superset of 8125)
partial alphanumeric_keys
xkb_symbols "dellusbmm" {
// Describes the extra keys on a SK-8135 Multimedia keyboard
@@ -713,7 +713,7 @@ xkb_symbols "dellusbmm" {
// Diamond
-// Diamond 9801 / 9802 series
+// Diamond 9801/9802
partial alphanumeric_keys
xkb_symbols "diamond" {
include "inet(media_nav_acpi_common)"
@@ -733,7 +733,7 @@ xkb_symbols "ennyah_dkb1008" {
// Genius
-// Genius Comfy KB-16M / Genius MM Keyboard KWD-910
+// Genius Comfy KB-16M/Multimedia KWD-910
partial alphanumeric_keys
xkb_symbols "genius" {
include "inet(media_acpi_common)"
@@ -779,7 +779,7 @@ xkb_symbols "gyration" {
// Hewlett-Packard
-// Hewlett-Packard Internet Keyboard
+// Hewlett-Packard Internet
partial alphanumeric_keys
xkb_symbols "hpi6" {
include "inet(media_nav_acpi_common)"
@@ -797,7 +797,7 @@ xkb_symbols "hpi6" {
key <I75> { [ Help ] };
};
-// Hewlett-Packard SK-2501, SK-2505 Multimedia Keyboard
+// Hewlett-Packard SK-2501, SK-2505 Multimedia
partial alphanumeric_keys
xkb_symbols "hp250x" {
key <I12> { [ XF86Tools ] };
@@ -854,7 +854,7 @@ xkb_symbols "hpxt1000" {
key <I74> { [ XF86Launch1 ] };
};
-// Hewlett-Packard Pavilion ZT11xx
+// Hewlett-Packard Pavilion ZT1100
partial alphanumeric_keys
xkb_symbols "hpzt11xx" {
// Describes the OneTouch buttons on HP Pavilion ZT11xx models.
@@ -903,7 +903,7 @@ xkb_symbols "hp500fa" {
key <I74> { [ XF86Launch1 ] };
};
-// Hewlett-Packard Omnibook 5xx
+// Hewlett-Packard Omnibook 500
partial alphanumeric_keys
xkb_symbols "hp5xx" {
// Describes the OneTouch buttons on HP Omnibook 5xx models.
@@ -1036,7 +1036,7 @@ xkb_symbols "logitech_set3" {
key <IR7C> { [ XF86AudioMedia ] };
};
-// Logitech Access Keyboard
+// Logitech Access
partial alphanumeric_keys
xkb_symbols "logiaccess" {
include "inet(logitech_base)"
@@ -1046,14 +1046,14 @@ xkb_symbols "logiaccess" {
key <I12> { [ XF86WebCam ] };
};
-// Logitech Cordless Desktop (alternate option)
+// Logitech Cordless Desktop (alt.)
partial alphanumeric_keys
xkb_symbols "logicda" {
include "inet(logitech_base)"
include "inet(logitech_set3)"
};
-// Logitech Internet Navigator Keyboard
+// Logitech Internet Navigator
partial alphanumeric_keys
xkb_symbols "logicink" {
include "inet(logitech_base)"
@@ -1087,7 +1087,7 @@ xkb_symbols "logiex110" {
key <I4A> { [ XF86Launch4 ] }; // F12
};
-// Logitech iTouch Internet Navigator Keyboard SE
+// Logitech iTouch Internet Navigator SE
partial alphanumeric_keys
xkb_symbols "logiinkse" {
include "inet(logitech_base)"
@@ -1103,14 +1103,14 @@ xkb_symbols "logiinkse" {
key <I42> { [ XF86Save ] }; // F8
};
-// Logitech iTouch Internet Navigator Keyboard SE (USB)
+// Logitech iTouch Internet Navigator SE USB
partial alphanumeric_keys
xkb_symbols "logiinkseusb" {
include "inet(logitech_base)"
include "inet(logitech_set3)"
};
-// Logitech iTouch Cordless Keyboard (model Y-RB6)
+// Logitech iTouch Cordless Y-RB6
partial alphanumeric_keys
xkb_symbols "logiitc" {
include "inet(logitech_base)"
@@ -1122,7 +1122,7 @@ xkb_symbols "logiitc" {
key <I30> { [ XF86Launch1 ] };
};
-// Logitech Internet Keyboard
+// Logitech Internet
partial alphanumeric_keys
xkb_symbols "logiik" {
include "inet(logitech_base)"
@@ -1245,7 +1245,7 @@ xkb_symbols "mx1998" {
key <UP> { [ XF86ScrollUp ] };
};
-// Memorex MX2500 EZ-Access Keyboard
+// Memorex MX2500 EZ-Access
partial alphanumeric_keys
xkb_symbols "mx2500" {
include "inet(media_nav_acpi_common)"
@@ -1271,7 +1271,7 @@ xkb_symbols "mx2750" {
// Microsoft
-// Microsoft Natural Ergonomic Keyboard 4000
+// Microsoft Natural Ergonomic 4000
partial alphanumeric_keys
xkb_symbols "microsoft4000" {
include "inet(media_nav_common)"
@@ -1284,7 +1284,7 @@ xkb_symbols "microsoft4000" {
// slider.
};
-// Microsoft Natural Wireless Ergonomic Keyboard 7000
+// Microsoft Natural Wireless Ergonomic 7000
partial alphanumeric_keys
xkb_symbols "microsoft7000" {
include "inet(media_nav_common)"
@@ -1306,14 +1306,14 @@ xkb_symbols "microsoft7000" {
// and Zoom in and out buttons.
};
-// Microsoft Internet Keyboard
+// Microsoft Internet
partial alphanumeric_keys
xkb_symbols "microsoftinet" {
include "inet(nav_acpi_common)"
key <I68> { [ XF86AudioStop ] };
};
-// Microsoft Natural Keyboard Pro USB
+// Microsoft Natural Pro USB
partial alphanumeric_keys
xkb_symbols "microsoftprousb" {
include "inet(nav_common)"
@@ -1335,7 +1335,7 @@ xkb_symbols "microsoftprousb" {
// key <PRSC> { [ XF86MyComputer ] };
};
-// Microsoft Natural Keyboard Pro OEM
+// Microsoft Natural Pro OEM
partial alphanumeric_keys
xkb_symbols "microsoftprooem" {
include "inet(media_nav_common)"
@@ -1348,7 +1348,7 @@ xkb_symbols "microsoftprooem" {
// My Computer Section -- Far Right
};
-// Microsoft Internet Keyboard Pro, Swedish
+// Microsoft Internet Pro (Swedish)
partial alphanumeric_keys
xkb_symbols "microsoftprose" {
include "inet(nav_common)"
@@ -1399,7 +1399,7 @@ xkb_symbols "microsoftoffice" {
key <RCTL> { [ XF86Paste ] };
};
-// Microsoft Wireless Multimedia Keyboard 1.0A
+// Microsoft Wireless Multimedia 1.0A
partial alphanumeric_keys
xkb_symbols "microsoftmult" {
include "inet(media_nav_acpi_common)"
@@ -1450,7 +1450,7 @@ xkb_symbols "oretec" {
// Propeller
-// Propeller Voyager (KTEZ-1000)
+// Propeller Voyager KTEZ-1000
partial alphanumeric_keys
xkb_symbols "propeller" {
include "inet(media_common)"
@@ -1527,7 +1527,7 @@ xkb_symbols "samsung4510" {
// SK
-// SK-1300
+// NEC SK-1300
partial alphanumeric_keys
xkb_symbols "sk1300" {
include "inet(media_common)"
@@ -1539,7 +1539,7 @@ xkb_symbols "sk1300" {
key <I32> { [ XF86Stop ] };
};
-// SK-2500
+// NEC SK-2500
partial alphanumeric_keys
xkb_symbols "sk2500" {
include "inet(media_nav_common)"
@@ -1555,7 +1555,7 @@ xkb_symbols "sk2500" {
key <I7A> { [ XF86ScreenSaver ] };
};
-// SK-6200
+// NEC SK-6200
partial alphanumeric_keys
xkb_symbols "sk6200" {
include "inet(acpi_common)"
@@ -1573,7 +1573,7 @@ xkb_symbols "sk6200" {
key <I32> { [ XF86Mail ] };
};
-// SK-7100
+// NEC SK-7100
partial alphanumeric_keys
xkb_symbols "sk7100" {
include "inet(media_common)"
@@ -1628,7 +1628,7 @@ xkb_symbols "sven303" {
// Symplon
-// Symplon PaceBook (tablet PC)
+// Symplon PaceBook tablet
partial alphanumeric_keys
xkb_symbols "symplon" {
include "inet(nav_acpi_common)"
@@ -1665,7 +1665,7 @@ xkb_symbols "toshiba_s3000" {
// Trust
-// Trust Wireless Keyboard Classic
+// Trust Wireless Classic
partial alphanumeric_keys
xkb_symbols "trust" {
include "inet(media_nav_acpi_common)"
@@ -1673,7 +1673,7 @@ xkb_symbols "trust" {
key <I1E> { [ XF86Eject ] };
};
-// Trust Direct Access Keyboard
+// Trust Direct Access
partial alphanumeric_keys
xkb_symbols "trustda" {
include "inet(media_common)"
@@ -1691,7 +1691,7 @@ xkb_symbols "trustda" {
// YaHoo!
-// Yahoo! Internet Keyboard
+// Yahoo! Internet
partial alphanumeric_keys
xkb_symbols "yahoo" {
include "inet(acpi_common)"
@@ -1875,3 +1875,35 @@ xkb_symbols "htcdream" {
modifier_map Shift { <LFSH>, <RTSH> };
};
+
+partial alphanumeric_keys
+xkb_symbols "chromebook" {
+ include "level3(ralt_switch)"
+ key <FK01> { [ XF86Back ] };
+ key <FK02> { [ XF86Forward ] };
+ key <FK03> { [ XF86Reload ] };
+ key <FK04> { [ F11 ] };
+// key <FK05> { [ F5, F5, F5, F5 ] }; // Overview key
+ key <FK06> { [ XF86MonBrightnessDown ] };
+ key <FK07> { [ XF86MonBrightnessUp ] };
+ key <FK08> { [ XF86AudioMute ] };
+ key <FK09> { [ XF86AudioLowerVolume ] };
+ key <FK10> { [ XF86AudioRaiseVolume ] };
+ key <BKSP> { [ BackSpace, BackSpace, Delete ] };
+ key <UP> { [ Up, Up, Prior, Up ] };
+ key <DOWN> { [ Down, Down, Next, Down ] };
+ key <LEFT> { [ Left, Left, Home, Left ] };
+ key <RGHT> { [ Right, Right, End, Right ] };
+ key <LWIN> { [ Super_L, Super_L, Caps_Lock, Super_L ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "teck227" {
+ include "inet(media_nav_common)"
+ key <HIRA> { [ Hiragana ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "teck229" {
+ include "inet(teck227)"
+};
diff --git a/test/data/symbols/keypad b/test/data/symbols/keypad
index 1efc02b..8b0e098 100644
--- a/test/data/symbols/keypad
+++ b/test/data/symbols/keypad
@@ -1,3 +1,27 @@
+default hidden partial keypad_keys
+xkb_symbols "x11" {
+
+ include "keypad(operators)"
+
+ key <KP7> { [ KP_Home, KP_7 ] };
+ key <KP8> { [ KP_Up, KP_8 ] };
+ key <KP9> { [ KP_Prior, KP_9 ] };
+
+ key <KP4> { [ KP_Left, KP_4 ] };
+ key <KP5> { [ KP_Begin, KP_5 ] };
+ key <KP6> { [ KP_Right, KP_6 ] };
+
+ key <KP1> { [ KP_End, KP_1 ] };
+ key <KP2> { [ KP_Down, KP_2 ] };
+ key <KP3> { [ KP_Next, KP_3 ] };
+ key <KPEN> { [ KP_Enter ] };
+ key <KPEQ> { [ KP_Equal ] };
+
+ key <KP0> { [ KP_Insert, KP_0 ] };
+ key <KPDL> { [ KP_Delete, KP_Decimal ] };
+ key <KPPT> { [ KP_Decimal, KP_Decimal ] };
+};
+
hidden partial keypad_keys
xkb_symbols "overlay" {
include "keypad(overlay1)"
@@ -93,31 +117,6 @@ xkb_symbols "operators" {
};
};
-default hidden partial keypad_keys
-xkb_symbols "x11" {
-
- include "keypad(operators)"
-
- key <KP7> { [ KP_Home, KP_7 ] };
- key <KP8> { [ KP_Up, KP_8 ] };
- key <KP9> { [ KP_Prior, KP_9 ] };
-
- key <KP4> { [ KP_Left, KP_4 ] };
- key <KP5> { [ KP_Begin, KP_5 ] };
- key <KP6> { [ KP_Right, KP_6 ] };
-
- key <KP1> { [ KP_End, KP_1 ] };
- key <KP2> { [ KP_Down, KP_2 ] };
- key <KP3> { [ KP_Next, KP_3 ] };
- key <KPEN> { [ KP_Enter ] };
- key <KPEQ> { [ KP_Equal ] };
-
- key <KP0> { [ KP_Insert, KP_0 ] };
- key <KPDL> { [ KP_Delete, KP_Decimal ] };
- key <KPPT> { [ KP_Decimal, KP_Decimal ] };
-};
-
-
// Legacy PC keypad definition
// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
keypad_keys
@@ -488,13 +487,13 @@ xkb_symbols "ossnumber_wang" {
// the numpad you can inherit the cursors, but you'll have to define
// the digits yourself. This module can be included in the rules to
// define math operators; these are the variants used in computer
-// languages that are based on ASCII. NoSymbol doesn't mean that
+// languages that are based on ASCII. NoSymbol does not mean that
// nothing is bound to the key but that no assignment is done here.
// srvr_ctrl(stdkeypad) and keypad(x11) declare the operator keys to
// be of type CTRL+ALT in order to assign server control events to
// them, but it uses the second level which is overwritten if we have
// more than one definition (shift state) for the key. Instead, here
-// the commands are put at the fourth level.
+// the commands are put at the 4th lever.
partial keypad_keys
xkb_symbols "ops" {
key <KPDV> { [ NoSymbol, slash, NoSymbol, XF86_Ungrab ] };
diff --git a/test/data/symbols/latin b/test/data/symbols/latin
index 25a7d73..d88e3c4 100644
--- a/test/data/symbols/latin
+++ b/test/data/symbols/latin
@@ -205,7 +205,7 @@ xkb_symbols "intl" {
key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
key <AE01> { [ 1, exclam, exclamdown, dead_acute ] };
key <AE02> { [ 2, at, copyright, dead_diaeresis ] };
- key <AE03> { [ 3, numbersign, U2022, dead_doubleacute ] }; // U+2022 is bullet (the name bullet doesn't work)
+ key <AE03> { [ 3, numbersign, U2022, dead_doubleacute ] }; // U+2022 is bullet (the name bullet does not work)
key <AE04> { [ 4, dollar, section, dead_cedilla ] };
key <AE05> { [ 5, percent, EuroSign, dead_caron ] };
key <AE06> { [ 6, asciicircum, cent, dead_circumflex ] };
diff --git a/test/data/symbols/level5 b/test/data/symbols/level5
index 1ae2e6d..ec8c9a9 100644
--- a/test/data/symbols/level5
+++ b/test/data/symbols/level5
@@ -31,6 +31,16 @@ xkb_symbols "ralt_switch" {
include "level5(modifier_mapping)"
};
+// The CapsLock key (while pressed) chooses the fifth shift level.
+partial modifier_keys
+xkb_symbols "caps_switch" {
+ key <CAPS> {
+ type[Group1]="ONE_LEVEL",
+ symbols[Group1] = [ ISO_Level5_Shift ]
+ };
+ include "level5(modifier_mapping)"
+};
+
// Ensure a mapping to a real modifier for LevelFive.
partial modifier_keys
xkb_symbols "modifier_mapping" {
diff --git a/test/data/symbols/macintosh_vndr/apple b/test/data/symbols/macintosh_vndr/apple
index 551eabc..53d260c 100644
--- a/test/data/symbols/macintosh_vndr/apple
+++ b/test/data/symbols/macintosh_vndr/apple
@@ -42,7 +42,7 @@ xkb_symbols "laptop" {
// and use fn+Enter (Apple's code for Menu) for KP_Enter.
replace key <KPEN> { [ ISO_Level3_Shift ] };
modifier_map Mod5 { ISO_Level3_Shift };
- // Linux kernel bug with Menu on macs means this doesn't work yet
+ // Linux kernel bug with Menu on macs means this does not work yet
// replace key <MENU> { [ KP_Enter ] }; // should be keycode 117
};
diff --git a/test/data/symbols/macintosh_vndr/us b/test/data/symbols/macintosh_vndr/us
index 81e4b77..58bfee5 100644
--- a/test/data/symbols/macintosh_vndr/us
+++ b/test/data/symbols/macintosh_vndr/us
@@ -1,6 +1,6 @@
// symbols definition for a Macintosh "Extended" keyboard
-xkb_symbols "extended" {
+default xkb_symbols "extended" {
name[Group1]= "USA";
key <ESC> { [ Escape ] };
@@ -59,7 +59,7 @@ xkb_symbols "extended" {
key <SPCE> { [ space ] };
include "eurosign(e)"
- include "keypad"
+ include "keypad(overlay)"
key <KPEQ> { [ equal ] };
};
diff --git a/test/data/symbols/ru b/test/data/symbols/ru
index c4f4818..964705c 100644
--- a/test/data/symbols/ru
+++ b/test/data/symbols/ru
@@ -15,7 +15,7 @@ xkb_symbols "winkeys" {
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, colon ] };
key <AE07> { [ 7, question ] };
- key <AE08> { [ 8, asterisk ] };
+ key <AE08> { [ 8, asterisk, U20BD ] };
key <AB10> { [ period, comma ] };
key <BKSL> { [ backslash, slash ] };
@@ -215,7 +215,7 @@ partial alphanumeric_keys
xkb_symbols "phonetic_winkeys" {
include "ru(phonetic)"
- name[Group1]= "Russian (phonetic WinKeys)";
+ name[Group1]= "Russian (phonetic, with Win keys)";
key <LatX> { [ Cyrillic_ha, Cyrillic_HA ] };
key <LatH> { [ Cyrillic_che, Cyrillic_CHE ] };
@@ -255,7 +255,7 @@ partial alphanumeric_keys
xkb_symbols "os_winkeys" {
include "ru(winkeys)"
- name[Group1]= "Ossetian (WinKeys)";
+ name[Group1]= "Ossetian (Win keys)";
key <TLDE> { [ Cyrillic_e, Cyrillic_E ] };
key <AC07> { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] };
@@ -478,11 +478,12 @@ xkb_symbols "srp" {
};
// Mari language layout
-// http://www.marlamuter.ru/
+// http://www.marlamuter.com/
+// Last edit by Viatcheslav Kileev (slavakileev@yandex.ru)
partial alphanumeric_keys
xkb_symbols "chm" {
- include "ru(common)"
+ include "ru(winkeys)"
name[Group1]= "Mari";
key.type[group1]="FOUR_LEVEL_ALPHABETIC";
@@ -491,9 +492,208 @@ xkb_symbols "chm" {
key <AD03> { [ Cyrillic_u, Cyrillic_U, U04F1, U04F0 ] };
key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, U04F9, U04F8 ] };
key <AD06> { [ Cyrillic_en, Cyrillic_EN, U04A5, U04A4 ] };
- key <AC11> { [ Cyrillic_e, Cyrillic_E, U04E9, U04E8 ] };
- key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE, U04EB, U04EA ] };
- key <AC01> { [ Cyrillic_ef, Cyrillic_EF, UF537, UF536 ] };
+ key <AC07> { [ Cyrillic_o, Cyrillic_O, U04E7, U04E6 ] };
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "phonetic_azerty" {
+
+ include "level3(ralt_switch)"
+
+ name[Group1]= "Russian (phonetic, AZERTY)";
+
+ key <AE01> { [ ampersand, 1, onesuperior, exclamdown ] };
+ key <AE02> { [ eacute, 2, asciitilde, oneeighth ] };
+ key <AE03> { [ quotedbl, 3, numbersign, sterling ] };
+ key <AE04> { [apostrophe, 4, braceleft, dollar ] };
+ key <AE05> { [ parenleft, 5, bracketleft, threeeighths ] };
+ key <AE06> { [ minus, 6, bar, fiveeighths ] };
+ key <AE07> { [ egrave, 7, grave, seveneighths ] };
+ key <AE08> { [underscore, 8, backslash, trademark ] };
+ key <AE09> { [ ccedilla, 9, asciicircum, plusminus ] };
+ key <AE10> { [ agrave, 0, at, degree ] };
+ key <AE11> { [parenright, degree, bracketright, questiondown ] };
+ key <AE12> { [ equal, plus, braceright, dead_ogonek ] };
+
+ 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 ] };
+
+ key <AC11> { [ ugrave, percent, asciicircum, caron ] };
+ key <LSGT> { [ bar, brokenbar ] };
+
+ key <TLDE> { [ Cyrillic_yu, Cyrillic_YU ] };
+ key <AC01> { [ Cyrillic_ya, Cyrillic_YA ] }; // Q
+ key <AD02> { [ Cyrillic_ze, Cyrillic_ZE ] }; // Z
+ key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
+ key <AD01> { [ Cyrillic_a, Cyrillic_A ] };
+ key <AB01> { [ Cyrillic_ve, Cyrillic_VE ] }; // W
+ key <LatC> { [ Cyrillic_tse, Cyrillic_TSE ] };
+ key <LatX> { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] };
+ key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
+ key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
+ key <LatV> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
+ key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
+ key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
+ key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
+ key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
+ key <LatH> { [ Cyrillic_ha, Cyrillic_HA ] };
+ key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE ] };
+ key <LatY> { [ Cyrillic_yeru, Cyrillic_YERU ] };
+ key <AC10> { [ Cyrillic_em, Cyrillic_EM ] }; // M
+ key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
+ key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
+ key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
+ key <LatI> { [ Cyrillic_i, Cyrillic_I ] };
+ key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
+ key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
+ key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
+
+ key <AD11> { [ Cyrillic_sha, Cyrillic_SHA ] };
+ key <AE12> { [ Cyrillic_che, Cyrillic_CHE ] };
+ key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key <BKSL> { [ Cyrillic_e, Cyrillic_E ] };
+};
+
+// Russian dvorak phonetic layout
+// Oleg Zalizniak <ramaloke at gmail.com>
+partial alphanumeric_keys
+xkb_symbols "phonetic_dvorak" {
+ include "level3(ralt_switch)"
+
+ name[Group1]= "Russian (phonetic, Dvorak)";
+
+ key <TLDE> { [ Cyrillic_yu, Cyrillic_YU ] };
+
+ key <AE01> { [ 1, exclam ] };
+ key <AE02> { [ 2, at ] };
+ key <AE03> { [ 3, Cyrillic_io ] };
+ key <AE04> { [ 4, Cyrillic_IO ] };
+ key <AE05> { [ 5, Cyrillic_hardsign ] };
+ key <AE06> { [ 6, Cyrillic_HARDSIGN ] };
+ key <AE07> { [ 7, ampersand ] };
+ key <AE08> { [ 8, asterisk ] };
+ key <AE09> { [ 9, parenleft ] };
+ key <AE10> { [ 0, parenright ] };
+ key <AE11> { [ Cyrillic_sha, Cyrillic_SHA ] };
+ key <AE12> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key <BKSL> { [ Cyrillic_e, Cyrillic_E ] };
+
+ key <AD01> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
+ key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
+ key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
+ key <AD04> { [ Cyrillic_pe, Cyrillic_PE ] };
+ key <AD05> { [ Cyrillic_yeru, Cyrillic_YERU ] };
+ key <AD06> { [ Cyrillic_ef, Cyrillic_EF ] };
+ key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
+ key <AD08> { [ Cyrillic_tse, Cyrillic_TSE ] };
+ key <AD09> { [ Cyrillic_er, Cyrillic_ER ] };
+ key <AD10> { [ Cyrillic_el, Cyrillic_EL ] };
+ key <AD11> { [ slash, question ] };
+ key <AD12> { [ Cyrillic_che, Cyrillic_CHE ] };
+
+ key <AC01> { [ Cyrillic_a, Cyrillic_A ] };
+ key <AC02> { [ Cyrillic_o, Cyrillic_O ] };
+ key <AC03> { [ Cyrillic_ie, Cyrillic_IE ] };
+ key <AC04> { [ Cyrillic_u, Cyrillic_U ] };
+ key <AC05> { [ Cyrillic_i, Cyrillic_I ] };
+ key <AC06> { [ Cyrillic_de, Cyrillic_DE ] };
+ key <AC07> { [ Cyrillic_ha, Cyrillic_HA ] };
+ key <AC08> { [ Cyrillic_te, Cyrillic_TE ] };
+ key <AC09> { [ Cyrillic_en, Cyrillic_EN ] };
+ key <AC10> { [ Cyrillic_es, Cyrillic_ES ] };
+ key <AC11> { [ minus, underscore ] };
+
+ key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
+ key <AB02> { [ Cyrillic_ya, Cyrillic_YA ] };
+ key <AB03> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
+ key <AB04> { [ Cyrillic_ka, Cyrillic_KA ] };
+ key <AB05> { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] };
+ key <AB06> { [ Cyrillic_be, Cyrillic_BE ] };
+ key <AB07> { [ Cyrillic_em, Cyrillic_EM ] };
+ key <AB08> { [ Cyrillic_ve, Cyrillic_VE ] };
+ key <AB09> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key <AB10> { [ Cyrillic_ze, Cyrillic_ZE ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "phonetic_fr" {
+
+ include "fr"
+ include "ru(phonetic_azerty)"
+
+ name[Group1]= "Russian (phonetic, French)";
+};
+
+// Rulemak, Colemak based Russian phonetic layout
+// contact: Geert Hendrickx <geert@hendrickx.be>
+// http://forum.colemak.com/viewtopic.php?id=519
+
+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 <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 <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 <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 <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 <AB08> { [ comma, semicolon, less ] };
+ key <AB09> { [ period, colon, greater ] };
+ key <AB10> { [ slash, question ] };
+
+ key <CAPS> { [ BackSpace, BackSpace, BackSpace, BackSpace ] };
+ key <LSGT> { [ U0301, asciitilde, grave ] };
+ key <SPCE> { [ space, space, space, nobreakspace ] };
+ key <MENU> { [ Mode_switch, Multi_key ] };
include "level3(ralt_switch)"
};
@@ -648,4 +848,114 @@ xkb_symbols "mac" {
key <AE08> { [ 8, semicolon ] };
key <TLDE> { [ bracketright, bracketleft ] };
key <BKSL> { [ Cyrillic_io, Cyrillic_IO ] };
+
+ key <AC06> { [ Cyrillic_er, Cyrillic_ER, U20BD ] };
+
+ include "level3(ralt_switch)"
+};
+
+// eng: Russian-based polyglot and reactionary keyboard layout
+// This keyboard layout covers Russian in Petrine 1708 and Bolshevik 1918 variant spelling, Ukrainian, Belorussian, Serbian in its modern and Slavenoserbian variants, and Bulgarian and Slavomacedonian in pre-1945 and post-1945 spelling,
+// in short all in any dominion prevailing Cyrillic orthographies of modern secular Slavic literary languages, even with dictionary accentuation marks,
+// but also the most-widespread Church Slavonic spellings, that is all Church-Slavonic in so far as variants can be replaced without loss of meaning – not to speak of Interslavic.
+// Furthermore, it suffices Romanian Cyrillic, Moldovan Cyrillic, Abkhazian excluding the more clumsy obsoleted forms unlikely to find devotees, Tajik, all Turkic and Mongolic Cyrillic alphabets
+// and virtually all overlooked languages in Cyrillic reigns at least by combining characters, taking advantage of eight key levels.
+// This is withal a pan-Cyrillic keyboard layout, or a comprehensive Cyrillic keyboard layout, an universal Cyrillic keyboard layout, a generic Cyrillic keyboard layout.
+//
+// rus: Многоязыковая и реакціонная клавіатурная разкладка основана на русскихъ
+// Сія разкладка покрываетъ русскій въ петровскомъ правописаніи 1708-го года и большевицкомъ 1918-го, украинскій, бѣлорусскій въ современномъ и славяносербскомъ видѣ, и булгарскій и славомацедонскій въ писаніи до и послѣ 1945-го года,
+// короче всѣ въ какомъ-либо державствѣ преобладающія правописанія, то есть весь церкославянскій, поскольку какъ разные виды буквъ можно возмѣщать безъ потери значенія — не говоря о междуславянскомъ.
+// Свѣрхъ этого, она подходитъ къ румынской кириллицѣ, къ молдавской кириллицѣ, къ абхазскому за изключеніемъ неуклюжихъ устарѣлыхъ образовъ, у которыхъ невѣроятно что они вообще найдутъ поклонниковъ, къ таджикскому, къ всѣмъ тюрксимъ и монголскимъ кириллицамъ,
+// и по сути дѣла всѣмъ упущеннымъ языкамъ въ кириллическихъ правленіяхъ хотя бы соединящими сѵмволами, извлѣкая выгоду изъ восьми уровней клавишъ.
+// Тѣмъ всѣмъ сё всекириллическая клавіатурная разкладка, или всеобъемлющая кириллическая разкладка, или универсальная кириллическая разкладка клавіатуры.
+//
+// srp: Многојезиков и реакционаран распоред тастера основан на рускима
+// Овај распоред покрива руски у петровском правопису 1708-е године и бољшевичком 1918-е године, украјински, белоруски, српски у сувременом и славеносрпском виду, те бугарски и славомакедонски у писању до и после 1945-е године,
+// укратко све у некој држави преовлађујуће правописе, то је читав црквенословенски, пошто је могуће разне видове слова замењивати без губитка значења — не говорећи о меџусловенском.
+// Поврх овог, он одговара к румунској ћирилици, к молдавској ћирилици, к абхаскоме с изузетком гломазних застарелих ликова, уз које није вероватно да они најђу поклонике, к таџичкоме, к свим туркијским и монголским ћирилицима,
+// те у спровођењу свим испуштеним језицима у ћириличким господарствима бар са спајајућим симболима, искориштавајући осам ступњева тастера.
+// Тиме свим ово је свећирилички тастатуран распоред, или свеобухватан ћирилички распоред тастера, или свеопшти ћирилички тастатуран распоред.
+partial alphanumeric_keys
+xkb_symbols "prxn" {
+
+ name[Group1]= "Russian (Polyglot and Reactionary)";
+
+ key.type[Group1]="EIGHT_LEVEL";
+ 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 <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 <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 <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 <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 <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 <AC03> { [ Cyrillic_ve, Cyrillic_VE, U051D, U051C, U0529, U0528, U0527, U0526 ] }; // в В ԝ Ԝ ԩ Ԩ ԧ Ԧ
+ key <AC04> { [ Cyrillic_a, Cyrillic_A, U04D9, U04D8, 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 ] }; // о О ө Ө ѻ Ѻ ѡ Ѡ
+ key <AC08> { [ Cyrillic_el, Cyrillic_EL, Cyrillic_lje, Cyrillic_LJE, U04C6, U04C5, U052F, U052E ] }; // л Л љ Љ ӆ Ӆ ԯ Ԯ
+ key <AC09> { [ Cyrillic_de, Cyrillic_DE, Cyrillic_dzhe, Cyrillic_DZHE, U04BD, U04BC, U04BF, U04BE ] }; // д Д џ Џ ҽ Ҽ ҿ Ҿ
+ key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE, Serbian_dje, Serbian_DJE, Cyrillic_zhe_descender, Cyrillic_ZHE_descender, U04C2, U04C1 ] }; // ж Ж ђ Ђ Җ җ ӂ Ӂ
+ key <AC11> { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE, U0465, U0464, U04CA, U04C9 ] }; // э Э є Є ѥ Ѥ ӊ Ӊ
+ key <BKSL> { [ slash, bar, backslash, U260E, UA65B, UA65A, U0513, U0512 ] }; // / | \ ☎ ꙛ Ꙛ ԓ Ԓ
+
+ 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 <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 <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]}; // ю Ю » “ ‘ › ” ’
+ key <AB10> { [ period, comma, ellipsis, enfilledcircbullet, U04CC, U04CB, UA649, UA648 ] }; // . , … • ӌ Ӌ ꙉ Ꙉ
+
+// eng: Maps Right Alt for reaching the third level
+// rus: Составляетъ правую Alt для достиженія третьяго уровня
+// srp: Саставља десни Alt за достизање трећег ступња
+ include "level3(ralt_switch)"
+
+// eng: Maps <CAPS> for reaching the fifth level
+// rus: Составляетъ <CAPS> для достиженія пятаго уровня
+// srp: Саставља <CAPS> за достизање петег ступња
+
+ include "level5(caps_switch)"
+
+// eng: Offers pressing both shift keys for capslock
+// rus: Предоставляетъ нажатие обѣихъ клавишъ Shift для защелкиванія прописности буквъ
+// srp: Ставља на располагање притискивање обију тастера Shift за учвршћивање верзала
+ include "shift(both_shiftlock)"
+
+// eng: Makes <KPDL> return comma instead of dot, as the comma is decimal separator in Cyrillic written languages
+// rus: Дѣлаетъ что <KPDL> отдаетъ запятую вмѣсто точки, такъ какъ запятая десятичный раздѣлитель въ языкахъ пишемыхъ кириллицей
+// srp: Ради да <KPDL> враћа зарез уместо точке, будући да зарез је десетни разделитељ у језицима који се пишу ћирилицом
+ include "kpdl(comma)"
+
+// eng: Bug notice: One has to set lv5:rwin_switch_lock or one of the other level 5 locks for the caps switch to work!
+// rus: Приходится ставить lv5:rwin_switch_lock либо одинъ изъ другихъ затворовъ пятаго уровня, чтобы работалъ переключатель Caps!
+// srp: Потребно да се ставља lv5:rwin_switch_lock или једна из других брава петег ступња, да би шљакао пребацивач Caps!
+// https://bugs.freedesktop.org/show_bug.cgi?id=102189
};
diff --git a/test/data/symbols/us b/test/data/symbols/us
index 35eb166..9cc056d 100644
--- a/test/data/symbols/us
+++ b/test/data/symbols/us
@@ -60,7 +60,7 @@ partial alphanumeric_keys
xkb_symbols "euro" {
include "us(basic)"
- name[Group1]= "English (US, with euro on 5)";
+ name[Group1]= "English (US, euro on 5)";
include "eurosign(5)"
@@ -69,10 +69,23 @@ xkb_symbols "euro" {
partial alphanumeric_keys
+xkb_symbols "ibm238l" {
+
+ include "us(basic)"
+ name[Group1]= "English (US, IBM Arabic 238_L)";
+
+ key <AB08> { [ comma, comma ] };
+ key <AB09> { [ period, period ] };
+ key <BKSL> { [ quoteleft, asciitilde ] };
+ key <LSGT> { [ backslash, bar ] };
+ key <TLDE> { [ leftcaret, rightcaret ] };
+};
+
+partial alphanumeric_keys
xkb_symbols "intl" {
include "us(basic)"
- name[Group1]= "English (US, international with dead keys)";
+ name[Group1]= "English (US, intl., with dead keys)";
key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
@@ -162,7 +175,7 @@ partial alphanumeric_keys
xkb_symbols "alt-intl" {
include "us"
- name[Group1]= "English (US, alternative international)";
+ name[Group1]= "English (US, alt. intl.)";
key <TLDE> { [ dead_grave, dead_tilde, grave, asciitilde ] };
key <AE05> { [ 5, percent, EuroSign ] };
@@ -247,7 +260,7 @@ xkb_symbols "dvorak" {
key <BKSL> { [ backslash, bar ] };
};
-// Dvorak international with dead keys
+// Dvorak intl., with dead keys
// Olivier Mehani (shtrom-xorg@ssji.net)
// Reproduce the per-key mapping of us(intl) for the dvorak layout
// aka "I just swapped my keys over"
@@ -255,7 +268,7 @@ partial alphanumeric_keys
xkb_symbols "dvorak-intl" {
include "us(dvorak)"
- name[Group1]= "English (Dvorak, international with dead keys)";
+ name[Group1]= "English (Dvorak, intl., with dead keys)";
key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
@@ -333,7 +346,7 @@ partial alphanumeric_keys
xkb_symbols "dvorak-alt-intl" {
include "us(dvorak)"
- name[Group1]= "English (Dvorak alternative international no dead keys)";
+ name[Group1]= "English (Dvorak, alt. intl.)";
key <AE04> { [ 4, dollar, EuroSign ] };
@@ -366,7 +379,7 @@ partial alphanumeric_keys
xkb_symbols "dvorak-l" {
include "us(dvorak)"
- name[Group1]= "English (left handed Dvorak)";
+ name[Group1]= "English (Dvorak, left-handed)";
key <AE01> { [ bracketleft, braceleft ] };
key <AE02> { [ bracketright, braceright ] };
@@ -422,7 +435,7 @@ partial alphanumeric_keys
xkb_symbols "dvorak-r" {
include "us(dvorak)"
- name[Group1]= "English (right handed Dvorak)";
+ name[Group1]= "English (Dvorak, right-handed)";
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
@@ -536,11 +549,12 @@ xkb_symbols "dvorak-classic" {
key <BKSL> { [ backslash, bar ] };
};
-// Programmer Dvorak, by Roland Kaufmann <rlndkfmn at gmail dot com>
+// programmer Dvorak, by Roland Kaufmann <rlndkfmn at gmail dot com>
// License: BSD, available at <http://www.kaufmann.no/roland/dvorak/license.html>
// Main features: Numbers are in shift position (like French), symbols have been
// placed in locations that give good hand-alternation and finger rolling with
// symbols that usually follows, accented characters are possible for I18N.
+// Patch suggestions should be sent upstream.
partial alphanumeric_keys
xkb_symbols "dvp" {
@@ -568,8 +582,8 @@ xkb_symbols "dvp" {
// upper row, left side
key <AD01> { [ semicolon, colon, dead_diaeresis ] };
- key <AD02> { [ comma, less, guillemotleft, ellipsis ] };
- key <AD03> { [ period, greater, guillemotright ] };
+ key <AD02> { [ comma, less, guillemotleft, U201C ] };
+ key <AD03> { [ period, greater, guillemotright, U201D ] };
key <AD04> { [ p, P, paragraph, section ] };
key <AD05> { [ y, Y, udiaeresis, Udiaeresis ] };
@@ -596,9 +610,9 @@ xkb_symbols "dvp" {
// lower row, left side
key <AB01> { [ apostrophe, quotedbl, dead_acute ] };
- key <AB07> { [ m, M, mu ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
- include "level3(ralt_switch)"
+ // do NOT hardcode this switch; use lv3:ralt_switch option instead!
+ //include "level3(ralt_switch)"
};
// phonetic layout for Russian letters on an US keyboard
@@ -789,7 +803,7 @@ xkb_symbols "colemak" {
};
// I do NOT like dead-keys - the International keyboard as defined by Microsoft
-// doesn't fit my needs. Why use two keystrokes for all simple characters (eg '
+// does not fit my needs. Why use two keystrokes for all simple characters (eg '
// and <space> generates a single ') just to have an é (eacute) in two strokes
// as well? I type ' more often than é (eacute).
//
@@ -808,7 +822,7 @@ partial alphanumeric_keys
xkb_symbols "altgr-intl" {
include "us(intl)"
- name[Group1]= "English (international AltGr dead keys)";
+ name[Group1]= "English (intl., with AltGr dead keys)";
// five dead keys moved into level3:
@@ -837,7 +851,7 @@ xkb_symbols "altgr-intl" {
//
// The keyboard layouts below maps the us(basic), us(intl) and us(alt-intl)
// to ClassmatePC keyboard. All layouts uses RCTL as level3(switch) since
-// the keyboard doesn't have AltGr key. The EuroSign is engraved at 5 key.
+// the keyboard does not have AltGr key. The EuroSign is engraved at 5 key.
// classmate - us(basic)
partial alphanumeric_keys
@@ -1282,7 +1296,7 @@ partial alphanumeric_keys
xkb_symbols "workman-intl" {
include "us(intl)"
- name[Group1]= "English (Workman, international with dead keys)";
+ name[Group1]= "English (Workman, intl., with dead keys)";
key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
key <AD02> { [ d, D, eth, ETH ] };
@@ -1366,6 +1380,218 @@ xkb_symbols "norman" {
include "level3(ralt_switch)"
};
+// Carpalx layout created by Martin Krzywinski
+// http://mkweb.bcgsc.ca/carpalx/
+
+partial alphanumeric_keys
+xkb_symbols "carpalx" {
+
+ name[Group1]= "English (Carpalx)";
+
+ key <TLDE> { [ grave, asciitilde ] };
+ key <AE01> { [ 1, exclam ] };
+ key <AE02> { [ 2, at ] };
+ key <AE03> { [ 3, numbersign ] };
+ key <AE04> { [ 4, dollar ] };
+ 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> { [ q, Q ] };
+ key <AD02> { [ g, G ] };
+ key <AD03> { [ m, M ] };
+ key <AD04> { [ l, L ] };
+ key <AD05> { [ w, W ] };
+ key <AD06> { [ y, Y ] };
+ key <AD07> { [ f, F ] };
+ key <AD08> { [ u, U ] };
+ key <AD09> { [ b, B ] };
+ key <AD10> { [ semicolon, colon ] };
+ key <AD11> { [ bracketleft, braceleft ] };
+ key <AD12> { [ bracketright, braceright ] };
+
+ key <AC01> { [ d, D ] };
+ key <AC02> { [ s, S ] };
+ key <AC03> { [ t, T ] };
+ key <AC04> { [ n, N ] };
+ key <AC05> { [ r, R ] };
+ key <AC06> { [ i, I ] };
+ key <AC07> { [ a, A ] };
+ key <AC08> { [ e, E ] };
+ key <AC09> { [ o, O ] };
+ key <AC10> { [ h, H ] };
+ key <AC11> { [ apostrophe, quotedbl ] };
+
+ key <AB01> { [ z, Z ] };
+ key <AB02> { [ x, X ] };
+ key <AB03> { [ c, C ] };
+ key <AB04> { [ v, V ] };
+ key <AB05> { [ j, J ] };
+ key <AB06> { [ k, K ] };
+ key <AB07> { [ p, P ] };
+ key <AB08> { [ comma, less ] };
+ key <AB09> { [ period, greater ] };
+ key <AB10> { [ slash, question ] };
+
+ key <BKSL> { [ backslash, bar ] };
+};
+
+// Carpalx layout created by Martin Krzywinski
+// http://mkweb.bcgsc.ca/carpalx/
+// Merged with us(intl) and modified to move
+// accented vowels closer to the plain vowels
+
+partial alphanumeric_keys
+xkb_symbols "carpalx-intl" {
+
+ include "us(carpalx)"
+ name[Group1]= "English (Carpalx, intl., with dead keys)";
+
+ key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
+ key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
+ key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
+ key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] };
+ key <AE04> { [ 4, dollar, currency, sterling ] };
+ key <AE05> { [ 5, percent, EuroSign, dead_cedilla ] };
+ key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] };
+ key <AE07> { [ 7, ampersand, onehalf, dead_horn ] };
+ key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] };
+ key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
+ key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
+ key <AE11> { [ minus, underscore, yen, dead_belowdot ] };
+ key <AE12> { [ equal, plus, multiply, division ] };
+
+ key <AD01> { [ q, Q, degree, paragraph ] };
+ key <AD02> { [ g, G, U011F, U011E ] };
+ key <AD03> { [ m, M, mu, mu ] };
+ key <AD04> { [ l, L, copyright, cent ] };
+ key <AD05> { [ w, W, w, W ] };
+ key <AD06> { [ y, Y, idiaeresis, Idiaeresis ] };
+ key <AD07> { [ f, F, adiaeresis, Adiaeresis ] };
+ key <AD08> { [ u, U, udiaeresis, Udiaeresis ] };
+ key <AD09> { [ b, B, odiaeresis, Odiaeresis ] };
+ key <AD10> { [ semicolon, colon, oslash, Ooblique ] };
+ key <AD11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
+ key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };
+
+ key <AC01> { [ d, D, eth, ETH ] };
+ key <AC02> { [ s, S, ssharp, section ] };
+ key <AC03> { [ t, T, thorn, THORN ] };
+ key <AC04> { [ n, N, ntilde, Ntilde ] };
+ key <AC05> { [ r, R, registered, registered ] };
+ key <AC06> { [ i, I, iacute, Iacute ] };
+ key <AC07> { [ a, A, aacute, Aacute ] };
+ key <AC08> { [ e, E, eacute, Eacute ] };
+ key <AC09> { [ o, O, oacute, Oacute ] };
+ key <AC10> { [ h, H, uacute, Uacute ] };
+ key <AC11> { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };
+
+ key <AB01> { [ z, Z, z, Z ] };
+ key <AB02> { [ x, X, U015F, U015E ] };
+ key <AB03> { [ c, C, ccedilla, Ccedilla ] };
+ key <AB04> { [ v, V, ae, AE ] };
+ key <AB05> { [ j, J, oe, OE ] };
+ key <AB06> { [ k, K, U0131, U0130 ] };
+ key <AB07> { [ p, P, aring, Aring ] };
+ key <AB08> { [ comma, less, ediaeresis, Ediaeresis ] };
+ key <AB09> { [ period, greater, dead_abovedot, dead_caron ] };
+ key <AB10> { [ slash, question, questiondown, dead_hook ] };
+ key <BKSL> { [ backslash, bar, notsign, brokenbar ] };
+
+ key <LSGT> { [ backslash, bar, backslash, bar ] };
+
+ include "level3(ralt_switch)"
+};
+
+// Carpalx layout created by Martin Krzywinski
+// http://mkweb.bcgsc.ca/carpalx/
+// Merged with us(intl) and us(altgr-intl) and modified to move
+// accented vowels closer to the plain vowels
+
+partial alphanumeric_keys
+xkb_symbols "carpalx-altgr-intl" {
+
+ include "us(carpalx-intl)"
+ name[Group1]= "English (Carpalx, intl., with AltGr dead keys)";
+
+// five dead keys moved into level3:
+
+ key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
+ key <AC11> { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] };
+
+// diversions from the MS Intl keyboard:
+
+ key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
+
+// onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys:
+
+ key <AE06> { [ 6, asciicircum, dead_circumflex, onequarter ] };
+ key <AE07> { [ 7, ampersand, dead_horn, onehalf ] };
+ key <AE08> { [ 8, asterisk, dead_ogonek, threequarters ] };
+
+ include "level3(ralt_switch)"
+};
+
+// Carpalx layout created by Martin Krzywinski
+// Full optimization variant without fixed QWERTY-like ZXCV keys
+// http://mkweb.bcgsc.ca/carpalx/
+
+partial alphanumeric_keys
+xkb_symbols "carpalx-full" {
+
+ include "us(carpalx)"
+ name[Group1]= "English (Carpalx, full optimization)";
+
+ key <AD06> { [ b, B ] };
+ key <AD07> { [ y, Y ] };
+ key <AD09> { [ v, V ] };
+
+ key <AB04> { [ f, F ] };
+};
+
+// Carpalx layout created by Martin Krzywinski
+// Full optimization variant without fixed QWERTY-like ZXCV keys
+// http://mkweb.bcgsc.ca/carpalx/
+// Merged with us(intl) and modified to move
+// accented vowels closer to the plain vowels
+
+partial alphanumeric_keys
+xkb_symbols "carpalx-full-intl" {
+
+ include "us(carpalx-intl)"
+ name[Group1]= "English (Carpalx, full optimization, intl., with dead keys)";
+
+ key <AD06> { [ b, B, idiaeresis, Idiaeresis ] };
+ key <AD07> { [ y, Y, adiaeresis, Adiaeresis ] };
+ key <AD09> { [ v, V, odiaeresis, Odiaeresis ] };
+
+ key <AB04> { [ f, F, ae, AE ] };
+};
+
+// Carpalx layout created by Martin Krzywinski
+// Full optimization variant without fixed QWERTY-like ZXCV keys
+// http://mkweb.bcgsc.ca/carpalx/
+// Merged with us(intl) and us(altgr-intl) and modified to move
+// accented vowels closer to the plain vowels
+
+partial alphanumeric_keys
+xkb_symbols "carpalx-full-altgr-intl" {
+
+ include "us(carpalx-altgr-intl)"
+ name[Group1]= "English (Carpalx, full optimization, intl., with AltGr dead keys)";
+
+ key <AD06> { [ b, B, idiaeresis, Idiaeresis ] };
+ key <AD07> { [ y, Y, adiaeresis, Adiaeresis ] };
+ key <AD09> { [ v, V, odiaeresis, Odiaeresis ] };
+
+ key <AB04> { [ f, F, ae, AE ] };
+};
+
// EXTRAS:
// Czech, Slovak and German charecters added as third level symbols to US keyboard layout.
diff --git a/test/data/types/level5 b/test/data/types/level5
index 1796f50..0570725 100644
--- a/test/data/types/level5
+++ b/test/data/types/level5
@@ -53,127 +53,127 @@ partial default xkb_types "default" {
level_name[Level8] = "X Shift Alt";
};
-// type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" {
-// // Level5-Lock is implemented by using NumLock, because a real modifier
-// // is required.
-//
-// modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;
-//
-// map[None] = Level1;
-// map[Shift] = Level2;
-// map[LevelThree] = Level3;
-// map[LevelThree+Shift] = Level4;
-//
-// map[LevelFive] = Level5;
-// map[LevelFive+Shift] = Level6;
-// map[LevelFive+LevelThree] = Level7;
-// map[LevelFive+LevelThree+Shift] = Level8;
-//
-// map[NumLock] = Level5;
-// map[NumLock+Shift] = Level6;
-// map[NumLock+LevelThree] = Level7;
-// map[NumLock+LevelThree+Shift] = Level8;
-//
-// map[NumLock+LevelFive] = Level1;
-// map[NumLock+LevelFive+Shift] = Level2;
-// map[NumLock+LevelFive+LevelThree] = Level3;
-// map[NumLock+LevelFive+LevelThree+Shift] = Level4;
-//
-// // Lock has no effect
-// map[Lock] = Level1;
-// map[Lock+Shift] = Level2;
-// map[Lock+LevelThree] = Level3;
-// map[Lock+LevelThree+Shift] = Level4;
-//
-// map[Lock+LevelFive] = Level5;
-// map[Lock+LevelFive+Shift] = Level6;
-// map[Lock+LevelFive+LevelThree] = Level7;
-// map[Lock+LevelFive+LevelThree+Shift] = Level8;
-//
-// map[Lock+NumLock] = Level5;
-// map[Lock+NumLock+Shift] = Level6;
-// map[Lock+NumLock+LevelThree] = Level7;
-// map[Lock+NumLock+LevelThree+Shift] = Level8;
-//
-// map[Lock+NumLock+LevelFive] = Level1;
-// map[Lock+NumLock+LevelFive+Shift] = Level2;
-// map[Lock+NumLock+LevelFive+LevelThree] = Level3;
-// map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4;
-//
-// preserve[LevelFive+Shift] = Shift;
-// preserve[NumLock+Shift] = Shift;
-// preserve[Lock+LevelFive+Shift] = Shift;
-// preserve[Lock+NumLock+Shift] = Shift;
-//
-// level_name[Level1] = "Base";
-// level_name[Level2] = "Shift";
-// level_name[Level3] = "Alt Base";
-// level_name[Level4] = "Shift Alt";
-// level_name[Level5] = "X";
-// level_name[Level6] = "X Shift";
-// level_name[Level7] = "X Alt Base";
-// level_name[Level8] = "X Shift Alt";
-// };
-//
-// type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" {
-// // Level5-Lock is implemented by using NumLock, because a real modifier
-// // is required.
-//
-// modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;
-//
-// map[None] = Level1;
-// map[Shift] = Level2;
-// map[LevelThree] = Level3;
-// map[LevelThree+Shift] = Level4;
-//
-// map[LevelFive] = Level5;
-// map[LevelFive+Shift] = Level6;
-// map[LevelFive+LevelThree] = Level7;
-// map[LevelFive+LevelThree+Shift] = Level8;
-//
-// map[NumLock] = Level5;
-// map[NumLock+Shift] = Level6;
-// map[NumLock+LevelThree] = Level7;
-// map[NumLock+LevelThree+Shift] = Level8;
-//
-// map[NumLock+LevelFive] = Level1;
-// map[NumLock+LevelFive+Shift] = Level2;
-// map[NumLock+LevelFive+LevelThree] = Level3;
-// map[NumLock+LevelFive+LevelThree+Shift] = Level4;
-//
-// // Lock interchanges Level1 and Level2
-// map[Lock] = Level2;
-// map[Lock+Shift] = Level1;
-// map[Lock+LevelThree] = Level3;
-// map[Lock+LevelThree+Shift] = Level4;
-//
-// map[Lock+LevelFive] = Level5;
-// map[Lock+LevelFive+Shift] = Level6;
-// map[Lock+LevelFive+LevelThree] = Level7;
-// map[Lock+LevelFive+LevelThree+Shift] = Level8;
-//
-// map[Lock+NumLock] = Level5;
-// map[Lock+NumLock+Shift] = Level6;
-// map[Lock+NumLock+LevelThree] = Level7;
-// map[Lock+NumLock+LevelThree+Shift] = Level8;
-//
-// map[Lock+NumLock+LevelFive] = Level2;
-// map[Lock+NumLock+LevelFive+Shift] = Level1;
-// map[Lock+NumLock+LevelFive+LevelThree] = Level4;
-// map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level3;
-//
-// preserve[LevelFive+Shift] = Shift;
-// preserve[NumLock+Shift] = Shift;
-//
-// level_name[Level1] = "Base";
-// level_name[Level2] = "Shift";
-// level_name[Level3] = "Alt Base";
-// level_name[Level4] = "Shift Alt";
-// level_name[Level5] = "X";
-// level_name[Level6] = "X Shift";
-// level_name[Level7] = "X Alt Base";
-// level_name[Level8] = "X Shift Alt";
-// };
+ type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" {
+ // Level5-Lock is implemented by using NumLock, because a real modifier
+ // is required.
+
+ modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;
+
+ map[None] = Level1;
+ map[Shift] = Level2;
+ map[LevelThree] = Level3;
+ map[LevelThree+Shift] = Level4;
+
+ map[LevelFive] = Level5;
+ map[LevelFive+Shift] = Level6;
+ map[LevelFive+LevelThree] = Level7;
+ map[LevelFive+LevelThree+Shift] = Level8;
+
+ map[NumLock] = Level5;
+ map[NumLock+Shift] = Level6;
+ map[NumLock+LevelThree] = Level7;
+ map[NumLock+LevelThree+Shift] = Level8;
+
+ map[NumLock+LevelFive] = Level1;
+ map[NumLock+LevelFive+Shift] = Level2;
+ map[NumLock+LevelFive+LevelThree] = Level3;
+ map[NumLock+LevelFive+LevelThree+Shift] = Level4;
+
+ // Lock has no effect
+ map[Lock] = Level1;
+ map[Lock+Shift] = Level2;
+ map[Lock+LevelThree] = Level3;
+ map[Lock+LevelThree+Shift] = Level4;
+
+ map[Lock+LevelFive] = Level5;
+ map[Lock+LevelFive+Shift] = Level6;
+ map[Lock+LevelFive+LevelThree] = Level7;
+ map[Lock+LevelFive+LevelThree+Shift] = Level8;
+
+ map[Lock+NumLock] = Level5;
+ map[Lock+NumLock+Shift] = Level6;
+ map[Lock+NumLock+LevelThree] = Level7;
+ map[Lock+NumLock+LevelThree+Shift] = Level8;
+
+ map[Lock+NumLock+LevelFive] = Level1;
+ map[Lock+NumLock+LevelFive+Shift] = Level2;
+ map[Lock+NumLock+LevelFive+LevelThree] = Level3;
+ map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4;
+
+ preserve[LevelFive+Shift] = Shift;
+ preserve[NumLock+Shift] = Shift;
+ preserve[Lock+LevelFive+Shift] = Shift;
+ preserve[Lock+NumLock+Shift] = Shift;
+
+ level_name[Level1] = "Base";
+ level_name[Level2] = "Shift";
+ level_name[Level3] = "Alt Base";
+ level_name[Level4] = "Shift Alt";
+ level_name[Level5] = "X";
+ level_name[Level6] = "X Shift";
+ level_name[Level7] = "X Alt Base";
+ level_name[Level8] = "X Shift Alt";
+ };
+
+ type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" {
+ // Level5-Lock is implemented by using NumLock, because a real modifier
+ // is required.
+
+ modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;
+
+ map[None] = Level1;
+ map[Shift] = Level2;
+ map[LevelThree] = Level3;
+ map[LevelThree+Shift] = Level4;
+
+ map[LevelFive] = Level5;
+ map[LevelFive+Shift] = Level6;
+ map[LevelFive+LevelThree] = Level7;
+ map[LevelFive+LevelThree+Shift] = Level8;
+
+ map[NumLock] = Level5;
+ map[NumLock+Shift] = Level6;
+ map[NumLock+LevelThree] = Level7;
+ map[NumLock+LevelThree+Shift] = Level8;
+
+ map[NumLock+LevelFive] = Level1;
+ map[NumLock+LevelFive+Shift] = Level2;
+ map[NumLock+LevelFive+LevelThree] = Level3;
+ map[NumLock+LevelFive+LevelThree+Shift] = Level4;
+
+ // Lock interchanges Level1 and Level2
+ map[Lock] = Level2;
+ map[Lock+Shift] = Level1;
+ map[Lock+LevelThree] = Level3;
+ map[Lock+LevelThree+Shift] = Level4;
+
+ map[Lock+LevelFive] = Level5;
+ map[Lock+LevelFive+Shift] = Level6;
+ map[Lock+LevelFive+LevelThree] = Level7;
+ map[Lock+LevelFive+LevelThree+Shift] = Level8;
+
+ map[Lock+NumLock] = Level5;
+ map[Lock+NumLock+Shift] = Level6;
+ map[Lock+NumLock+LevelThree] = Level7;
+ map[Lock+NumLock+LevelThree+Shift] = Level8;
+
+ map[Lock+NumLock+LevelFive] = Level2;
+ map[Lock+NumLock+LevelFive+Shift] = Level1;
+ map[Lock+NumLock+LevelFive+LevelThree] = Level4;
+ map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level3;
+
+ preserve[LevelFive+Shift] = Shift;
+ preserve[NumLock+Shift] = Shift;
+
+ level_name[Level1] = "Base";
+ level_name[Level2] = "Shift";
+ level_name[Level3] = "Alt Base";
+ level_name[Level4] = "Shift Alt";
+ level_name[Level5] = "X";
+ level_name[Level6] = "X Shift";
+ level_name[Level7] = "X Alt Base";
+ level_name[Level8] = "X Shift Alt";
+ };
type "EIGHT_LEVEL_SEMIALPHABETIC" {
modifiers = Shift+Lock+LevelThree+LevelFive;
diff --git a/test/keyseq.c b/test/keyseq.c
index 05c7957..7be8598 100644
--- a/test/keyseq.c
+++ b/test/keyseq.c
@@ -318,7 +318,7 @@ main(void)
KEY_SPACE, BOTH, XKB_KEY_KP_0, NEXT,
KEY_KP8, BOTH, XKB_KEY_KP_Up, NEXT,
KEY_ESC, BOTH, XKB_KEY_Escape, NEXT,
- KEY_RIGHTALT, UP, XKB_KEY_ISO_Level5_Shift, NEXT,
+ KEY_RIGHTALT, UP, XKB_KEY_ISO_Level5_Lock, NEXT,
/* Level 6. */
KEY_RIGHTALT, DOWN, XKB_KEY_ISO_Level5_Shift, NEXT,
@@ -330,7 +330,7 @@ main(void)
KEY_KP8, BOTH, XKB_KEY_KP_Up, NEXT,
KEY_ESC, BOTH, XKB_KEY_Escape, NEXT,
KEY_RIGHTSHIFT, UP, XKB_KEY_Caps_Lock, NEXT,
- KEY_RIGHTALT, UP, XKB_KEY_ISO_Level5_Shift, NEXT,
+ KEY_RIGHTALT, UP, XKB_KEY_ISO_Level5_Lock, NEXT,
/* Level 7. */
KEY_RIGHTALT, DOWN, XKB_KEY_ISO_Level5_Shift, NEXT,
@@ -341,19 +341,22 @@ main(void)
KEY_KP8, BOTH, KS("U22C2"), NEXT,
KEY_ESC, BOTH, XKB_KEY_Escape, NEXT,
KEY_CAPSLOCK, UP, XKB_KEY_ISO_Level3_Shift, NEXT,
- KEY_RIGHTALT, UP, XKB_KEY_ISO_Level5_Shift, NEXT,
+ KEY_RIGHTALT, UP, XKB_KEY_ISO_Level5_Lock, NEXT,
/* Level 8. */
KEY_RIGHTALT, DOWN, XKB_KEY_ISO_Level5_Shift, NEXT,
KEY_CAPSLOCK, DOWN, XKB_KEY_ISO_Level3_Shift, NEXT,
KEY_RIGHTSHIFT, DOWN, XKB_KEY_Shift_R, NEXT,
- /* This doesn't actually lock Level5. Not our fault. */
KEY_TAB, BOTH, XKB_KEY_ISO_Level5_Lock, NEXT,
+ KEY_V, BOTH, XKB_KEY_Greek_pi, NEXT,
KEY_RIGHTSHIFT, UP, XKB_KEY_Caps_Lock, NEXT,
+ KEY_V, BOTH, XKB_KEY_asciitilde, NEXT,
KEY_CAPSLOCK, UP, XKB_KEY_ISO_Level3_Shift, NEXT,
- KEY_RIGHTALT, UP, XKB_KEY_ISO_Level5_Shift, NEXT,
+ KEY_V, BOTH, XKB_KEY_p, NEXT,
+ KEY_RIGHTALT, UP, XKB_KEY_ISO_Level5_Lock, NEXT,
+ /* Locks Level 5. */
- KEY_V, BOTH, XKB_KEY_p, FINISH));
+ KEY_V, BOTH, XKB_KEY_Return, FINISH));
xkb_keymap_unref(keymap);