PATCH: updated OLPC keyboard definitions

Bernardo Innocenti bernie at codewiz.org
Fri Jul 13 23:24:55 PDT 2007


Sergey Udaltsov wrote:
> Hello Bernardo
> 
> Thanks for the updated patch. Some notes:
> 1. I think we'd be better off not adding olpc keycodes unless we
> really have to. Adding them "just in case" does not look reasonable.

The thing is, our keyboard controller generates some scancodes that
do not exist on regular PS2 keyboards:

  http://wiki.laptop.org/go/Scan_code_table

The keycodes/olpc was meant to be a hook where we can easily
add my own scancodes for testing purposes.

But I understand your concern: this is probably local material.
I'm resubmitting with those bits stripped out.


> 2. You've added a lot of layouts/variants. Why is the patch to
> base.xml.in so small then?;)

Err... indeed.  I've added them now.  I hope I got the layout
names right because I've not even ever seen any of these
keyboards.

Walter, could you please confirm:

  ur         -> Arabic Urdu
  ur(olpc)   -> Arabic OLPC-Urdu
  tu         -> Turkish
  tu(olpc)   -> Turkish OLPC



Index: 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
--- compat/Makefile.am	17 Oct 2005 00:38:53 -0000	1.5
+++ compat/Makefile.am	14 Jul 2007 06:19:19 -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: compat/olpc
===================================================================
RCS file: compat/olpc
diff -N compat/olpc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ compat/olpc	14 Jul 2007 06:19:19 -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: rules/base.lists.part
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/rules/base.lists.part,v
retrieving revision 1.38
diff -u -p -u -p -r1.38 base.lists.part
--- rules/base.lists.part	11 Jul 2007 23:17:59 -0000	1.38
+++ rules/base.lists.part	14 Jul 2007 06:19:19 -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 et ru th tr tu ur us
+
 ! $macbooks = macbook78 macbook79
 ! $maclaptop = ibook powerbook macbook78 macbook79
 ! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79
Index: rules/base.m_k.part
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/rules/base.m_k.part,v
retrieving revision 1.10
Index: 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
--- rules/base.ml_c.part	28 May 2006 19:54:04 -0000	1.6
+++ rules/base.ml_c.part	14 Jul 2007 06:19:19 -0000
@@ -1,3 +1,4 @@
   pc98		nec_vndr/jp	=	pc98(basic)
   *		jp		=	complete+japan
+  olpc		*		=	olpc
   *		*		=	complete
Index: rules/base.ml_s.part
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/rules/base.ml_s.part,v
retrieving revision 1.15
diff -u -p -u -p -r1.15 base.ml_s.part
--- rules/base.ml_s.part	20 Nov 2006 23:20:57 -0000	1.15
+++ rules/base.ml_s.part	14 Jul 2007 06:19:19 -0000
@@ -14,5 +14,7 @@
   macintosh_old	*			=	macintosh_vndr/us(oldmac)+%l%(v)
  $macs		en_US			=	pc+macintosh_vndr/us(extended)
  $macs		$macvendorlayouts	=	pc+macintosh_vndr/%l%(v)
-  *	   	$nonlatin		=	pc+us+%l%(v):2
+  olpc		$olpclayouts		=	olpc+%l%(m)
+  olpc		*			=	olpc+%l
+  *		$nonlatin		=	pc+us+%l%(v):2
   *		*			=	pc+%l%(v)
Index: rules/base.xml.in
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/rules/base.xml.in,v
retrieving revision 1.194
diff -u -p -u -p -r1.194 base.xml.in
--- rules/base.xml.in	11 Jul 2007 23:17:59 -0000	1.194
+++ rules/base.xml.in	14 Jul 2007 06:19:19 -0000
@@ -924,6 +924,13 @@
     </model>
     <model>
       <configItem>
+	<name>olpc</name>
+	<_description>OLPC keyboard</_description>
+	<vendor>OLPC</vendor>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
 	<name>benqx730</name>
 	<_description>BenQ X-Touch 730</_description>
 	<vendor>BenQ</vendor>
@@ -3012,6 +3019,21 @@
     </layout>
     <layout>
       <configItem>
+        <name>tu</name>
+        <_shortDescription>Turkish</_shortDescription>
+        <_description>Turkish</_description>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>olpc</name>
+            <_description>Turkish OLPC</_description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
         <name>ua</name>
         <_shortDescription>Ukr</_shortDescription>
         <_description>Ukraine</_description>
@@ -3080,6 +3102,21 @@
     </layout>
     <layout>
       <configItem>
+        <name>ur</name>
+        <_shortDescription>Urdu</_shortDescription>
+        <_description>Arabic Urdu</_description>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>olpc</name>
+            <_description>Arabic OLPC-Urdu</_description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
         <name>uz</name>
         <_shortDescription>Uzb</_shortDescription>
         <_description>Uzbekistan</_description>
Index: 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
--- rules/merge.sh	17 Sep 2006 20:03:34 -0000	1.4
+++ rules/merge.sh	14 Jul 2007 06:19:19 -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: symbols/Makefile.am
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/Makefile.am,v
retrieving revision 1.55
diff -u -p -u -p -r1.55 Makefile.am
--- symbols/Makefile.am	25 Jun 2007 21:39:09 -0000	1.55
+++ symbols/Makefile.am	14 Jul 2007 06:19:19 -0000
@@ -20,12 +20,12 @@ 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 \
-tj tr ua \
-us uz vn \
+tj tr tu ua \
+us ur uz vn \
 za \
 altwin capslock compose ctrl group inet keypad level3 level5 nbsp srvr_ctrl \
 eurosign
Index: symbols/ara
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/ara,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 ara
--- symbols/ara	18 Sep 2006 13:25:31 -0000	1.6
+++ symbols/ara	14 Jul 2007 06:19:19 -0000
@@ -218,3 +218,59 @@ xkb_symbols "buckwalter" {
 
     // End alphanumeric section
 };
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+    include "ara(basic)"
+    name[Group1]= "Arabic - OLPC";
+
+    // 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: symbols/br
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/br,v
retrieving revision 1.10
diff -u -p -u -p -r1.10 br
--- symbols/br	20 Nov 2006 19:18:02 -0000	1.10
+++ symbols/br	14 Jul 2007 06:19:19 -0000
@@ -63,3 +63,37 @@ xkb_symbols "nodeadkeys" {
     key <AC11>	{ [asciitilde, asciicircum ]	};
     key <AB10>	{ [ semicolon,      colon, dead_belowdot,    abovedot ]	};
 };
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+
+    include "us(basic)"
+
+    Name[Group1] = "Brazil - OLPC";
+
+    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)"
+};
Index: symbols/es
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/es,v
retrieving revision 1.13
diff -u -p -u -p -r1.13 es
--- symbols/es	26 Jan 2007 23:02:18 -0000	1.13
+++ symbols/es	14 Jul 2007 06:19:19 -0000
@@ -146,5 +146,39 @@ xkb_symbols "mac" {
 
     include "es"
     name[Group1]= "Spain - Macintosh";
+};
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+
+    include "us(basic)"
+
+    Name[Group1] = "Argentina - OLPC";
+
+    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: symbols/inet
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/inet,v
retrieving revision 1.52
diff -u -p -u -p -r1.52 inet
--- symbols/inet	23 Apr 2007 22:09:07 -0000	1.52
+++ symbols/inet	14 Jul 2007 06:19:19 -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.
 
 // Evdev Standardized Keycodes
 partial alphanumeric_keys
Index: symbols/olpc
===================================================================
RCS file: symbols/olpc
diff -N symbols/olpc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ symbols/olpc	14 Jul 2007 06:19:19 -0000
@@ -0,0 +1,14 @@
+// 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
+};
Index: symbols/ru
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/ru,v
retrieving revision 1.14
diff -u -p -u -p -r1.14 ru
--- symbols/ru	15 Jun 2007 20:39:29 -0000	1.14
+++ symbols/ru	14 Jul 2007 06:19:19 -0000
@@ -69,6 +69,24 @@ xkb_symbols "basic" {
 };
 
 partial alphanumeric_keys
+xkb_symbols "olpc" {
+    include "ru(basic)"
+    name[Group1]= "Russia - olpc keys";
+    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: symbols/th
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/th,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 th
--- symbols/th	16 Jan 2005 02:18:20 -0000	1.6
+++ symbols/th	14 Jul 2007 06:19:19 -0000
@@ -186,3 +186,64 @@ xkb_symbols "tis" {
 
     key <BKSL> {	[ Thai_khokhon,		Thai_khokhuat	]	};
 };
+
+partial alphanumeric_keys 
+xkb_symbols "olpc" {
+
+    name[Group1]= "Thailand - OLPC";
+    // 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: symbols/tr
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/tr,v
retrieving revision 1.10
diff -u -p -u -p -r1.10 tr
--- symbols/tr	22 Mar 2006 23:02:42 -0000	1.10
+++ symbols/tr	14 Jul 2007 06:19:19 -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: symbols/tu
===================================================================
RCS file: symbols/tu
diff -N symbols/tu
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ symbols/tu	14 Jul 2007 06:19:19 -0000
@@ -0,0 +1,172 @@
+// based on a keyboard map from an 'xkb/symbols/ur' file
+// Contact: Miles Grimshaw
+// E-mail : miles_grimshaw at bbns.org
+// $XFree86$
+// olpc mods
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+   name[Group1]= "Turkish";
+
+// 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 ?
+//
+
+
+   key <TLDE> {  [                ,                      ]     };
+   key <AE01> {  [     0x1000031  ,       0x1000021      ]     };//ASCII Digit One, Exclamation Mark
+   key <AE02> {  [     0x1000032  ,       0x1000022      ,    0x10000B2      ]     };//ASCII Digit Two, Quotation Mark, Subscript Two
+   key <AE03> {  [     0x1000033  ,       0x100005E      ,    0x1000023      ]     };//ASCII Digit Three, Circumflex Accent, Number Sign
+   key <AE04> {  [     0x1000034  ,       0x1000024      ,    0x10000BC      ]     };//ASCII Digit Four, Dollar Sign, Vulgar Fraction One Quarter
+   key <AE05> {  [     0x1000035  ,       0x1000025      ,    0x10000BD      ]     };//ASCII Digit Five, Percent Sign, Vulgar Fraction One Half
+   key <AE06> {  [     0x1000036  ,       0x1000026      ,    0x10000BE      ]     };//ASCII Digit Six, Ampersand, Vulgar Fraction Three Quarters
+   key <AE07> {  [     0x1000037  ,       0x1000027      ,    0x100007B      ]     };//ASCII Digit Seven, Apostrophe, Left Curly Bracket
+   key <AE08> {  [     0x1000038  ,       0x1000028      ,    0x100005B      ]     };//ASCII Digit Eight, Left Parenthesis, Left Square Bracket
+   key <AE09> {  [     0x1000039  ,       0x1000029      ,    0x100005D      ]     };//ASCII Digit Nine, Right Parenthesis, Right Square Bracket
+   key <AE10> {  [     0x1000030  ,       0x100003D      ,    0x100007D      ]     };//ASCII Digit Zero, Equals Sign, Right Curly Bracket
+   key <AE11> {  [     0x100002F  ,       0x100003F      ,    0x100005C      ]     };
+   key <AE12> {  [     0x100002D  ,       0x100005F      ,    0x100007C      ]     };
+
+   key <AD01> {  [     0x1000046  ,                      ,    0x1000040      ]     };
+   key <AD02> {  [     0x1000047  ,                      ,                   ]     };
+   key <AD03> {  [     0x10001E6  ,                      ,                   ]     };//Latin Capital letter G With Caron
+   key <AD04> {  [     0x1000049  ,                      ,                   ]     };
+   key <AD05> {  [     0x100004F  ,                      ,                   ]     };
+   key <AD06> {  [     0x1000044  ,                      ,                   ]     };
+   key <AD07> {  [     0x1000052  ,                      ,                   ]     };R
+   key <AD08> {  [     0x100004E  ,                      ,                   ]     };
+   key <AD09> {  [     0x1000048  ,                      ,                   ]     };
+   key <AD10> {  [     0x1000050  ,                      ,    0x10000A3      ]     };//Latin Capital letter P,Pound Sign 
+   key <AD11> {  [     0x1000051  ,                      ,    0x10000A8      ]     };//Latin Capital Letter Q, Diaresis
+   key <AD12> {  [     0x1000057  ,                      ,    0x100007E      ]     };//Latin Capital Letter W, Tilde
+
+   key <AC01> {  [     0x100005   ,                      ,                   ]     };
+   key <AC02> {  [     0x1000130  ,                      ,                   ]     };//Latin Capital Letter I with dot Above
+   key <AC03> {  [     0x1000045  ,                      ,                   ]     };
+   key <AC04> {  [     0x1000041  ,                      ,                   ]     };
+   key <AC05> {  [     0x10000DC  ,                      ,                   ]     };//Latin Capital letter U With Diaresis
+   key <AC06> {  [     0x1000054  ,                      ,                   ]     };
+   key <AC07> {  [     0x100004B  ,                      ,                   ]     };
+   key <AC08> {  [     0x100004D  ,                      ,                   ]     };
+   key <AC09> {  [     0x100004C  ,                      ,                   ]     };
+   key <AC10> {  [     0x1000059  ,                      ,                   ]     };
+   key <AC11> {  [     0x100015E  ,                      ,                   ]     };//Latin Capital Letter S with Cedilla
+   key <BKSL> {  [     0x1000058 ,                       ,   0x1000060      ]     };//Grave Accent
+
+   key <LSGT> {  [            bar ,       brokenbar      ,                  ]     };
+   key <AB01> {  [     0x100004A  ,                      ,                  ]     };
+   key <AB02> {  [     0x10000D6  ,                      ,                  ]     };//Latin Capital Letter O With Diaresis
+   key <AB03> {  [     0x1000056  ,                      ,                  ]     };
+   key <AB04> {  [     0x1000043  ,                      ,                  ]     };
+   key <AB05> {  [     0x10000C7  ,                      ,                  ]     };//Latin Capital Letter C With Cedilla
+   key <AB06> {  [     0x100005A  ,                      ,                  ]     };
+   key <AB07> {  [     0x1000053  ,                      ,   0x10003BC      ]     };//S, Greek Small Letter MU
+   key <AB08> {  [     0x1000042  ,                      ,                  ]     };
+   key <AB09> {  [     0x100002E  ,       0x100003A      ,                  ]     };
+   key <AB10> {  [     0x100002C  ,       0x100003B      ,                  ]     };
+
+   // End alphanumeric section
+};
+
+partial alphanumeric_keys
+xkb_symbols "qwerty" {
+   include "pc/ar(basic)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "azerty" {
+   include "pc/ar(basic)"
+
+   // the north african arabic keyboard differs from the middle east one
+   // by the numeric row; it follows French keyboard style
+   //
+   // PROBLEM: some chars are inaccessible: ! @ # $ % ^ *
+   // should they go elsewhere? replace " ' that are now in double ?
+   // also, dead_circumflex and dead_diaeresis from French keyboard
+   // as well as ugrave are missing, which questions the utility of the
+   // other accentuated latin letters. Maybe this is useful only with
+   // a French keyboard in Group1 ? Then, shouldn't Group1 be filled ?
+
+   key <AE01> {  [       ampersand,               1      ]       };
+   key <AE02> {  [          eacute,               2      ]       };
+   key <AE03> {  [        quotedbl,               3      ]       };
+   key <AE04> {  [      apostrophe,               4      ]       };
+   key <AE05> {  [       parenleft,               5      ]       };
+   key <AE06> {  [           minus,               6      ]       };
+   key <AE07> {  [          egrave,               7      ]       };
+   key <AE08> {  [      underscore,               8      ]       };
+   key <AE09> {  [        ccedilla,               9      ]       };
+   key <AE10> {  [          agrave,               0      ]       };
+   key <AE11> {  [      parenright,          degree      ]       };
+};
+
+
+partial alphanumeric_keys
+xkb_symbols "digits" {
+   include "pc/ar(basic)"
+
+   // use arabic script digits
+
+   key <AE01> {  [       0x1000661,          exclam      ]       };
+   key <AE02> {  [       0x1000662,              at      ]       };
+   key <AE03> {  [       0x1000663,      numbersign      ]       };
+   key <AE04> {  [       0x1000664,          dollar      ]       };
+   key <AE05> {  [       0x1000665,         percent      ]       };
+   key <AE06> {  [       0x1000666,     asciicircum      ]       };
+   key <AE07> {  [       0x1000667,       ampersand      ]       };
+   key <AE08> {  [       0x1000668,        asterisk      ]       };
+   key <AE09> {  [       0x1000669,       parenleft      ]       };
+   key <AE10> {  [       0x1000660,      parenright      ]       };
+};
+
+partial alphanumeric_keys
+xkb_symbols "qwerty_digits" {
+   include "pc/ar(digits)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "azerty_digits" {
+   include "pc/ar(azerty)"
+      key <AE01> {  [       ampersand,       0x1000661      ]       };
+   key <AE02> {  [          eacute,       0x1000662      ]       };
+   key <AE03> {  [        quotedbl,       0x1000663      ]       };
+   key <AE04> {  [      apostrophe,       0x1000664      ]       };
+   key <AE05> {  [       parenleft,       0x1000665      ]       };
+   key <AE06> {  [           minus,       0x1000666      ]       };
+   key <AE07> {  [          egrave,       0x1000667      ]       };
+   key <AE08> {  [      underscore,       0x1000668      ]       };
+   key <AE09> {  [        ccedilla,       0x1000669      ]       };
+   key <AE10> {  [          agrave,       0x1000660      ]       };
+};
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+  name[Group1]= "Turkish OLPC"; 
+
+   include "tu(basic)"
+
+   key <AE02> {  [     0x10006F2  ,       0x1000600      ]     };
+   key <AE05> {  [     0x10006F5  ,       0x100060F      ]     };
+   key <AE06> {  [     0x10006F6  ,       0x1000610      ]     };
+ 
+   key <AD01> {  [     0x1000642  ,       0x10006E1      ]     };
+   key <AD02> {  [     0x1000648  ,       0x100FDFA      ]     };
+   key <AD03> {  [     0x1000639  ,       0x1000611      ]     };
+   key <AD11> {  [     0x100005D  ,       0x1000603      ]     };
+   key <AD12> {  [     0x100005B  ,       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: symbols/ur
===================================================================
RCS file: symbols/ur
diff -N symbols/ur
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ symbols/ur	14 Jul 2007 06:19:19 -0000
@@ -0,0 +1,171 @@
+// based on a keyboard map from an 'xkb/symbols/ur' file
+// Contact: Nadir Durrani
+// E-mail : aquadurrani at hotmail.com
+// $
+// olpc mods
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+   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 ?
+//
+
+   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 "qwerty" {
+   include "pc/ar(basic)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "azerty" {
+   include "pc/ar(basic)"
+
+   // the north african arabic keyboard differs from the middle east one
+   // by the numeric row; it follows French keyboard style
+   //
+   // PROBLEM: some chars are inaccessible: ! @ # $ % ^ *
+   // should they go elsewhere? replace " ' that are now in double ?
+   // also, dead_circumflex and dead_diaeresis from French keyboard
+   // as well as ugrave are missing, which questions the utility of the
+   // other accentuated latin letters. Maybe this is useful only with
+   // a French keyboard in Group1 ? Then, shouldn't Group1 be filled ?
+
+   key <AE01> {  [       ampersand,               1      ]       };
+   key <AE02> {  [          eacute,               2      ]       };
+   key <AE03> {  [        quotedbl,               3      ]       };
+   key <AE04> {  [      apostrophe,               4      ]       };
+   key <AE05> {  [       parenleft,               5      ]       };
+   key <AE06> {  [           minus,               6      ]       };
+   key <AE07> {  [          egrave,               7      ]       };
+   key <AE08> {  [      underscore,               8      ]       };
+   key <AE09> {  [        ccedilla,               9      ]       };
+   key <AE10> {  [          agrave,               0      ]       };
+   key <AE11> {  [      parenright,          degree      ]       };
+};
+
+
+partial alphanumeric_keys
+xkb_symbols "digits" {
+   include "pc/ar(basic)"
+
+   // use arabic script digits
+
+   key <AE01> {  [       0x1000661,          exclam      ]       };
+   key <AE02> {  [       0x1000662,              at      ]       };
+   key <AE03> {  [       0x1000663,      numbersign      ]       };
+   key <AE04> {  [       0x1000664,          dollar      ]       };
+   key <AE05> {  [       0x1000665,         percent      ]       };
+   key <AE06> {  [       0x1000666,     asciicircum      ]       };
+   key <AE07> {  [       0x1000667,       ampersand      ]       };
+   key <AE08> {  [       0x1000668,        asterisk      ]       };
+   key <AE09> {  [       0x1000669,       parenleft      ]       };
+   key <AE10> {  [       0x1000660,      parenright      ]       };
+};
+
+partial alphanumeric_keys
+xkb_symbols "qwerty_digits" {
+   include "pc/ar(digits)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "azerty_digits" {
+   include "pc/ar(azerty)"
+      key <AE01> {  [       ampersand,       0x1000661      ]       };
+   key <AE02> {  [          eacute,       0x1000662      ]       };
+   key <AE03> {  [        quotedbl,       0x1000663      ]       };
+   key <AE04> {  [      apostrophe,       0x1000664      ]       };
+   key <AE05> {  [       parenleft,       0x1000665      ]       };
+   key <AE06> {  [           minus,       0x1000666      ]       };
+   key <AE07> {  [          egrave,       0x1000667      ]       };
+   key <AE08> {  [      underscore,       0x1000668      ]       };
+   key <AE09> {  [        ccedilla,       0x1000669      ]       };
+   key <AE10> {  [          agrave,       0x1000660      ]       };
+};
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+  name[Group1]= "Arabic OLPC-Urdu"; 
+
+   include "ur(basic)"
+
+   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: symbols/us
===================================================================
RCS file: /cvs/xlibs/xkbdesc/xkeyboard-config/symbols/us,v
retrieving revision 1.30
diff -u -p -u -p -r1.30 us
--- symbols/us	29 Jun 2007 21:32:16 -0000	1.30
+++ symbols/us	14 Jul 2007 06:19:19 -0000
@@ -577,3 +577,58 @@ xkb_symbols "colemak" {
     include "level3(ralt_switch)"
 };
 
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+    name[Group1]= "U.S. English - OLPC International";
+
+    include "us(basic)"
+
+    // 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.jpg
+
+
+    key <TLDE> { [     grave, asciitilde,    dead_grave,       dead_tilde ] };
+    key <AE01> { [	   1,     exclam,    exclamdown,       exclamdown ] };
+    key <AE02> { [         2,         at,  questiondown,     questiondown ] };
+    key <AE03> { [	   3, numbersign,       section,          section ] };
+    key <AE04> { [	   4,     dollar,      sterling,         sterling ] };
+    key <AE05> { [	   5,    percent,      EuroSign,         EuroSign ] };
+    key <AE06> { [         6,asciicircum,       notsign,          notsign ] };
+    key <AE07> { [         7,  ampersand,     0x1000325,        0x1000325 ] };
+    key <AE08> { [         8,   asterisk,     0x1000324,        0x1000324 ] };
+    key <AE09> { [         9,  parenleft,     0x1000320,        0x1000320 ] };
+    key <AE10> { [         0, parenright,     0x1000327,        0x1000327 ] };
+    key <AE11> { [     minus, underscore,     0x1000323,        0x1000323 ] };
+    key <AE12> { [     equal,       plus,     0x1000330,        0x1000330 ] };
+
+
+    key <AD03> { [         e,          E,           oe,               OE ] };
+    key <AD09> { [         o,          O,       oslash,           Oslash ] };
+    key <AD10> { [         p,          P,    0x100030A,        0x100030A ] };
+    key <AD11> { [ bracketleft,  braceleft,  0x1000300,        0x1000300 ] };
+    key <AD12> { [bracketright, braceright,  0x1000301,        0x1000301 ] };
+
+    key <AC01>	{ [         a,          A,          ae,               AE ] };
+    key <AC02>	{ [         s,          S,      ssharp,           ssharp ] };
+    key <AC03>	{ [         d,          D,         eth,              ETH ] };
+    key <AC10>  { [ semicolon,	    colon,   0x1000303,        0x1000303 ] };
+    key <AC11>  { [ apostrophe,	 quotedbl,   0x1000302,        0x1000302 ] };
+    key <BKSL>  { [ backslash,        bar,   0x100030C,        0x100030C ] };
+
+    key <AB03>	{ [         c,          C,    ccedilla,         Ccedilla ] };
+    key <AB06>  { [         n,          N,      ntilde,           Ntilde ] };
+    key <AB08>  { [     comma,       less,   0x1000307,        0x1000307 ] };
+    key <AB09>  { [    period,    greater,   0x1000308,        0x1000308 ] };
+    key <AB10>  { [     slash,   question,   0x1000304,        0x1000304 ] };
+
+    key <I219>	{ [  multiply,   division, ISO_Next_Group, ISO_Prev_Group ] };
+
+    include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "olpc2" {
+    include "us(olpc)"
+    key <I219>	{ [ ISO_Next_Group, ISO_Prev_Group ] };
+};

-- 
   // Bernardo Innocenti
 \X/  http://www.codewiz.org/




More information about the xorg mailing list