test/data: sync with xkeyboard-config 2.22
authorRan Benita <ran234@gmail.com>
Sun, 3 Dec 2017 11:04:35 +0000 (13:04 +0200)
committerRan Benita <ran234@gmail.com>
Sun, 3 Dec 2017 11:07:21 +0000 (13:07 +0200)
Some tweaks to the de(neo) keyseq tests were required. It seems to have
improved.

Signed-off-by: Ran Benita <ran234@gmail.com>
23 files changed:
test/data/rules/base
test/data/rules/evdev
test/data/symbols/altwin
test/data/symbols/awesome [new file with mode: 0644]
test/data/symbols/ca
test/data/symbols/capslock
test/data/symbols/ch
test/data/symbols/ctrl
test/data/symbols/cz
test/data/symbols/de
test/data/symbols/group
test/data/symbols/il
test/data/symbols/in
test/data/symbols/inet
test/data/symbols/keypad
test/data/symbols/latin
test/data/symbols/level5
test/data/symbols/macintosh_vndr/apple
test/data/symbols/macintosh_vndr/us
test/data/symbols/ru
test/data/symbols/us
test/data/types/level5
test/keyseq.c

index 5f02efa..11e1b56 100644 (file)
@@ -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
 
               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 \
   thinkpad     =       thinkpad(intl)
   thinkpad60   =       thinkpad(60)
   thinkpadz60  =       thinkpad(60)
+  apex300      =       steelseries(apex300)
  $tmgeometries =       typematrix(%m)
   winbook      =       winbook(XP5)
   pc98         =       nec(pc98)
   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)
   *            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])
   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)
 ! 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
   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)
   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)
   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)
   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)
   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
index f58e5b2..872e1de 100644 (file)
@@ -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
   thinkpad     =       thinkpad(intl)
   thinkpad60   =       thinkpad(60)
   thinkpadz60  =       thinkpad(60)
+  apex300      =       steelseries(apex300)
  $tmgeometries =       typematrix(%m)
   winbook      =       winbook(XP5)
   pc98         =       nec(pc98)
   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)
   *            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])
 
 ! model                =       symbols
   $evdevkbds    =   +inet(evdev)+inet(%m)
+  chromebook    =   +inet(evdev)+inet(chromebook)
   applealu_jis  =   +inet(evdev)+macintosh_vndr/jp(alujiskeys)
   *             =   +inet(evdev)
 
 ! 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
   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)
   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)
   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)
   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)
   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
index 76a289a..7240ab8 100644 (file)
@@ -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 (file)
index 0000000..a8d38c4
--- /dev/null
@@ -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      ] };
+};
index 2ba48b4..84f153c 100644 (file)
@@ -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:
index 3f4a0cd..6b85c3d 100644 (file)
@@ -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 ] };
+};
index 62c69f9..a87f93a 100644 (file)
@@ -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  ] };
index dd68add..8791b49 100644 (file)
@@ -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> };
 };
index 97ab3cf..3407e92 100644 (file)
@@ -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
index 944732e..c025a1c 100644 (file)
@@ -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 ] };
+
+};
index 8b00dff..12f35a4 100644 (file)
@@ -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 ]
+    };
+};
+
index 48452d6..67487c1 100644 (file)
@@ -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 ] };
index 04c35a2..79d5099 100644 (file)
@@ -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 (\)
 
index 33b0583..5403e77 100644 (file)
@@ -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)"
+};
index 1efc02b..8b0e098 100644 (file)
@@ -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     ] };
index 25a7d73..d88e3c4 100644 (file)
@@ -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 ]      };
index 1ae2e6d..ec8c9a9 100644 (file)
@@ -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" {
index 551eabc..53d260c 100644 (file)
@@ -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
 };
 
index 81e4b77..58bfee5 100644 (file)
@@ -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                        ]       };
 };
index c4f4818..964705c 100644 (file)
@@ -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
 };
index 35eb166..9cc056d 100644 (file)
@@ -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.
index 1796f50..0570725 100644 (file)
@@ -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;
index 05c7957..7be8598 100644 (file)
@@ -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);