OLPC keyboard definitions - take 13

Bernardo Innocenti bernie at codewiz.org
Fri Sep 14 05:52:57 PDT 2007


Sergey Udaltsov wrote:

> 1. Still, I am not happy with Urdu. There is no such country.

Oh!  I have folded it into pk, but forgot to "cvs rm" the file.


> 2. The group names for layouts which would be default on olpc should
> have only the country name. So, instead of
>    name[Group1]= "U.S. English - OLPC International";
> there should be only
>    name[Group1]= "USA";
> That is the standard practice for variants which are default for some
> keyboard model (according to the rules).

I had done that for all the other files, except for the us one.

But I've set the name to "USA", but shouldn't it be "US International"
in our case?  Unlike the plain USA keyboard, our layout carries a
load of other symbols.


> I would not be able to apply anything before 1.1 release since we are
> in the freeze period.

No problem, we can live with the out of tree patch for some time, but
I was hoping to push these changes to Fedora to avoid maintaining a
forked package for the OLPC.

Also, until #12202 is sorted out, I can't really package up the files
from HEAD.  I'm using the 2007.08.28 snapshot instead.

Here's my patch again with the above changes included:


Index: xkeyboard-config/compat/Makefile.am
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/compat/Makefile.am,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 Makefile.am
--- xkeyboard-config/compat/Makefile.am	17 Oct 2005 00:38:53 -0000	1.5
+++ xkeyboard-config/compat/Makefile.am	14 Sep 2007 12:50:26 -0000
@@ -6,7 +6,7 @@ default iso9995 \
 japan keypad ledcaps \
 lednum ledscroll level5 \
 misc mousekeys norepeat \
-pc pc98 xfree86 \
+olpc pc pc98 xfree86 \
 xtest README
 
 include $(top_srcdir)/xkbrules.am
Index: xkeyboard-config/compat/olpc
===================================================================
RCS file: xkeyboard-config/compat/olpc
diff -N xkeyboard-config/compat/olpc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ xkeyboard-config/compat/olpc	14 Sep 2007 12:50:27 -0000
@@ -0,0 +1,50 @@
+// Created by Bernardo Innocenti <bernie at codewiz.org>
+//
+// Map the OLPC game keys to virtual modifiers
+//
+
+default xkb_compatibility "olpc"  {
+    include "complete"
+
+    virtual_modifiers	Square,Cross,Triangle,Circle;
+
+    interpret KP_Home+Any     {
+        //useModMapMods= level1;
+	virtualModifier= Square;
+	action = SetMods(modifiers=modMapMods);
+    };
+
+    interpret KP_Home	{
+	action = SetMods(modifiers=Square);
+    };
+
+    interpret KP_Next+Any     {
+        //useModMapMods= level1;
+	virtualModifier= Cross;
+	action = SetMods(modifiers=modMapMods);
+    };
+
+    interpret KP_Next	{
+	action = SetMods(modifiers=Cross);
+    };
+
+    interpret KP_End+Any     {
+        //useModMapMods= level1;
+	virtualModifier= Circle;
+	action = SetMods(modifiers=modMapMods);
+    };
+
+    interpret KP_End	{
+	action = SetMods(modifiers=Circle);
+    };
+
+    interpret KP_Prior+Any     {
+        //useModMapMods= level1;
+	virtualModifier= Triangle;
+	action = SetMods(modifiers=modMapMods);
+    };
+
+    interpret KP_Prior	{
+	action = SetMods(modifiers=Triangle);
+    };
+};
Index: xkeyboard-config/rules/base.lists.part
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/rules/base.lists.part,v
retrieving revision 1.44
diff -u -p -u -p -r1.44 base.lists.part
--- xkeyboard-config/rules/base.lists.part	5 Sep 2007 23:00:41 -0000	1.44
+++ xkeyboard-config/rules/base.lists.part	14 Sep 2007 12:50:27 -0000
@@ -14,6 +14,9 @@
 // PC geometries - they have special geometry but symbols are mostly pc105
 ! $pcgeometries = abnt2 latitude jp106 kr106
 
+// Layouts that provide further specializations for the OLPC
+! $olpclayouts = ara br es ru th tr us
+
 ! $macbooks = macbook78 macbook79
 ! $maclaptop = ibook powerbook macbook78 macbook79
 ! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79
Index: xkeyboard-config/rules/base.m_k.part
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/rules/base.m_k.part,v
retrieving revision 1.11
diff -u -p -u -p -r1.11 base.m_k.part
--- xkeyboard-config/rules/base.m_k.part	29 Aug 2007 22:19:38 -0000	1.11
+++ xkeyboard-config/rules/base.m_k.part	14 Sep 2007 12:50:27 -0000
@@ -6,6 +6,7 @@
   abnt2		=	xfree86(abnt2)
   jp106		=	xfree86(jp106)
   evdev		=	evdev
+  olpc		=	evdev
   macintosh_hhk	=	macintosh(hhk)
   macintosh_old	=	macintosh(old)
  $macbooks	=	macintosh+macintosh(badmap)
Index: xkeyboard-config/rules/base.ml_c.part
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/rules/base.ml_c.part,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 base.ml_c.part
--- xkeyboard-config/rules/base.ml_c.part	28 May 2006 19:54:04 -0000	1.6
+++ xkeyboard-config/rules/base.ml_c.part	14 Sep 2007 12:50:27 -0000
@@ -1,3 +1,4 @@
   pc98		nec_vndr/jp	=	pc98(basic)
   *		jp		=	complete+japan
+  olpc		*		=	olpc
   *		*		=	complete
Index: xkeyboard-config/rules/base.ml_s.part
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/rules/base.ml_s.part,v
retrieving revision 1.17
diff -u -p -u -p -r1.17 base.ml_s.part
--- xkeyboard-config/rules/base.ml_s.part	18 Aug 2007 00:32:01 -0000	1.17
+++ xkeyboard-config/rules/base.ml_s.part	14 Sep 2007 12:50:27 -0000
@@ -16,6 +16,8 @@
   macintosh_old	*			=	macintosh_vndr/us(oldmac)+%l%(v)
  $macs		en_US			=	pc+macintosh_vndr/us(extended)
  $macs		$macvendorlayouts	=	pc+macintosh_vndr/%l%(v)
+  olpc		$olpclayouts		=	olpc+%l%(m)
+  olpc		*			=	olpc+%l
   thinkpad   	br			=	pc+br(thinkpad)
   *	   	$nonlatin		=	pc+us+%l%(v):2
   *		*			=	pc+%l%(v)
Index: xkeyboard-config/rules/base.xml.in
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/rules/base.xml.in,v
retrieving revision 1.208
diff -u -p -u -p -r1.208 base.xml.in
--- xkeyboard-config/rules/base.xml.in	5 Sep 2007 23:00:42 -0000	1.208
+++ xkeyboard-config/rules/base.xml.in	14 Sep 2007 12:50:28 -0000
@@ -916,6 +916,13 @@
     </model>
     <model>
       <configItem>
+	<name>olpc</name>
+	<_description>OLPC keyboard</_description>
+	<vendor>OLPC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
 	<name>benqx</name>
 	<_description>BenQ X-Touch</_description>
 	<vendor>BenQ</vendor>
@@ -935,6 +942,13 @@
 	<vendor>Intel</vendor>
       </configItem>
     </model>
+    <model>
+      <configItem>
+	<name>olpc</name>
+	<_description>OLPC</_description>
+	<vendor>OLPC</vendor>
+      </configItem>
+    </model>
   </modelList>
   <layoutList>
     <layout>
@@ -1010,6 +1024,12 @@
             <_description>International (AltGr dead keys)</_description>
           </configItem>
         </variant>
+        <variant>
+          <configItem>
+            <name>olpc2</name>
+	    <_description>OLPC with mode toggle on multiply/divide key</_description>
+          </configItem>
+        </variant>
       </variantList>
     </layout>
     <layout>
Index: xkeyboard-config/rules/merge.sh
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/rules/merge.sh,v
retrieving revision 1.4
diff -u -p -u -p -r1.4 merge.sh
--- xkeyboard-config/rules/merge.sh	17 Sep 2006 20:03:34 -0000	1.4
+++ xkeyboard-config/rules/merge.sh	14 Sep 2007 12:50:28 -0000
@@ -7,7 +7,8 @@ if [ -z "$HDR" ]; then
     HDR="HDR"
 fi
 
-> $DEST
+basename=`basename $0`
+echo "// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY $basename FROM rules/*.part" >$DEST
 
 for i in $*; do
   if [ "$i" == "$HDR" ] || [ "$i" == "HDR" ]; then
Index: xkeyboard-config/symbols/Makefile.am
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/Makefile.am,v
retrieving revision 1.58
diff -u -p -u -p -r1.58 Makefile.am
--- xkeyboard-config/symbols/Makefile.am	22 Aug 2007 21:52:47 -0000	1.58
+++ xkeyboard-config/symbols/Makefile.am	14 Sep 2007 12:50:28 -0000
@@ -20,7 +20,7 @@ latam latin lk \
 lt lv ma mao \
 mk mm mn \
 mt mv ng nl \
-no np pc pk \
+no np olpc pc pk \
 pl pt ro \
 ru se si \
 sk sy th \
Index: xkeyboard-config/symbols/ara
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/ara,v
retrieving revision 1.7
diff -u -p -u -p -r1.7 ara
--- xkeyboard-config/symbols/ara	7 Aug 2007 15:17:56 -0000	1.7
+++ xkeyboard-config/symbols/ara	14 Sep 2007 12:50:28 -0000
@@ -217,3 +217,59 @@ xkb_symbols "buckwalter" {
 
     // End alphanumeric section
 };
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+
+    include "ara(basic)"
+
+    // As part of the olpc design some changes were made to the Arabic
+    // keyboard design. Major changes are:
+    //
+    //  * Removed the lam-alef single character. Poeple type as they
+    //    pronounce, and lam-alef is just a visual formatting of the
+    //    sequence and is not often used on the keyboard. It is
+    //    similar to the Allah single character, which is also not on
+    //    the keyboard.
+    //  * Moved the following keys:
+    //     o Thal from TLDE to AB05: Due to space limitation on the
+    //       keybaord, but also accessibility
+    //     o Shadda from TLDE to AD05
+    //  * Placed currency letters on number keys and moved the ^ and &
+    //    characters to lower keys (This change is worth revisiting
+    //    before end of test period)
+
+    key <TLDE> {  [           grave,      asciitilde  ] };
+
+    key <AE01> {  [       0x1000661,          exclam  ] };
+    key <AE02> {  [       0x1000662,              at  ] };
+    key <AE03> {  [       0x1000663,      numbersign  ] };
+    key <AE04> {  [       0x1000664,          dollar  ] };
+    key <AE05> {  [       0x1000665,         percent  ] };
+    key <AE06> {  [       0x1000666,        sterling  ] };
+    key <AE07> {  [       0x1000667,        EuroSign  ] };
+    key <AE08> {  [       0x1000668,        asterisk  ] };
+    key <AE09> {  [       0x1000669,       parenleft  ] };
+    key <AE10> {  [       0x1000660,      parenright  ] };
+
+    key <AD05> {  [      Arabic_feh,   Arabic_shadda  ] };
+
+    key <AD08> {  [      Arabic_heh,        division  ] };
+    key <AD11> {  [     Arabic_jeem                   ] };
+    key <AD12> {  [      Arabic_dal                   ] };
+
+    key <AC01> {  [    Arabic_sheen,            less  ] };
+    key <AC02> {  [     Arabic_seen,         greater  ] };
+    key <AC05> {  [      Arabic_lam,       ampersand  ] };
+    key <AC10> {  [      Arabic_kaf                   ] };
+    key <AC11> {  [      Arabic_tah                   ] };
+
+    key <BKSL> {  [       backslash,             bar  ] };
+
+
+    // REH isolated form?
+    key <AB04> {  [       Arabic_ra,  Arabic_kasratan ] };
+    key <AB05> {  [     Arabic_thal,      asciicircum ] };
+    // Language key
+    key <I219> {  [  ISO_Next_Group,   ISO_Prev_Group ] };
+};
Index: xkeyboard-config/symbols/br
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/br,v
retrieving revision 1.12
diff -u -p -u -p -r1.12 br
--- xkeyboard-config/symbols/br	10 Aug 2007 09:06:27 -0000	1.12
+++ xkeyboard-config/symbols/br	14 Sep 2007 12:50:28 -0000
@@ -64,6 +64,39 @@ xkb_symbols "nodeadkeys" {
     key <AB10>	{ [ semicolon,      colon, dead_belowdot,    abovedot ]	};
 };
 
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+
+    include "us(basic)"
+    name[Group1]="Brazil";
+
+    key <TLDE> { [   apostrophe,	quotedbl                                ] };
+
+    key <AE01>	{ [           1,          exclam,   onesuperior                 ] };
+    key <AE02>	{ [           2,	      at,   twosuperior                 ] };
+    key <AE03>	{ [           3,      numbersign, threesuperior                 ] };
+    key <AE04>	{ [           4,	  dollar,      sterling                 ] };
+    key <AE05>	{ [           5,	 percent,          cent                 ] };
+    key <AE06>	{ [           6,  dead_diaeresis,       notsign                 ] };
+    key <AE12>  { [       equal,	    plus,       section                 ] };
+
+    key <AD03> { [            e,	       E,      EuroSign                 ] };
+    key <AD11> { [   dead_acute,      dead_grave                                ] };
+    key <AD12> { [  bracketleft,       braceleft,     0x10000AA                 ] };
+    
+    key <AC10> { [     ccedilla,	Ccedilla	                        ] };
+    key <AC11> { [   dead_tilde, dead_circumflex	                        ] };
+    key <BKSL> { [ bracketright,      braceright,     0x10000BA	                ] };
+
+    key <AB01> { [            z,	       Z,	    bar                 ] };
+    key <AB03> { [            c,	       C,     0x10020A2	                ] };
+    key <AB09> { [       period,	 greater,     backslash                 ] };
+    key <AB10> { [    semicolon,           colon                                ] };
+
+    key <I219> { [        slash,	question,        degree, ISO_Next_Group ] };
+    include "level3(ralt_switch)"
+};
+
 // ABNT2 Keyboard to IBM/Lenovo Thinkpads 
 // by Piter PUNK <piterpk at terra.com.br>
 //
Index: xkeyboard-config/symbols/es
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/es,v
retrieving revision 1.13
diff -u -p -u -p -r1.13 es
--- xkeyboard-config/symbols/es	26 Jan 2007 23:02:18 -0000	1.13
+++ xkeyboard-config/symbols/es	14 Sep 2007 12:50:28 -0000
@@ -146,5 +146,38 @@ xkb_symbols "mac" {
 
     include "es"
     name[Group1]= "Spain - Macintosh";
+};
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+
+    include "us(basic)"
+    name[Group1]="Spain";
+
+    key <TLDE> { [          bar,         degree	                 ] };
+    key <AE02> { [            2,       quotedbl,              at ] };
+    key <AE03> { [            3,     dead_grave,      numbersign ] };
+    key <AE05> { [            5,	percent, dead_circumflex ] };
+    key <AE06> { [            6,      ampersand,         notsign ] };
+    key <AE07> { [            7,          slash,       backslash ] };
+    key <AE08> { [            8,      parenleft	                 ] };
+    key <AE09> { [            9,     parenright	                 ] };
+    key <AE10> { [            0,          equal                  ] };
+    key <AE11> { [   apostrophe,       question                  ] };
+    key <AE12> { [   exclamdown,   questiondown                  ] };
+
+    key <AD03> { [            e,              E,        EuroSign ] };
+    key <AD11> { [   dead_acute, dead_diaeresis	                 ] };
+    key <AD12> { [  bracketleft,      braceleft                  ] };
+    
+    key <AC10> { [       ntilde,	 Ntilde                  ] };
+    key <AC11> { [         plus,       asterisk,      dead_tilde ] };
+    key <BKSL> { [ bracketright,     braceright                  ] };
+
+    key <AB08> { [        comma,      semicolon                  ] };
+    key <AB09> { [       period,          colon                  ] };
+    key <AB10> { [        minus,     underscore                  ] };
 
+    key <I219> { [         less,        greater,  ISO_Next_Group ] };
+    include "level3(ralt_switch)"
 };
Index: xkeyboard-config/symbols/inet
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/inet,v
retrieving revision 1.63
diff -u -p -u -p -r1.63 inet
--- xkeyboard-config/symbols/inet	5 Sep 2007 23:00:41 -0000	1.63
+++ xkeyboard-config/symbols/inet	14 Sep 2007 12:50:29 -0000
@@ -18,7 +18,7 @@
 // setxkbmap 'my_kb_layout' -variant 'my_kb_variant' -model 'my_eak_type'
 
 // All keyboards listed here should be also mentioned in
-// xc/programs/xkbcomp/rules/xfree86, xfree86.lst and xfree86.xml.
+// rules/base, base.lst and base.xml.
 
 // Very common set of media keys
 partial hidden alphanumeric_keys
Index: xkeyboard-config/symbols/ng
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/ng,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 ng
--- xkeyboard-config/symbols/ng	11 Oct 2006 19:32:35 -0000	1.2
+++ xkeyboard-config/symbols/ng	14 Sep 2007 12:50:29 -0000
@@ -54,3 +54,64 @@ xkb_symbols "hausa" {
     key <AB10> { [   scedilla,   Scedilla,     slash,    question ] };
 
 };
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+
+   include "ng(basic)"
+
+   // OLPC West Africa keyboard layout
+   // See: http://wiki.laptop.org/go/Image:Nigeria-B3.png
+
+   key <TLDE> { [     grave, asciitilde,    exclamdown,       exclamdown ] };
+   key <AE01> { [         1,     exclam,      sterling,         sterling ] };
+   key <AE02> { [         2,         at,      EuroSign,         EuroSign ] };
+   key <AE03> { [         3, numbersign,        dollar,     	  dollar ] };
+   key <AE04> { [         4,  0x10020A6,     0x1000301,        0x1000301 ] }; // Naira, combining acute
+   key <AE05> { [         5,    percent,     0x1000300,        0x1000300 ] }; // combining grave
+   key <AE06> { [         6,asciicircum,     0x100030A,        0x100030A ] }; // combining ring above
+   key <AE07> { [         7,  ampersand,     0x1000302,        0x1000302 ] }; // combining circumflex above
+   key <AE08> { [         8,   asterisk,     0x1000324,        0x1000324 ] }; // 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 <AE12> { [     equal,       plus,     0x1000303,        0x1000303 ] }; // combining tilde above
+
+   key <AD02> { [         w,          W,     0x1000,       0x1000 ] }; // E with dot below
+   key <AD03> { [         e,          E,     0x10001DD, 0x100018E ] }; // reversed E
+   key <AD04> { [         r,          R,     0x10001B4, 0x10001B3 ] }; // Y with hook
+   key <AD05> { [         t,          T,     0x1000327, 0x1000327 ] }; // combining cedilla
+   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,     0x1000304, 0x1000304 ] }; // 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,   Greek_iota,       Greek_IOTA ] };
+   key <AC02>  { [	   s,	       S,    0x1001E63,	       0x1001E62 ] }; // S with dot below
+   key <AC03>  { [         d,          D,    0x1000257,        0x100018A ] }; // D with hook
+   key <AC04>  { [	   f,	       F,    0x1001E0D,        0x1001E0C ] }; // D with dot below
+   key <AC05>  { [         g,          G,    0x1000272,	       0x100019D ] }; // N with left hook
+   key <AC06>  { [         u,          U,    0x1001EE5,	       0x1001EE4 ] }; // U with dot below
+   key <AC07>  { [         j,          J,    0x1001ECB,	       0x1001ECA ] }; // I with dot below
+   key <AC08>  { [         k,          K,    0x1000199,	       0x1000198 ] }; // K with hook
+   key <AC09>  { [         l,          L,    0x10001E37,       0x1001E36 ] }; // L with dot below
+   key <AC10>  { [ semicolon,      colon,    masculine,      ordfeminine ] };
+   key <AC11>  { [ apostrophe,  quotedbl,     currency,         currency ] };
+   key <BKSL>  { [ backslash,        bar,      section,          section ] };
+
+   key <AB03>  { [         c,          C,    0x1000254,        0x1000186 ] }; // open O
+   key <AB04>  { [         v,          V,    0x100028B,        0x10001B2 ] }; // V with hook
+   key <AB05>  { [         b,          B,    0x1000253,	       0x1000181 ] }; // B with hook
+   key <AB06>  { [         n,          N,          eng,	             ENG ] };
+   key <AB07>  { [         m,          M,    0x1001E45,        0x1001E44 ] }; // N with dot above
+   key <AB08>  { [     comma,     less, guillemontleft,   guillemontleft ] };
+   key <AB09>  { [    period, greater, guillemontright,  guillemontright ] };
+   key <AB10>  { [     slash,   question, questiondown,     questiondown ] };
+
+   key <I219>  { [ ISO_Next_Group, ISO_Prev_Group ] };
+
+   include "level3(ralt_switch)"
+};
Index: xkeyboard-config/symbols/olpc
===================================================================
RCS file: xkeyboard-config/symbols/olpc
diff -N xkeyboard-config/symbols/olpc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ xkeyboard-config/symbols/olpc	14 Sep 2007 12:50:29 -0000
@@ -0,0 +1,19 @@
+// Created by Bernardo Innocenti <bernie at codewiz.org>
+//
+// Additional symbol definitions for the OLPC keyboards
+//
+
+alphanumeric_keys modifier_keys
+xkb_symbols "olpc" {
+    include "pc(pc105)"
+
+    modifier_map Mod1 { KP_Home   }; // KP_Home  is the "square" game key
+    modifier_map Mod3 { KP_End    }; // KP_End   is the "tick" game key
+    modifier_map Mod4 { KP_Prior  }; // KP_Prior is the "O" game key
+    modifier_map Mod5 { KP_Next   }; // KP_Next  is the "X" game key
+
+    key <I220> { [ XF86Search	] }; // search key
+    key <I221> { [ XF86Meeting	] }; // fn+search key 
+    key <I236> { [ XF86Start	] }; // gear key (fn+space)
+};
+
Index: xkeyboard-config/symbols/pk
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/pk,v
retrieving revision 1.1
diff -u -p -u -p -r1.1 pk
--- xkeyboard-config/symbols/pk	30 Jul 2005 02:32:00 -0000	1.1
+++ xkeyboard-config/symbols/pk	14 Sep 2007 12:50:29 -0000
@@ -83,3 +83,102 @@ xkb_symbols "urd" {
       modifier_map Shift {Shift_L, Shift_R };
       modifier_map Lock {Caps_Lock };
 };
+
+partial default alphanumeric_keys
+xkb_symbols "ara" {
+   name[Group1]= "Arabic";
+
+// NOTES:
+//
+// there is also combined shadda diacritis in AltGr position of simple
+// diacritics fatha, fathatan, damma, dammatan, kasra and kasratan
+// should a third state be added to Group2 ?
+//
+// How is this different from ara(basic)? --bernie
+
+   key <TLDE> {  [     0x100064d  ,       0x100064b      ]     };
+   key <AE01> {  [     0x10006F1  ,       0x1000021      ]     };
+   key <AE02> {  [     0x10006F2  ,       0x1000003      ]     };
+   key <AE03> {  [     0x10006F3  ,       0x100002f      ]     };
+   key <AE04> {  [     0x10006F4  ,       0x1000626      ]     };
+   key <AE05> {  [     0x10006F5  ,       0x1000003      ]     };
+   key <AE06> {  [     0x10006F6  ,       0x10006d6      ]     };
+   key <AE07> {  [     0x10006F7  ,       0x1000654      ]     };
+   key <AE08> {  [     0x10006F8  ,       0x100064c      ]     };
+   key <AE09> {  [     0x10006F9  ,       0x1000029      ]     };
+   key <AE10> {  [     0x10006F0  ,       0x1000028      ]     };
+   key <AE11> {  [     0x1000623  ,       0x1000651      ]     };
+   key <AE12> {  [     0x1000624  ,       0x1000622      ]     };
+   key <AD01> {  [     0x1000642  ,       0x1000652      ]     };
+   key <AD02> {  [     0x1000648  ,       0x10000a3      ]     };
+   key <AD03> {  [     0x1000639  ,       0x10000a5      ]     };
+   key <AD04> {  [     0x1000631  ,       0x1000691      ]     };
+   key <AD05> {  [     0x100062a  ,       0x1000679      ]     };
+   key <AD06> {  [     0x10006d2  ,       0x1000601      ]     };
+   key <AD07> {  [     0x1000621  ,       0x100060c      ]     };
+   key <AD08> {  [     0x10006cc  ,       0x1000670      ]     };
+   key <AD09> {  [     0x10006c1  ,       0x10006c3      ]     };
+   key <AD10> {  [     0x100067e  ,       0x100064f      ]     };
+   key <AD11> {  [     0x100005d  ,       0x1000670      ]     };
+   key <AD12> {  [     0x100005b  ,       0x1000670      ]     };
+
+   key <AC01> {  [     0x1000627  ,       0x1000653      ]     };
+   key <AC02> {  [     0x1000633  ,       0x1000635      ]     };
+   key <AC03> {  [     0x100062f  ,       0x1000688      ]     };
+   key <AC04> {  [     0x1000641  ,       0x1000003      ]     };
+   key <AC05> {  [     0x10006af  ,       0x100063a      ]     };
+   key <AC06> {  [     0x10006be  ,       0x100062d      ]     };
+   key <AC07> {  [     0x100062c  ,       0x1000636      ]     };
+   key <AC08> {  [     0x10006a9  ,       0x100062e      ]     };
+   key <AC09> {  [     0x1000644  ,       0x1000613      ]     };
+   key <AC10> {  [     0x100061b  ,       0x100003a      ]     };
+   key <AC11> {  [     0x1000670  ,       0x1000022       ]     };
+   key <BKSL> {  [     0x100060e ,        0x1000614      ]     };
+
+   key <LSGT> {  [            bar ,       brokenbar      ]     };
+   key <AB01> {  [     0x1000632  ,       0x1000630      ]     };
+   key <AB02> {  [     0x1000634  ,       0x1000698      ]     };
+   key <AB03> {  [     0x1000686  ,       0x100062b      ]     };
+   key <AB04> {  [     0x1000637  ,       0x1000638      ]     };
+   key <AB05> {  [     0x1000628  ,       0x1000612      ]     };
+   key <AB06> {  [     0x1000646  ,       0x10006ba      ]     };
+   key <AB07> {  [     0x1000645  ,       0x1000003      ]     };
+   key <AB08> {  [     0x100060c  ,       0x1000650      ]     };
+   key <AB09> {  [     0x10006d4  ,       0x100064e      ]     };
+   key <AB10> {  [     0x1000003  ,       0x100061f      ]     };
+
+   // End alphanumeric section
+};
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+
+// based on a keyboard map from an 'xkb/symbols/ur' file
+// Contact: Nadir Durrani
+// E-mail : aquadurrani at hotmail.com
+
+   include "pk(ara)"
+
+   key <AE02> {  [     0x10006F2  ,       0x1000600      ]     };
+   key <AE05> {  [     0x10006F5  ,       0x100060F      ]     };
+   key <AE06> {  [     0x10006F6  ,       0x1000610      ]     };
+ 
+   key <AD01> {  [     0x1000642  ,       0x10006E1      ]     };
+   key <AD02> {  [     0x1000648  ,       0x100FDFA      ]     };
+   key <AD03> {  [     0x1000639  ,       0x1000611      ]     };
+   // [] swapped due to keyboard misprint
+   key <AD11> {  [     0x100005B  ,       0x1000603      ]     };
+   key <AD12> {  [     0x100005D  ,       0x100060E      ]     };
+
+   key <AC04> {  [     0x1000641  ,       0x1000656      ]     };
+   key <AC09> {  [     0x1000644  ,       0x1000612      ]     };
+   key <AC11> {  [     0x1000027  ,       0x1000022      ]     };
+   key <BKSL> {  [     0x1000602  ,       0x1000614      ]     };
+
+   key <AB05> {  [     0x1000628  ,       0x1000613      ]     };
+   key <AB07> {  [     0x1000645  ,       0x1000658      ]     };
+   key <AB10> {  [     0x1000615  ,       0x100061F      ]     };
+
+   //language key
+   key <I219> {  [ISO_Next_Group  ,  ISO_Prev_Group      ]     };
+};
Index: xkeyboard-config/symbols/ru
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/ru,v
retrieving revision 1.16
diff -u -p -u -p -r1.16 ru
--- xkeyboard-config/symbols/ru	11 Aug 2007 23:27:06 -0000	1.16
+++ xkeyboard-config/symbols/ru	14 Sep 2007 12:50:29 -0000
@@ -69,6 +69,25 @@ xkb_symbols "basic" {
 };
 
 partial alphanumeric_keys
+xkb_symbols "olpc" {
+
+    include "ru(basic)"
+
+    key	<TLDE> {	[          U+0451,          U+0401, grave	]	}; // ё, Ё
+    key <AE03> {        [               3,      numbersign, U+2116      ]       }; // №
+    key <AE04> {        [               4,          dollar, semicolon   ]       };
+    key <AE05> {        [               5,          percent             ]       };
+    key <AE06> {        [               6,      asciicircum, colon      ]       };
+    key <AE07> {        [               7,          ampersand           ]       };
+    key <AE08> {        [               8,          asterisk            ]       };
+    key <AE09> {        [               9,          parenleft, acute    ]       };
+    key	<AC12> {	[       backslash,	    bar, slash   	]	};
+    key <AB10> {        [          period,          comma               ]       };
+    key <I219> {        [  ISO_Next_Group,          ISO_Prev_Group      ]       };
+    key <BKSL> {        [       backslash,          slash               ]       };
+};
+
+partial alphanumeric_keys
 xkb_symbols "winkeys" {
     include "ru(basic)"
     name[Group1]= "Russia - Winkeys";
Index: xkeyboard-config/symbols/th
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/th,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 th
--- xkeyboard-config/symbols/th	16 Jan 2005 02:18:20 -0000	1.6
+++ xkeyboard-config/symbols/th	14 Sep 2007 12:50:29 -0000
@@ -186,3 +186,64 @@ xkb_symbols "tis" {
 
     key <BKSL> {	[ Thai_khokhon,		Thai_khokhuat	]	};
 };
+
+partial alphanumeric_keys 
+xkb_symbols "olpc" {
+
+    name[Group1]= "Thailand";
+    // The OLPC thai layout
+    // walter at laptop.org
+
+    key <TLDE> { [ 0x1000E4F,  0x1000E5B ] };
+    key <AE01> { [ 0x1000E3F,  0x1000E45 ] };
+    key <AE02> { [     slash,  0x1000E51 ] };
+    key <AE03> { [     minus,  0x1000E52 ] };
+    key <AE04> { [ 0x1000E20,  0x1000E53 ] };
+    key <AE05> { [ 0x1000E16,  0x1000E54 ] };
+    key <AE06> { [ 0x1000E38,  0x1000E39 ] };
+    key <AE07> { [ 0x1000E36,  0x1000E4E ] };
+    key <AE08> { [ 0x1000E04,  0x1000E55 ] };
+    key <AE09> { [ 0x1000E15,  0x1000E56 ] };
+    key <AE10> { [ 0x1000E08,  0x1000E57 ] };
+    key <AE11> { [ 0x1000E02,  0x1000E58 ] };
+    key <AE12> { [ 0x1000E0A,  0x1000E59 ] };
+
+    key <AD01> { [ 0x1000E46,  0x1000E50 ] };
+    key <AD02> { [ 0x1000E44,   quotedbl ] };
+    key <AD03> { [ 0x1000E33,  0x1000E0E ] };
+    key <AD04> { [ 0x1000E1E,  0x1000E11 ] };
+    key <AD05> { [ 0x1000E30,  0x1000E18 ] };
+    key <AD06> { [ 0x1000E31,  0x1000E4D ] };
+    key <AD07> { [ 0x1000E35,  0x1000E4A ] };
+    key <AD08> { [ 0x1000E23,  0x1000E13 ] };
+    key <AD09> { [ 0x1000E19,  0x1000E2F ] };
+    key <AD10> { [ 0x1000E22,  0x1000E0D ] };
+    key <AD11> { [ 0x1000E1A,  0x1000E10 ] };
+    key <AD12> { [ 0x1000E25,      comma ] };
+
+    key <AC01> { [ 0x1000E1F,  0x1000E24 ] };
+    key <AC02> { [ 0x1000E2B,  0x1000E06 ] };
+    key <AC03> { [ 0x1000E01,  0x1000E0F ] };
+    key <AC04> { [ 0x1000E14,  0x1000E42 ] };
+    key <AC05> { [ 0x1000E40,  0x1000E0C ] };
+    key <AC06> { [ 0x1000E49,  0x1000E47 ] };
+    key <AC07> { [ 0x1000E48,  0x1000E4B ] };
+    key <AC08> { [ 0x1000E32,  0x1000E29 ] };
+    key <AC09> { [ 0x1000E2A,  0x1000E28 ] };
+    key <AC10> { [ 0x1000E27,  0x1000E0B ] };
+    key <AC11> { [ 0x1000E07,     period ] };
+    key <BKSL> { [ 0x1000E05,  0x1000E03 ] };
+
+    key <AB01> { [ 0x1000E1C,  parenleft ] };
+    key <AB02> { [ 0x1000E1B, parenright ] };
+    key <AB03> { [ 0x1000E41,  0x1000E09 ] };
+    key <AB04> { [ 0x1000E2D,  0x1000E2E ] };
+    key <AB05> { [ 0x1000E34,  0x1000E3A ] };
+    key <AB06> { [ 0x1000E37,  0x1000E4C ] };
+    key <AB07> { [ 0x1000E17,   question ] };
+    key <AB08> { [ 0x1000E21,  0x1000E12 ] };
+    key <AB09> { [ 0x1000E43,  0x1000E2C ] };
+    key <AB10> { [ 0x1000E1D,  0x1000E26 ] };
+
+    key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
+};
Index: xkeyboard-config/symbols/tr
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/tr,v
retrieving revision 1.10
diff -u -p -u -p -r1.10 tr
--- xkeyboard-config/symbols/tr	22 Mar 2006 23:02:42 -0000	1.10
+++ xkeyboard-config/symbols/tr	14 Sep 2007 12:50:29 -0000
@@ -226,3 +226,12 @@ xkb_symbols "ku_alt" {
     key <AD08>  { [         i,           I,  icircumflex,  Icircumflex ] };
     key <AD09>  { [         o,           O,   odiaeresis,   Odiaeresis ] };
 };
+
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+    name[Group1]= "Turkish OLPC";
+    include "tr(f)"
+
+    key <I219>	{ [  less,  greater, bar, brokenbar ] };
+};
Index: xkeyboard-config/symbols/us
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/us,v
retrieving revision 1.33
diff -u -p -u -p -r1.33 us
--- xkeyboard-config/symbols/us	24 Aug 2007 22:01:29 -0000	1.33
+++ xkeyboard-config/symbols/us	14 Sep 2007 12:50:29 -0000
@@ -769,3 +769,69 @@ xkb_symbols "classmate-altgr-intl" {
 
     include "level3(switch)"
 };
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+
+   include "us(basic)"
+   name[Group1]= "USA";
+
+   // OLPC international US English keyboard layout.
+   // It's a little different from the usual international layout.
+   // See: http://wiki.laptop.org/go/Image:Keyboard_english.png
+
+   key <TLDE> { [     grave, asciitilde,    dead_grave, dead_tilde ] };
+   key <AE01> { [         1,     exclam,    exclamdown, exclamdown ] };
+   key <AE02> { [         2,         at,       notsign,    notsign ] };
+   key <AE03> { [         3, numbersign,     0x1000301,  0x1000301 ] }; // combining acute
+   key <AE04> { [         4,     dollar,     0x1000300,  0x1000300 ] }; // combining grave
+   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,     0x1000324,  0x1000324 ] }; // 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 <AE12> { [     equal,       plus,     0x1000303,  0x1000303 ] }; // combining tilde 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,    0x1000304,   0x1000304 ] }; // 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,           ssharp ] };
+   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 ] };
+   key <AC11>  { [ apostrophe,  quotedbl,    currency,         currency ] };
+   key <BKSL>  { [ backslash,        bar,      section,         section ] };
+
+   key <AB03>  { [         c,          C,    ccedilla,         Ccedilla ] };
+   key <AB06>  { [         n,          N,      ntilde,           Ntilde ] };
+   key <AB07>  { [         m,          M,          mu,               mu ] };
+   key <AB08>  { [     comma,      less, guillemontleft, guillemontleft ] };
+   key <AB09>  { [    period, greater, guillemontright, guillemontright ] };
+   key <AB10>  { [     slash,   question, questiondown,    questiondown ] };
+
+   key <I219>  { [  multiply,   division, ISO_Next_Group, ISO_Prev_Group ] };
+
+   include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "olpc2" {
+   include "us(olpc)"
+   name[Group1]= "U.S. English - OLPC International with Group Switch";
+   key <I219>  { [ ISO_Next_Group, ISO_Prev_Group ] };
+};

-- 
   //  Bernardo Innocenti - http://www.codewiz.org/
 \X/ One Laptop Per Child - http://www.laptop.org/



More information about the xorg mailing list