test: sync test/data from xkeyboard-config 2.9
authorRan Benita <ran234@gmail.com>
Mon, 22 Jul 2013 15:43:53 +0000 (18:43 +0300)
committerRan Benita <ran234@gmail.com>
Mon, 22 Jul 2013 19:28:01 +0000 (22:28 +0300)
Needed for some tests. The tests need some adjustment, mostly because of
the resolution of xkeyboard-config bug
https://bugs.freedesktop.org/show_bug.cgi?id=50935

Also add the 'ch' symbols file for future tests.

Signed-off-by: Ran Benita <ran234@gmail.com>
12 files changed:
test/data/rules/base
test/data/rules/evdev
test/data/symbols/altwin
test/data/symbols/ch [new file with mode: 0644]
test/data/symbols/compose
test/data/symbols/de
test/data/symbols/inet
test/data/symbols/level3
test/data/symbols/level5
test/data/symbols/ru
test/data/symbols/us
test/keyseq.c

index d629596..fab8ad6 100644 (file)
   nokiasu8w    *                       =       nokia_vndr/su-8w(%l)
   olpc         $olpclayouts            =       olpc+%l%(m)
   olpc         *                       =       olpc+%l%(v)
+  olpcm                $olpclayouts            =       olpc+%l%(m)
+  olpcm                *                       =       olpc+%l%(v)
  $thinkpads    br                      =       pc+br(thinkpad)
   sl-c3x00     *                       =       pc+sharp_vndr/sl-c3x00(basic)
   ws003sh      *                       =       pc+sharp_vndr/ws003sh(basic)
 ! model                layout          =       compat
   pc98         nec_vndr/jp     =       pc98(basic)
   *            jp              =       complete+japan
-  olpc         *               =       olpc
+  olpc          *               =       olpc
+  olpcm         *               =       olpc
   *            *               =       complete
 
 ! model                layout[1]       =       compat
   grp:shift_toggle     =       +group(shifts_toggle)
   altwin:menu          =       +altwin(menu)
   altwin:meta_alt      =       +altwin(meta_alt)
+  altwin:alt_win       =       +altwin(alt_win)
   altwin:ctrl_win      =       +altwin(ctrl_win)
   altwin:ctrl_alt_win  =       +altwin(ctrl_alt_win)
   altwin:meta_win      =       +altwin(meta_win)
   ctrl:ralt_rctrl      =       +ctrl(ralt_rctrl)
   compose:ralt         =       +compose(ralt)
   compose:lwin         =       +compose(lwin)
+  compose:lwin-altgr   =       +compose(lwin-altgr)
   compose:rwin         =       +compose(rwin)
+  compose:rwin-altgr   =       +compose(rwin-altgr)
   compose:menu         =       +compose(menu)
+  compose:menu-altgr   =       +compose(menu-altgr)
   compose:lctrl                =       +compose(lctrl)
+  compose:lctrl-altgr  =       +compose(lctrl-altgr)
   compose:rctrl                =       +compose(rctrl)
+  compose:rctrl-altgr  =       +compose(rctrl-altgr)
   compose:caps         =       +compose(caps)
+  compose:caps-altgr   =       +compose(caps-altgr)
   compose:102          =       +compose(102)
+  compose:102-altgr    =       +compose(102-altgr)
   compose:paus         =       +compose(paus)
   compose:prsc         =       +compose(prsc)
   compose:sclk         =       +compose(sclk)
index 905a210..b1dd7e6 100644 (file)
 ! model                =       keycodes
   pc98         =       evdev(pc98)
   applealu_jis =       evdev+macintosh(jisevdev)
+  olpc          =       evdev+olpc(olpc)
+  olpcm         =       evdev+olpc(olpcm)
   *            =       evdev
 
 ! layout[1]    =       keycodes
   nokiasu8w    *                       =       nokia_vndr/su-8w(%l)
   olpc         $olpclayouts            =       olpc+%l%(m)
   olpc         *                       =       olpc+%l%(v)
+  olpcm                $olpclayouts            =       olpc+%l%(m)
+  olpcm                *                       =       olpc+%l%(v)
  $thinkpads    br                      =       pc+br(thinkpad)
   sl-c3x00     *                       =       pc+sharp_vndr/sl-c3x00(basic)
   ws003sh      *                       =       pc+sharp_vndr/ws003sh(basic)
 ! model                layout          =       compat
   pc98         nec_vndr/jp     =       pc98(basic)
   *            jp              =       complete+japan
-  olpc         *               =       olpc
+  olpc          *               =       olpc
+  olpcm         *               =       olpc
   *            *               =       complete
 
 ! model                layout[1]       =       compat
   grp:shift_toggle     =       +group(shifts_toggle)
   altwin:menu          =       +altwin(menu)
   altwin:meta_alt      =       +altwin(meta_alt)
+  altwin:alt_win       =       +altwin(alt_win)
   altwin:ctrl_win      =       +altwin(ctrl_win)
   altwin:ctrl_alt_win  =       +altwin(ctrl_alt_win)
   altwin:meta_win      =       +altwin(meta_win)
   ctrl:ralt_rctrl      =       +ctrl(ralt_rctrl)
   compose:ralt         =       +compose(ralt)
   compose:lwin         =       +compose(lwin)
+  compose:lwin-altgr   =       +compose(lwin-altgr)
   compose:rwin         =       +compose(rwin)
+  compose:rwin-altgr   =       +compose(rwin-altgr)
   compose:menu         =       +compose(menu)
+  compose:menu-altgr   =       +compose(menu-altgr)
   compose:lctrl                =       +compose(lctrl)
+  compose:lctrl-altgr  =       +compose(lctrl-altgr)
   compose:rctrl                =       +compose(rctrl)
+  compose:rctrl-altgr  =       +compose(rctrl-altgr)
   compose:caps         =       +compose(caps)
+  compose:caps-altgr   =       +compose(caps-altgr)
   compose:102          =       +compose(102)
+  compose:102-altgr    =       +compose(102-altgr)
   compose:paus         =       +compose(paus)
   compose:prsc         =       +compose(prsc)
   compose:sclk         =       +compose(sclk)
index f7578b4..d22013d 100644 (file)
@@ -7,6 +7,14 @@ xkb_symbols "meta_alt" {
 //  modifier_map Mod4  {};
 };
 
+// Alt is mapped to the Win-keys (and the usual Alt keys).
+partial modifier_keys 
+xkb_symbols "alt_win" {
+    key <LWIN> {       [       Alt_L                   ]       };
+    key <RWIN> {       [       Alt_R                   ]       };
+    modifier_map Mod1 { <LWIN>, <RWIN> };
+};
+
 // Control is mapped to the Win-keys (and the usual Ctrl keys).
 partial modifier_keys 
 xkb_symbols "ctrl_win" {
diff --git a/test/data/symbols/ch b/test/data/symbols/ch
new file mode 100644 (file)
index 0000000..989a2df
--- /dev/null
@@ -0,0 +1,225 @@
+partial default alphanumeric_keys 
+xkb_symbols "basic" {
+
+    include "latin"
+
+    // Alphanumeric section
+    name[Group1]= "German (Switzerland)";
+    key <TLDE> { [    section,     degree                           ] };
+    key <AE01> { [          1,       plus,          bar, exclamdown ] };
+    key <AE02> { [          2,   quotedbl,           at, oneeighth  ] };
+    key <AE03> { [          3,   asterisk,   numbersign             ] };
+    key <AE04> { [          4,   ccedilla                           ] };
+    key <AE05> { [          5,    percent                           ] };
+    key <AE06> { [          6,  ampersand,      notsign             ] };
+    key <AE07> { [          7,      slash,          bar             ] };
+    key <AE08> { [          8,  parenleft,         cent             ] };
+    key <AE09> { [          9, parenright                           ] };
+    key <AE10> { [          0,      equal                           ] };
+    key <AE11> { [ apostrophe,   question,   dead_acute             ] };
+    key <AE12> { [ dead_circumflex, dead_grave, dead_tilde          ] };
+
+    key <AD03> { [          e,          E,     EuroSign             ] };
+    key <AD06> { [          z,          Z                           ] };
+    key <AD11> { [ udiaeresis,     egrave,  bracketleft             ] };
+    key <AD12> { [ dead_diaeresis, exclam, bracketright             ] };
+
+    key <AC10> { [ odiaeresis,     eacute                           ] };
+    key <AC11> { [ adiaeresis,     agrave,    braceleft             ] };
+    key <BKSL> { [     dollar,   sterling,   braceright             ] };
+
+    key <LSGT> { [       less,    greater,    backslash, brokenbar  ] };
+    key <AB01> { [          y,          Y                           ] };
+    key <AB08> { [      comma,  semicolon                           ] };
+    key <AB09> { [     period,      colon                           ] };
+    key <AB10> { [      minus, underscore                           ] };
+
+    include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys 
+xkb_symbols "legacy" {
+    include "ch(basic)"
+
+    name[Group1]= "German (Switzerland, legacy)";
+    key <AE07> { [          7,      slash,    brokenbar             ] };
+};
+
+partial alphanumeric_keys 
+xkb_symbols "de" {
+    include "ch(basic)"
+};
+
+partial alphanumeric_keys 
+xkb_symbols "de_Sundeadkeys" {
+    // modify the basic Swiss German layout to use Sun dead keys
+    include "ch(basic)"
+    key <AE11> { [      apostrophe,    question,  dead_acute   ] };
+    key <AE12> { [    dead_circumflex, dead_grave,  dead_tilde   ] };
+    key <AD12> { [ dead_diaeresis,      exclam, bracketright   ] };
+};
+
+partial alphanumeric_keys 
+xkb_symbols "de_sundeadkeys" {
+    include "ch(de_Sundeadkeys)"
+    name[Group1]= "German (Switzerland, 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)";
+    key <AE11> { [  apostrophe, question,        acute  ] };
+    key <AE12> { [ asciicircum,    grave,   asciitilde  ] };
+    key <AD12> { [   diaeresis,   exclam, bracketright  ] };
+};
+
+partial alphanumeric_keys 
+xkb_symbols "fr" {
+
+    // Describes the differences between a very simple US/ASCII
+    // keyboard and a very simple Swiss/French keybaord
+
+    include "ch(basic)"
+    name[Group1]= "French (Switzerland)";
+
+    override key <AD11> {
+       [ egrave,       udiaeresis,     bracketleft     ]
+    };
+    override key <AC10> {
+       [ eacute,       odiaeresis      ]
+    };
+    override key <AC11> {
+       [ agrave,       adiaeresis,     braceleft       ]
+    };
+};
+
+partial alphanumeric_keys
+xkb_symbols "fr_Sundeadkeys" {
+    // modify the basic Swiss French layout to use Sun dead keys
+    include "ch(fr)"
+    key <AE11> { [      apostrophe,    question,  dead_acute   ] };
+    key <AE12> { [    dead_circumflex, dead_grave,  dead_tilde   ] };
+    key <AD12> { [ dead_diaeresis,      exclam, bracketright   ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "fr_sundeadkeys" {
+    include "ch(fr_Sundeadkeys)"
+    name[Group1]= "French (Switzerland, 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)";
+    key <AE11> { [  apostrophe, question,        acute  ] };
+    key <AE12> { [ asciicircum,    grave,   asciitilde  ] };
+    key <AD12> { [   diaeresis,   exclam, bracketright  ] };
+};
+
+// Copied from macintosh_vndr/ch
+// 03.01.2003
+// Andreas Tobler <a.tobler@schweiz.ch>
+// modified for Swiss German Apple Extended Keyboard II
+
+partial alphanumeric_keys
+xkb_symbols "de_mac" {
+    
+    name[Group1]= "German (Switzerland, Macintosh)";
+
+    // Alphanumeric section
+
+    key <AE01> { [     1,      plus,   plusminus,      infinity                ]       };
+    key <AE02> { [     2,      quotedbl, leftdoublequotemark, rightdoublequotemark     ]       };
+    key <AE03> { [     3,      asterisk,       numbersign,     leftcaret       ]       };
+                                       // not displayed here
+    key <AE04> { [     4,      ccedilla,       Ccedilla,       slash           ]       };
+    key <AE05> { [     5,      percent,        bracketleft                     ]       };
+    key <AE06> { [     6,      ampersand,      bracketright                    ]       };
+    key <AE07> { [     7,      slash,  bar,            backslash               ]       };
+    key <AE08> { [     8,      parenleft,      braceleft,      Ograve          ]       };
+    key <AE09> { [     9,      parenright,     braceright,     Ocircumflex     ]       };
+    key <AE10> { [     0,      equal,  notequal,       Uacute                  ]       };
+    key <AE11> { [     apostrophe,     question,       questiondown,   NoSymbol                ]       };
+    key <AE12> { [     dead_circumflex,dead_grave,     dead_acute,     asciicircum             ]       };
+    key <AD01> { [     q,      Q,      oe,             OE                      ]       };
+    key <AD02> { [     w,      W,      Greek_SIGMA,    Aacute                  ]       };
+    key <AD03> { [     e,      E,      EuroSign,       Ediaeresis              ]       };
+    key <AD04> { [     r,      R,      registered,     Egrave                  ]       };
+    key <AD05> { [     t,      T,      dagger,         Icircumflex             ]       }; 
+    key <AD06> { [     z,      Z,      Greek_OMEGA,    Iacute                  ]       };
+    key <AD07> { [     u,      U,      degree,         Ugrave                  ]       };
+    key <AD08> { [     i,      I,      exclamdown,     idotless                ]       };
+    key <AD09> { [     o,      O,      oslash,         Ooblique                ]       };
+    key <AD10> { [     p,      P,      Greek_pi,       Greek_PI                ]       };
+    key <AD11> { [     udiaeresis,     egrave,         section,        ydiaeresis              ]       };
+    key <AD12> { [     dead_diaeresis, exclam,         grave,          apostrophe              ]       };
+    key <AC01> { [     a,      A,      aring,          Aring                   ]       };
+    key <AC02> { [     s,      S,      ssharp,         NoSymbol                ]       }; 
+                                       // ligature fl
+    key <AC03> { [     d,      D,      Greek_sigma,    NoSymbol                ]       };
+                       // partialderivative is not available here att
+    key <AC04> { [     f,      F,      function,       doubledagger            ]       };
+    key <AC05> { [     g,      G,      at,             comma                   ]       };
+    key <AC06> { [     h,      H,      ordfeminine,    periodcentered          ]       };
+    key <AC07> { [     j,      J,      masculine,      eth                     ]       };
+    key <AC08> { [     k,      K,      Greek_DELTA,    macron                  ]       };
+    key <AC09> { [     l,      L,      notsign,        caret                   ]       };
+    key <AC10> { [     odiaeresis,     eacute,         cent,           breve   ]       };
+    key <AC11> { [     adiaeresis,     agrave,         ae,             AE      ]       };
+    key <AB01> { [     y,      Y,      yen,            Ydiaeresis              ]       };
+    key <AB02> { [     x,      X,      similarequal,   trademark               ]       };
+    key <AB03> { [     c,      C,      copyright,      NoSymbol                ]       };
+    key <AB04> { [     v,      V,      radical,        diamond                 ]       };
+    key <AB05> { [     b,      B,      integral,       NoSymbol                ]       };  
+    key <AB06> { [     n,      N,      dead_tilde,     enopencircbullet        ]       };
+                                       // to be fixed att
+    key <AB07> { [     m,      M,      mu,             dead_abovering          ]       };
+                                       // not sure att
+    key <AB08> { [     comma,  semicolon,      guillemotleft,  guillemotright  ]       };
+    key <AB09> { [     period, colon,  ellipsis,       division                ]       };
+    key <AB10> { [     minus,  underscore,     hyphen,         emdash          ]       };
+    key <TLDE> { [     section,        degree,         NoSymbol,       NoSymbol                ]       };
+                       // ligature fi  // per mille
+    key <SPCE> { [     space,  nobreakspace,   nobreakspace            ]       };
+    key <LSGT> { [     less,   greater,        lessthanequal,  greaterthanequal        ]       };
+    key <BKSL> { [     dollar, sterling,       paragraph,      enfilledcircbullet      ]       };
+
+    include "kpdl(comma)"
+    include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys 
+xkb_symbols "fr_mac" {
+
+    // Describes the differences between a very simple US/ASCII
+    // keyboard and a very simple Swiss/French keybaord
+
+    include "ch(de_mac)"
+    name[Group1]= "French (Switzerland, Macintosh)";
+
+    override key <AD11> {
+       [ egrave,       udiaeresis,  bracketleft        ]
+    };
+    override key <AC10> {
+       [ eacute,       odiaeresis      ]
+    };
+    override key <AC11> {
+       [ agrave,       adiaeresis,   braceleft         ]
+    };
+};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+       xkb_symbols "sun_type6_de" {
+       include "sun_vndr/ch(sun_type6_de)"
+};
+
+partial alphanumeric_keys
+       xkb_symbols "sun_type6_fr" {
+       include "sun_vndr/ch(sun_type6_fr)"
+};
index d725732..08446bf 100644 (file)
@@ -9,36 +9,71 @@ xkb_symbols "lwin" {
 };
 
 partial modifier_keys
+xkb_symbols "lwin-altgr" {
+    key <LWIN> { type[Group1]="FOUR_LEVEL", [ Super_L, Super_L, Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
 xkb_symbols "rwin" {
     key <RWIN> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
 };
 
 partial modifier_keys
+xkb_symbols "rwin-altgr" {
+    key <RWIN> { type[Group1]="FOUR_LEVEL", [ Super_R, Super_R, Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
 xkb_symbols "menu" {
     key <MENU> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
 };
 
 partial modifier_keys
+xkb_symbols "menu-altgr" {
+    key <MENU> { type[Group1]="FOUR_LEVEL", [ Menu, Menu, Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
 xkb_symbols "rctrl" {
     key <RCTL> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
 };
 
 partial modifier_keys
+xkb_symbols "rctrl-altgr" {
+    key <RCTL> { type[Group1]="FOUR_LEVEL", [ Control_R, Control_R, Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
 xkb_symbols "lctrl" {
     key <LCTL> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
 };
 
 partial modifier_keys
+xkb_symbols "lctrl-altgr" {
+    key <LCTL> { type[Group1]="FOUR_LEVEL", [ Control_L, Control_L, Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
 xkb_symbols "caps" {
     key <CAPS> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
 };
 
 partial modifier_keys
+xkb_symbols "caps-altgr" {
+    key <CAPS> { type[Group1]="FOUR_LEVEL", [ Caps_Lock, Caps_Lock, Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
 xkb_symbols "102" {
     key <LSGT> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
 };
 
 partial modifier_keys
+xkb_symbols "102-altgr" {
+    key <LSGT> { type[Group1]="FOUR_LEVEL", [ less, greater, Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
 xkb_symbols "paus" {
     key <PAUS> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
 };
index 6872f46..20689af 100644 (file)
@@ -104,6 +104,84 @@ xkb_symbols "deadacute" {
     key <BKSL> { [numbersign, apostrophe,   dead_grave,   dead_grave ] };
 };
 
+
+partial alphanumeric_keys
+xkb_symbols "T3" {
+    include "latin(type4)"
+
+    name[Group1]="German (T3)";
+
+    key.type[Group1] = "EIGHT_LEVEL";
+    key <TLDE> { [ dead_circumflex,          degree,        multiply,        NoSymbol,           U204A,            hyphen,             bar,        NoSymbol ] };
+    key <AE01> { [               1,          exclam, rightsinglequotemark,   NoSymbol,     onesuperior,        exclamdown,           U02B9,        NoSymbol ] };
+    key <AE02> { [               2,        quotedbl,     twosuperior,        NoSymbol,     twosuperior,          currency,           U02BA,        NoSymbol ] };
+    key <AE03> { [               3,         section,   threesuperior,        NoSymbol,   threesuperior,          sterling,           U02BF,        NoSymbol ] };
+    key <AE04> { [               4,          dollar,          emdash,        NoSymbol,      onequarter,            0x20AC,           U02BE,        NoSymbol ] };
+    key <AE05> { [               5,         percent,      exclamdown,        NoSymbol,         onehalf,           uparrow,           U02C1,        NoSymbol ] };
+    key <AE06> { [               6,       ampersand,    questiondown,        NoSymbol,   threequarters,         downarrow,           U02C0,        NoSymbol ] };
+    key <AE07> { [               7,           slash,       braceleft,        NoSymbol,       oneeighth,         leftarrow,       braceleft,        NoSymbol ] };
+    key <AE08> { [               8,       parenleft,     bracketleft,        NoSymbol,    threeeighths,        rightarrow,      braceright,        NoSymbol ] };
+    key <AE09> { [               9,      parenright,    bracketright,        NoSymbol,     fiveeighths,         plusminus,     bracketleft,        NoSymbol ] };
+    key <AE10> { [               0,           equal,      braceright,        NoSymbol,    seveneighths,         trademark,    bracketright,        NoSymbol ] };
+    key <AE11> { [          ssharp,        question,       backslash,        NoSymbol,       backslash,      questiondown,           U02BB,        NoSymbol ] };
+    key <AE12> { [      dead_acute,      dead_grave,   dead_abovedot,        NoSymbol,    dead_cedilla,       dead_ogonek,         notsign,        NoSymbol ] };
+
+    key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC";
+    key <AD01> { [               q,               Q,              at,        NoSymbol,           U0242,           U0241,           U030D,        NoSymbol ] };
+    key <AD02> { [               w,               W,      dead_caron,        NoSymbol,           U02B7,           U2126,   dead_abovedot,        NoSymbol ] };
+    key <AD03> { [               e,               E,        EuroSign,        NoSymbol,              oe,              OE,      dead_breve,        NoSymbol ] };
+    key <AD04> { [               r,               R,  dead_diaeresis,        NoSymbol,       paragraph,      registered, dead_circumflex,        NoSymbol ] };
+    key <AD05> { [               t,               T,     dead_macron,        NoSymbol,           UA78C,           UA78B,  dead_diaeresis,        NoSymbol ] };
+    key <AD06> { [               z,               Z, dead_doubleacute,       NoSymbol,           U027C,             yen, dead_invertedbreve,     NoSymbol ] };
+    key <AD07> { [               u,               U,      dead_breve,        NoSymbol,           U0223,           U0222,      dead_caron,        NoSymbol ] };
+    key <AD08> { [               i,               I,      dead_tilde,        NoSymbol,        idotless,           U214D, dead_abovecomma,        NoSymbol ] };
+    key <AD09> { [               o,               O,  dead_abovering,        NoSymbol,          oslash,          Oslash,       dead_horn,        NoSymbol ] };
+    key <AD10> { [               p,               P,       dead_hook,        NoSymbol,           thorn,           THORN,       dead_hook,        NoSymbol ] };
+    key <AD11> { [      udiaeresis,      Udiaeresis,       dead_horn,        NoSymbol,           U017F,  dead_abovering,      dead_grave,        NoSymbol ] };
+    key.type[Group1] = "EIGHT_LEVEL";
+    key <AD12> { [            plus,        asterisk,      asciitilde,        NoSymbol,      dead_tilde,     dead_macron,              at,        NoSymbol ] };
+
+    key.type[Group1] = "ONE_LEVEL";
+    key <CAPS>  { [ Caps_Lock  ]       };
+    key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC";
+    key <AC01> { [               a,               A,   lessthanequal,        NoSymbol,              ae,              AE,           U0329,        NoSymbol ] };
+    key <AC02> { [               s,               S, greaterthanequal,       NoSymbol,          ssharp,         section,   dead_belowdot,        NoSymbol ] };
+    key <AC03> { [               d,               D,           U2300,        NoSymbol,             eth,             ETH, dead_belowbreve,        NoSymbol ] };
+    key <AC04> { [               f,               F,         minutes,        NoSymbol,           U0294,     ordfeminine, dead_belowcircumflex,   NoSymbol ] };
+    key <AC05> { [               g,               G,         seconds,        NoSymbol,             eng,             ENG, dead_belowmacron,       NoSymbol ] };
+    key <AC06> { [               h,               H,           U1E9E,        NoSymbol,           U0272,           U019D,           U0332,        NoSymbol ] };
+    key <AC07> { [               j,               J,    dead_cedilla,        NoSymbol,           U0133,           U0132,  dead_belowring,        NoSymbol ] };
+    key <AC08> { [               k,               K, dead_belowcomma,        NoSymbol,             kra, dead_belowcomma,           U0335,        NoSymbol ] };
+    key <AC09> { [               l,               L,     dead_ogonek,        NoSymbol,         lstroke,         Lstroke,           U0338,        NoSymbol ] };
+    key <AC10> { [      odiaeresis,      Odiaeresis,   dead_belowdot,        NoSymbol,      dead_acute, dead_doubleacute,         degree,        NoSymbol ] };
+    key <AC11> { [      adiaeresis,      Adiaeresis,     dead_stroke,        NoSymbol,           U019B,           U1E9E,         minutes,        NoSymbol ] };
+    key.type[Group1] = "EIGHT_LEVEL";
+    key <BKSL> { [      numbersign,      apostrophe,      registered,        NoSymbol,           schwa,           SCHWA,         seconds,        NoSymbol ] };
+
+    key <LSGT> { [            less,         greater,             bar,        NoSymbol,           U0149,       brokenbar,           U266A,        NoSymbol ] };
+    key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC";
+    key <AB01> { [               y,               Y,           U203A,        NoSymbol,           U0292,           U01B7,   guillemotleft,        NoSymbol ] };
+    key <AB02> { [               x,               X,  guillemotright,        NoSymbol, doublelowquotemark, singlelowquotemark, guillemotright,   NoSymbol ] };
+    key <AB03> { [               c,               C,       copyright,        NoSymbol,            cent,       copyright,  Greek_horizbar,        NoSymbol ] };
+    key <AB04> { [               v,               V,   guillemotleft,        NoSymbol, leftdoublequotemark, leftsinglequotemark,   U2039,        NoSymbol ] };
+    key <AB05> { [               b,               B,           U2039,        NoSymbol, rightdoublequotemark, rightsinglequotemark, U203A,        NoSymbol ] };
+    key <AB06> { [               n,               N,          endash,        NoSymbol,           U019E,           U0220,          endash,        NoSymbol ] };
+    key <AB07> { [               m,               M,        Greek_mu,        NoSymbol,              mu,       masculine,          emdash,        NoSymbol ] };
+    key.type[Group1] = "EIGHT_LEVEL";
+    key <AB08> { [           comma,       semicolon,           U02BB,        NoSymbol,        ellipsis,        multiply,          dollar,        NoSymbol ] };
+    key <AB09> { [          period,           colon,           U200C,        NoSymbol,  periodcentered,        division,      numbersign,        NoSymbol ] };
+    key <AB10> { [           minus,      underscore,          hyphen,        NoSymbol,           U0140,           U013F,           U2011,        NoSymbol ] };
+
+    key <SPCE> { [           space,           space,    nobreakspace,        NoSymbol,           U202F,           U200C,    nobreakspace,        NoSymbol ] };
+
+    include "kpdl(comma)"
+
+    // We do not support the correct level selection mechanism yet, this is
+    //just for testing:
+    include "level5(rctrl_switch)"
+    include "level3(ralt_switch)"
+ };
+
 partial alphanumeric_keys
 xkb_symbols "ro" {
     // add romanian-specific letters to the basic German layout.
index 4c172fa..839439a 100644 (file)
@@ -120,6 +120,8 @@ xkb_symbols "evdev" {
     key <FK22>   {      [ XF86TouchpadOn        ]       };
     key <FK23>   {      [ XF86TouchpadOff       ]       };
 
+    key <FK20>   {      [ XF86AudioMicMute      ]       };
+
 //  key <I120>   {      [ ]       }; // KEY_MACRO 
     key <I126>   {      [ plusminus             ]       };
     key <I128>   {      [ XF86LaunchA           ]       };
index 8bf83bb..2f5575c 100644 (file)
@@ -8,9 +8,7 @@ xkb_symbols "modifier_mapping" {
   key.type[Group1] = "ONE_LEVEL";
 
   replace key <LVL3> {
-    vmods = LevelThree,
-    symbols[Group1] = [ ISO_Level3_Shift ],
-    actions[Group1] = [ SetMods(modifiers=LevelThree) ]
+    symbols[Group1] = [ ISO_Level3_Shift ]
   };
   modifier_map Mod5 { <LVL3> };
 };
index f5ecb62..09d71cd 100644 (file)
@@ -8,9 +8,7 @@ xkb_symbols "modifier_mapping" {
   key.type[Group1] = "ONE_LEVEL";
 
   replace key <MDSW> {
-    vmods = LevelFive,
-    symbols[Group1] = [ ISO_Level5_Shift ],
-    actions[Group1] = [ SetMods(modifiers=LevelFive) ]
+    symbols[Group1] = [ ISO_Level5_Shift ]
   };
   modifier_map Mod3 { <MDSW> };
 };
index 0248dc6..a761c30 100644 (file)
@@ -636,7 +636,7 @@ xkb_symbols "ruu" {
     key <AD03> {    [  Cyrillic_u,     Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ]  };
     key <AD04> {    [  Cyrillic_ka,    Cyrillic_KA,    registered                      ]       };      // Registered tm
     key <AD05> {    [  Cyrillic_ie,    Cyrillic_IE,    Cyrillic_io,    Cyrillic_IO     ]       };
-    key <AD07> {    [Cyrillic_ge, Cyrillic_GE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
+    key <AD07> {    [Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
     key <AD10> {    [  Cyrillic_ze,    Cyrillic_ZE,    U00B6                           ]       };      // Pilcrow Sign
     key <AD12> {    [Cyrillic_hardsign,        Cyrillic_HARDSIGN, Ukrainian_yi, Ukrainian_YI   ]       };
     key <AC02> {    [  Cyrillic_yeru,  Cyrillic_YERU,  Ukrainian_i,  Ukrainian_I       ]       };
@@ -656,3 +656,22 @@ partial alphanumeric_keys
        xkb_symbols "sun_type6" {
        include "sun_vndr/ru(sun_type6)"
 };
+
+// Apple layout
+partial alphanumeric_keys
+xkb_symbols "mac" {
+include "ru(common)"
+
+    name[Group1]= "Russian (Macintosh)";
+
+    key <LSGT> {       [            less,         greater      ]       };
+    key <AE02> {       [               2,        quotedbl      ]       };
+    key <AE03> {        [               3,      numerosign             ]       };
+    key <AE04> {        [               4,         percent             ]       };
+    key <AE05> {        [               5,          colon      ]       };
+    key <AE06> {        [               6,           comma             ]       };
+    key <AE07> {        [               7,         period      ]       };
+    key <AE08> {        [               8,       semicolon             ]       };
+    key <TLDE> {       [    bracketright,     bracketleft      ]       };
+    key <BKSL> {        [       Cyrillic_io,   Cyrillic_IO      ]       };
+};
index d4bac06..4a5228b 100644 (file)
@@ -605,6 +605,8 @@ xkb_symbols "dvp" {
 
     // lower row, left side
     key <AB01> { [ apostrophe,      quotedbl,       dead_acute                  ] };
+
+    include "level3(ralt_switch)"
 };
 
 // phonetic layout for Russian letters on an US keyboard
@@ -1033,7 +1035,7 @@ xkb_symbols "olpc" {
    key <AC07>  { [         j,          J,    EuroSign,         EuroSign ] };
    key <AC10>  { [ semicolon,      colon,   masculine,      ordfeminine ] };
    key <AC11>  { [ apostrophe,  quotedbl,    currency,         currency ] };
-   key <BKSL>  { [ backslash,        bar,      section,         section ] };
+   key <AC12>  { [ backslash,        bar,      section,         section ] };
 
    key <AB03>  { [         c,          C,    ccedilla,         Ccedilla ] };
    key <AB06>  { [         n,          N,      ntilde,           Ntilde ] };
@@ -1054,6 +1056,63 @@ xkb_symbols "olpc2" {
    include "group(olpc)"
 };
 
+xkb_symbols "olpcm" {
+
+   include "us(basic)"
+   name[Group1]= "USA";
+
+   // Mechanical (non-membrane) OLPC int'l US English keyboard layout.
+   // See: http://wiki.laptop.org/go/OLPC_English_Non-membrane_Keyboard
+
+   key <TLDE> { [     grave, asciitilde,    dead_grave, dead_tilde ] };
+   key <AE01> { [         1,     exclam,    exclamdown, exclamdown ] };
+   key <AE02> { [         2,         at,       notsign,    notsign ] };
+   key <AE03> { [         3, numbersign,     0x1000300,  0x1000300 ] }; // combining grave
+   key <AE04> { [         4,     dollar,     0x1000301,  0x1000301 ] }; // combining acute
+   key <AE05> { [         5,    percent,     0x1000306,  0x1000306 ] }; // combining breve above
+   key <AE06> { [         6,asciicircum,     0x100030A,  0x100030A ] }; // combining ring above
+   key <AE07> { [         7,  ampersand,     0x1000302,  0x1000302 ] }; // combining circumflex above
+   key <AE08> { [         8,   asterisk,     0x100030C,  0x100030C ] }; // combining caron above
+   key <AE09> { [         9,  parenleft,     0x1000307,  0x1000307 ] }; // combining dot above
+   key <AE10> { [         0, parenright,     0x1000308,  0x1000308 ] }; // combining diaeresis above
+   key <AE11> { [     minus, underscore,     0x1000304,  0x1000304 ] }; // combining macron above
+
+   key <AD01> { [         q,          Q,  Greek_omega, Greek_OMEGA ] };
+   key <AD02> { [         w,          W,       oslash,      Oslash ] };
+   key <AD03> { [         e,          E,           oe,          OE ] };
+   key <AD04> { [         r,          R,    0x1000327,   0x1000327 ] }; // combining cedilla
+   key <AD05> { [         t,          T,    0x100032E,   0x100032E ] }; // combining breve below
+   key <AD06> { [         y,          Y,    0x1000325,   0x1000325 ] }; // combining ring below
+   key <AD07> { [         u,          U,    0x100032D,   0x100032D ] }; // combining circumflex below
+   key <AD08> { [         i,          I,    0x100032C,   0x100032C ] }; // combining caron below
+   key <AD09> { [         o,          O,    0x1000323,   0x1000323 ] }; // combining dot below
+   key <AD10> { [         p,          P,    0x1000324,   0x1000324 ] }; // combining diaeresis below
+   key <AD11> { [ bracketleft,  braceleft,  0x1000331,   0x1000331 ] }; // combining macron below
+   key <AD12> { [bracketright, braceright,  0x1000330,   0x1000330 ] }; // combining tilde below
+
+   key <AC01>  { [         a,          A,          ae,               AE ] };
+   key <AC02>  { [         s,          S,      ssharp,        0x1001E9C ] }; // uppercase S sharp
+   key <AC03>  { [         d,          D,         eth,              ETH ] };
+   key <AC04>  { [         f,          F,       thorn,            THORN ] };
+   key <AC06>  { [         h,          H,    sterling,         sterling ] };
+   key <AC07>  { [         j,          J,    EuroSign,         EuroSign ] };
+   key <AC10>  { [ semicolon,      colon,   masculine,      ordfeminine ] };
+   // no AC11 or AC12 on olpcm
+
+   key <AB03>  { [         c,          C,    ccedilla,         Ccedilla ] };
+   key <AB06>  { [         n,          N,      ntilde,           Ntilde ] };
+   key <AB07>  { [         m,          M,          mu,               mu ] };
+   key <AB08>  { [     comma,     less,  guillemotleft,   guillemotleft ] };
+   key <AB09>  { [    period,  greater, guillemotright,  guillemotright ] };
+   key <AB10>  { [     slash,   question, questiondown,    questiondown ] };
+
+   key <AA02>  { [ backslash,        bar,      section,         section ] };
+   key <AA06>  { [     equal,       plus,     0x1000303,  0x1000303 ] };
+   key <AA07>  { [ apostrophe,  quotedbl,    currency,         currency ] };
+
+   include "level3(ralt_switch)"
+};
+
 // Based on Cherokee Nation Official Layout
 // http://www.cherokee.org/extras/downloads/font/Keyboard.htm
 
index 57ea496..fb6aa41 100644 (file)
@@ -296,17 +296,32 @@ main(void)
 
                         /* Level 5. */
                         KEY_RIGHTALT,    DOWN,  XKB_KEY_ISO_Level5_Shift,  NEXT,
+                        /* XXX: xkeyboard-config is borked when de(neo) is
+                         *      not the first group - not our fault. We test
+                         *      Level5 seprately below with only de(neo). */
+                        /* KEY_5,           BOTH,  XKB_KEY_periodcentered,    NEXT, */
+                        /* KEY_E,           BOTH,  XKB_KEY_Up,                NEXT, */
+                        /* 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_V,           BOTH,  XKB_KEY_p,               FINISH));
+
+    xkb_keymap_unref(keymap);
+    keymap = test_compile_rules(ctx, "evdev", "", "de", "neo", "");
+    assert(keymap);
+    assert(test_key_seq(keymap,
+                        /* Level 5. */
+                        KEY_RIGHTALT,    DOWN,  XKB_KEY_ISO_Level5_Shift,  NEXT,
                         KEY_5,           BOTH,  XKB_KEY_periodcentered,    NEXT,
                         KEY_E,           BOTH,  XKB_KEY_Up,                NEXT,
                         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_V,           BOTH,  XKB_KEY_p,               FINISH));
+                        KEY_RIGHTALT,    UP,    XKB_KEY_ISO_Level5_Shift,  FINISH));
 
     xkb_keymap_unref(keymap);
-    assert(ctx);
     keymap = test_compile_rules(ctx, "evdev", "", "us,il,ru", "",
                                 "grp:alt_shift_toggle_bidir,grp:menu_toggle");
     assert(keymap);