Sophie

Sophie

distrib > Mageia > 7 > i586 > media > core-updates-src > by-pkgid > 00014e80fe3d778e79cf2a4cd67622a8 > files > 5

xkeyboard-config-2.26-2.1.mga7.src.rpm

From 1ce0950df3ae280f69298f4db9c5f9f599491429 Mon Sep 17 00:00:00 2001
From: unknown author <cooker@mandrivalinux.org>
Date: Thu, 4 Jun 2009 16:17:41 -0300
Subject: [PATCH 3/6] xkbdata-1.0.1-newkbd.patch

---
 symbols/Makefile.am |   14 ++--
 symbols/am          |   56 +++++++++++++++
 symbols/chr         |   65 ++++++++++++++++++
 symbols/epo         |   59 ++++++++++++++++
 symbols/kur         |   61 +++++++++++++++++
 symbols/lt          |   46 +++++++++++++
 symbols/ng          |  185 ++++++++++++++++++++++++---------------------------
 symbols/snd         |  101 ++++++++++++++++++++++++++++
 symbols/tifinagh    |  177 ++++++++++++++++++++++++++++++++++++++++++++++++
 symbols/tm          |   90 +++++++++++++++----------
 symbols/urd         |  110 ++++++++++++++++++++++++++++++
 11 files changed, 822 insertions(+), 142 deletions(-)
 create mode 100644 symbols/chr
 create mode 100644 symbols/kur
 create mode 100644 symbols/snd
 create mode 100644 symbols/tifinagh
 create mode 100644 symbols/urd

diff --git a/symbols/Makefile.am b/symbols/Makefile.am
index d033a15..1af379a 100644
--- a/symbols/Makefile.am
+++ b/symbols/Makefile.am
@@ -8,7 +8,7 @@ be bd \
 bg br ba \
 bt by brai \
 ca cd \
-ch cn cz \
+ch chr cn cz \
 de dk \
 ee es et epo \
 fi fo fr \
@@ -16,7 +16,8 @@ gb ge gh gn \
 gr hr hu \
 ie il in iq \
 ir is it jp \
-kg kh kr kz \
+kg kh kur \
+kr kz \
 la latam latin \
 lk lt lv \
 ma mao me mk \
@@ -24,12 +25,13 @@ mm mn mt mv \
 ng nl no np \
 pc pk pl pt \
 ro rs ru \
-se si sk sn \
-sy th \
+se si sk \
+sn snd sy \
+tifinagh th \
 terminate \
 tj tm tr \
-ua us uz vn \
-za \
+ua us urd \
+uz vn za \
 altwin capslock compose ctrl eurosign group inet \
 keypad kpdl level3 level5 nbsp olpc shift srvr_ctrl typo
 
diff --git a/symbols/am b/symbols/am
index 6fe8483..ad8069a 100644
--- a/symbols/am
+++ b/symbols/am
@@ -74,6 +74,62 @@ xkb_symbols "olpc" {
     include "group(olpc)"
 };
 
+xkb_symbols "old" {
+    include "am(basic)"
+	
+    key <BKSL> {	[ 0x1002026,  0x1000587 ]	};
+
+    key <AE01> {	[ 0x1000573,  0x1000543 ]	};
+    key <AE02> {	[ 0x100057b,  0x100054b ]	};
+    key <AE03> {	[ 0x100056a,  0x100053a ]	};
+    key <AE04> {	[ 0x1000571,  0x1000541 ]	};
+    key <AE05> {	[ 0x1000575,  0x1000545 ]	};
+    key <AE06> {	[ 0x100057c,  0x100054c ]	};
+    key <AE07> {	[ 0x1000580,  0x1000550 ]	};
+    key <AE08> {	[ 0x1000581,  0x1000551 ]	};
+    key <AE09> {	[ 0x1000567,  0x1000537 ]	};
+    key <AE10> {	[ 0x1000572,  0x1000542 ]	};
+    key <AE11> {	[ 0x1002013,  0x1002014 ]	};
+    key <AE12> {	[ parenleft,  parenright]	};
+	
+    key <AD01> {	[ 0x1000583,  0x1000553 ]	};
+    key <AD02> {	[ 0x1000562,  0x1000532 ]	};
+    key <AD03> {	[ 0x100057d,  0x100054d ]	};
+    key <AD04> {	[ 0x1000574,  0x1000544 ]	};
+    key <AD05> {	[ 0x1000578,  0x1000548 ]	};
+    key <AD06> {	[ 0x1000582,  0x1000552 ]	};
+    key <AD07> {	[ 0x100056f,  0x100053f ]	};
+    key <AD08> {	[ 0x1000568,  0x1000538 ]	};
+    key <AD09> {	[ 0x1000569,  0x1000539 ]	};
+    key <AD10> {	[ 0x100056e,  0x100053e ]	};
+    key <AD11> {	[ 0x1000585,  0x1000555 ]	};
+    key <AD12> {	[ 0x1000586,  0x1000556 ]	};
+
+    key <AC01> {	[ 0x100057e,  0x100054e ]	};
+    key <AC02> {	[ 0x1000563,  0x1000533 ]	};
+    key <AC03> {	[ 0x1000565,  0x1000535 ]	};
+    key <AC04> {	[ 0x1000561,  0x1000531 ]	};
+    key <AC05> {	[ 0x1000576,  0x1000546 ]	};
+    key <AC06> {	[ 0x100056b,  0x100053b ]	};
+    key <AC07> {	[ 0x100057f,  0x100054f ]	};
+    key <AC08> {	[ 0x1000570,  0x1000540 ]	};
+    key <AC09> {	[ 0x100057a,  0x100054a ]	};
+    key <AC10> {	[ 0x1000589,  0x100058a ]	};
+    key <AC11> {	[ 0x100055b,  0x10002bc ]	};
+
+    key <AB01> {	[ 0x1000564,  0x1000534 ]	};
+    key <AB02> {	[ 0x1000579,  0x1000549 ]	};
+    key <AB03> {	[ 0x1000566,  0x1000536 ]	};
+    key <AB04> {	[ 0x100056c,  0x100053c ]	};
+    key <AB05> {	[ 0x1000584,  0x1000554 ]	};
+    key <AB06> {	[ 0x100056d,  0x100053d ]	};
+    key <AB07> {	[ 0x1000577,  0x1000547 ]	};
+    key <AB08> {	[ comma,      guillemotleft ]	};
+    key <AB09> {	[ period,     guillemotright ]	};
+    key <AB10> {	[ 0x100055e,  0x100055e ]	};
+
+};
+
 xkb_symbols "phonetic" {
     include "am(basic)"
     name[Group1]= "Armenia - Phonetic";
diff --git a/symbols/chr b/symbols/chr
new file mode 100644
index 0000000..463cdef
--- /dev/null
+++ b/symbols/chr
@@ -0,0 +1,65 @@
+
+// Cherokee keyboard for X11
+//
+// source: http://www.cherokee.org/Extras/Downloads/Font/Keyboard.htm
+
+partial default alphanumeric_keys 
+xkb_symbols "basic" {
+
+    name[Group1]= "Cherokee";
+
+	key <TLDE> { [      grave, 0x010013ca	]	};
+	key <AE01> { [  semicolon, 0x010013b1	]	};
+	key <AE02> { [     exclam, 0x010013c7	]	};
+	key <AE03> { [   question, 0x010013e7	]	};
+	key <AE04> { [ 0x010013d9, 0x010013b0	]	};
+	key <AE05> { [ 0x010013e6, 0x010013b9	]	};
+	key <AE06> { [ 0x010013dc, 0x010013dd	]	};
+	key <AE07> { [ 0x010013cb, 0x010013e1	]	};
+	key <AE08> { [ 0x010013d6, 0x010013ba	]	};
+	key <AE09> { [ 0x010013d2, parenleft	]	};
+	key <AE10> { [ 0x010013c4, parenright	]	};
+	key <AE11> { [ 0x010013bf, 0x010013bc	]	};
+	key <AE12> { [ 0x010013f3, 0x010013bd	]	};
+
+	key <AD01> { [ 0x010013aa, 0x010013c6	]	};
+	key <AD02> { [ 0x010013b3, 0x010013eb	]	};
+	key <AD03> { [ 0x010013a1, 0x010013e3	]	};
+	key <AD04> { [ 0x010013db, 0x010013cf	]	};
+	key <AD05> { [ 0x010013d4, 0x010013d8	]	};
+	key <AD06> { [ 0x010013ef, 0x010013f2	]	};
+	key <AD07> { [ 0x010013a4, 0x010013ad	]	};
+	key <AD08> { [ 0x010013a2, 0x010013f1	]	};
+	key <AD09> { [ 0x010013a3, 0x010013ec	]	};
+	key <AD10> { [ 0x010013c1, 0x010013ea	]	};
+	key <AD11> { [ 0x010013d5, 0x010013d1	]	};
+	key <AD12> { [ 0x010013b6, 0x010013e4	]	};
+	key <BKSL> { [ 0x010013e9, 0x010013ee	]	};
+
+	key <AC01> { [ 0x010013a0, 0x010013cc	]	};
+	key <AC02> { [ 0x010013cd, 0x010013ce	]	};
+	key <AC03> { [ 0x010013d7, 0x010013d0	]	};
+	key <AC04> { [ 0x010013a9, 0x010013c8	]	};
+	key <AC05> { [ 0x010013a6, 0x010013e5	]	};
+	key <AC06> { [ 0x010013af, 0x010013b2	]	};
+	key <AC07> { [ 0x010013da, 0x010013ab	]	};
+	key <AC08> { [ 0x010013b8, 0x010013a7	]	};
+	key <AC09> { [ 0x010013b5, 0x010013ae	]	};
+	key <AC10> { [ 0x010013e8, 0x010013e0	]	};
+	key <AC11> { [ apostrophe, quotedbl     ]	};
+
+	key <AB01> { [ 0x010013ac, 0x010013c3	]	};
+	key <AB02> { [ 0x010013f4, 0x010013ed	]	};
+	key <AB03> { [ 0x010013d3, 0x010013df	]	};
+	key <AB04> { [ 0x010013a5, 0x010013de	]	};
+	key <AB05> { [ 0x010013a8, 0x010013f0	]	};
+	key <AB06> { [ 0x010013be, 0x010013bb	]	};
+	key <AB07> { [ 0x010013c5, 0x010013b7	]	};
+	key <AB08> { [ comma,      0x010013e2	]	};
+	key <AB09> { [ period,     0x010013b4	]	};
+	key <AB10> { [ 0x010013c2, 0x010013c9	]	};
+
+	key <LSGT> { [ less,       greater	]	};
+
+// End alphanumeric section
+};
diff --git a/symbols/epo b/symbols/epo
index c9b2d57..745893e 100644
--- a/symbols/epo
+++ b/symbols/epo
@@ -139,3 +139,62 @@ xkb_symbols "dvorak" {
     key <AC10> { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] };
     key <AC04> { [ NoSymbol, NoSymbol,      ubreve,      Ubreve ] };
 };
+
+partial alphanumeric_keys
+xkb_symbols "dvorak" {
+    include "us(dvorak)"
+
+    name[Group1]= "Esperanto - Dvorak";
+
+    // Alphanumeric section
+    key.type[Group1] = "FOUR_LEVEL";
+
+    key <TLDE> { [ bracketleft,	braceleft, bracketright, braceright	] };
+
+    key <AE01> { [	    1,	exclam, numbersign	]	};
+    key <AE02> { [	    2,	quotedbl, twosuperior 	]	};
+    key <AE03> { [	    3,	sterling, threesuperior	]	};
+    key <AE04> { [	    4,	dollar, EuroSign	]	};
+    key <AE06> { [	    6,	asciicircum	]	};
+    key <AE07> { [	    7,	ampersand, dead_circumflex	]	};
+    key <AE08> { [	    8,	asterisk, dead_abovering	]	};
+    key <AE09> { [	    9,	parenleft,  dead_tilde		]	};
+    key <AE10> { [	    0,	parenright, dead_diaeresis	]	};
+    key <AE11> { [	minus,	underscore, dead_grave	]	};
+    key <AE12> { [      equal,  plus,       dead_acute	]	};
+
+    key <AD01> { [  apostrophe,	at, dead_acute, dead_diaeresis	] };
+    key <AD05> { [	    b,	B		]	};
+    key <AD07> { [	    v,	V		]	};
+    key <AD08> { [	    d,	D		]	};
+    key <AD09> { [	    g,	G		]	};
+    key <AD10> { [	    h,	H, hcircumflex, Hcircumflex	] };
+    key <AD11> { [	slash,	question, asciitilde ]	};
+    key <AD12> { [	    y,	Y, x, X		]	};
+
+    key <AC01> { [	    r,	R 		]	};
+    key <AC02> { [	    i,	I		]	};
+    key <AC03> { [	    a,	A		]	};
+    key <AC04> { [	    o,	O		]	};
+    key <AC05> { [	    k,	K		]	};
+    key <AC06> { [	    j,	J		]	};
+    key <AC07> { [	    e,	E		]	};
+    key <AC08> { [	    n,	N		]	};
+    key <AC09> { [	    t,	T		]	};
+    key <AC10> { [	    l,	L		]	};
+    key <AC11> { [ gcircumflex,	Gcircumflex	]	};
+    key <BKSL> { [	    w,	W, q, Q		] };
+
+    key <LSGT> { [  backslash, bar ] };
+    key <AB02> { [ scircumflex,	Scircumflex	]	};
+    key <AB03> { [	    s,	S		]	};
+    key <AB04> { [	    c,	C		]	};
+    key <AB05> { [ ccircumflex,	Ccircumflex	]	};
+    key <AB06> { [	    m,	M, mu		]	};
+    key <AB07> { [	    u,	U		]	};
+    key <AB08> { [ jcircumflex,	Jcircumflex	]	};
+    key <AB09> { [     ubreve,	Ubreve		]	};
+    key <AB10> { [	    z,	Z		]	};
+};
+
+
diff --git a/symbols/kur b/symbols/kur
new file mode 100644
index 0000000..1462f23
--- /dev/null
+++ b/symbols/kur
@@ -0,0 +1,61 @@
+
+// Kuridsh (arabic script) keyboard
+//
+
+partial default alphanumeric_keys 
+xkb_symbols "basic" {
+    name[Group1]= "Kurdish";
+
+    key <AE01> {  [       0x1000661,          exclam      ]     };
+    key <AE02> {  [       0x1000662,   guillemotleft      ]     };
+    key <AE03> {  [       0x1000663,  guillemotright      ]     };
+    key <AE04> {  [       0x1000664,  Arabic_tatweel      ]     };
+    key <AE05> {  [       0x1000665,       0x100066a      ]     };
+    key <AE06> {  [       0x1000666,       0x100066b      ]     };
+    key <AE07> {  [       0x1000667,           minus      ]     };
+    key <AE08> {  [       0x1000668,           equal      ]     };
+    key <AE09> {  [       0x1000669,       parenleft      ]     };
+    key <AE10> {  [       0x1000660,      parenright      ]     };
+    key <AE11> {  [       0x10006b5,       braceleft      ]     };
+    key <AE12> {  [       0x1000695,      braceright      ]     };
+
+    key <AD01> {  [      Arabic_qaf,     0x100201c        ]     };
+    key <AD02> {  [       0x10006ca,     slash            ]     };
+    key <AD03> {  [       0x10006d5,     0x100fc9b        ]     }; // 0626+06d5
+    key <AD04> {  [       Arabic_ra,     0x1000692        ]     };
+    key <AD05> {  [      Arabic_teh,     0x100201d        ]     };
+    key <AD06> {  [       0x10006cc,     Arabic_yeh       ]     };
+    key <AD07> {  [      Arabic_waw,     0x100fbc0        ]     }; // 0626+0648
+    key <AD08> {  [    Arabic_damma,     0x100fbc1        ]     }; // 06cc+0621
+    key <AD09> {  [       0x10006c6,     0x100fbf2        ]     }; // 0626+06c6
+    key <AD10> {  [       0x100067e,     0x1002018        ]     };
+    key <AD11> {  [      Arabic_hah,     0x1002019        ]     };
+    key <AD12> {  [    Arabic_ghain,     Arabic_ain       ]     };
+
+    key <AC01> {  [     Arabic_alef,     0x100fbea        ]     }; // 0626+0627
+    key <AC02> {  [     Arabic_seen,     Arabic_dammatan  ]     };
+    key <AC03> {  [      Arabic_dal,     bracketleft      ]     };
+    key <AC04> {  [      Arabic_feh,     bracketright     ]     };
+    key <AC05> {  [       0x10006af,     Arabic_kasratan  ]     };
+    key <AC06> {  [      Arabic_heh                       ]     }; // ?
+    key <AC07> {  [       0x1000698                       ]     };
+    key <AC08> {  [      Arabic_kaf                       ]     };
+    key <AC09> {  [      Arabic_lam,     0x100fefb        ]     };
+    key <AC10> {  [       0x10006ce,     0x100fbc4        ]     }; // 0626+06ce
+    key <AC11> {  [      Arabic_yeh,    Arabic_hamzaonyeh ]     };
+    key <BKSL> {  [       0x100fbc2,     0x100fbc3        ]     }; // 0648+0648, 0626+0648+0648
+
+    key <AB01> {  [     Arabic_zain,     Arabic_sukun     ]     };
+    key <AB02> {  [     Arabic_khah,     Arabic_kasra     ]     };
+    key <AB03> {  [     Arabic_jeem,     Arabic_shadda    ]     };
+    key <AB04> {  [       0x10006cb,     0x10006a8        ]     }; // ?
+    key <AB05> {  [      Arabic_beh                       ]     };
+    key <AB06> {  [     Arabic_noon,     Arabic_fathatan  ]     };
+    key <AB07> {  [     Arabic_meem,     Arabic_fatha     ]     };
+    key <AB08> {  [    Arabic_comma,     period           ]     };
+    key <AB09> {  [       0x1000686,     Arabic_semicolon ]     };
+    key <AB10> {  [    Arabic_sheen, Arabic_question_mark ]     };
+
+    // End alphanumeric section
+};
+
diff --git a/symbols/lt b/symbols/lt
index d535da7..e482160 100644
--- a/symbols/lt
+++ b/symbols/lt
@@ -318,3 +318,49 @@ xkb_symbols "balticplus" {
     include "level3(ralt_switch)"
 };
 
+partial alphanumeric_keys modifier_keys
+xkb_symbols "lt_a" {
+
+    include "lt(std)"
+
+    key <AE02> {[	quotedbl,		2,		at	]};
+    key <AE05> {[	colon,		5,		percent		]};
+    key <AE08> {[	question,		8,		asterisk	]};
+    key <AE11> {[	underscore,	minus	]};
+    key <AE12> {[	plus, equal		]};
+    key	<AD01> {[	aogonek,	Aogonek, q, Q		]};
+    key	<AD02> {[	zcaron,		Zcaron, w, W		]};
+    key	<AD11> {[	iogonek,	Iogonek,	braceleft	]};
+    key	<AD12> {[	leftdoublequotemark, doublelowquotemark,	braceright	]};
+    key	<AC04> {[	f,		F		]};
+    key <AC10> {[	uogonek,	Uogonek, semicolon, colon		]};
+    key <AC11> {[	eabovedot,	Eabovedot,	apostrophe, quotedbl	]};
+    key	<AB02> {[	umacron,	Umacron,	x, X		]};
+    key	<AB08> {[	ccaron,		Ccaron,		comma, less  ]};
+    key	<AB09> {[	scaron,		Scaron,		period, greater ]};
+    key	<AB10> {[	eogonek,	Eogonek,	slash, question	]};
+    key <BKSL> {[	backslash,	bar		]};
+
+};
+
+partial alphanumeric_keys modifier_keys
+xkb_symbols "phonetic" {
+
+    include "us"
+
+    key <LatQ> { [ q, Q, umacron, Umacron ] };
+    key <LatW> { [ w, W, eabovedot, Eabovedot ] };
+    key <LatE> { [ e, E, eogonek, Eogonek ] };
+    key <LatU> { [ u, U, uogonek, Uogonek ] };
+    key <LatI> { [ i, I, iogonek, Iogonek ] };
+    key <LatA> { [ a, A, aogonek, Aogonek ] };
+    key <LatS> { [ s, S, scaron, Scaron ] };
+    key <AC11> { [ quoteright, qotedbl, leftdoublequotemark, doublelowquotemark
+]};
+    key <LatZ> { [ z, Z, zcaron, Zcaron ] };
+    key <LatC> { [ c, C, ccaron, Ccaron ] };
+    key <LSGT> { [ less, EuroSign, endash ] };
+
+};
+
+
diff --git a/symbols/ng b/symbols/ng
index 8c3567b..64f02b9 100644
--- a/symbols/ng
+++ b/symbols/ng
@@ -1,117 +1,104 @@
-// $XKeyboardConfig$
-//
-
-partial default alphanumeric_keys  
+#
+# Nigerian keyboard
+# - in default "basic" layout, the diacritics are unicode modifiers,
+#   that is, they have to be typed _after_ the letter they modify
+# - you can use "deadkey" layout if you want dead keys, that is, to
+#   type the diacritics _before_ the letter they modify; note however
+#   that diacritics that go below the letter don't have dead keys defined
+#   on X11 (with the exception of cedilla, ogonek (not used here)
+#   and belowdot)
+#
+
+partial default alphanumeric_keys
 xkb_symbols "basic" {
 
-    include "us"
+    include "us(basic)"
+
+    name[Group1]="Nigerian";
+
+    key <AE03> { [         3,  numbersign,  sterling ] };
+    key <AE04> { [         4,       U20a6,    dollar ] };
+    key <AE05> { [         5,     percent,  EuroSign ] };
+    key <AE08> { [         8,    asterisk,  U0324 ] }; // below diaeresis
+    key <AE09> { [         9,   parenleft,  U0323 ] }; // below dot
+    key <AE10> { [         0,  parenright,  U0331 ] }; // below macron
+    key <AE11> { [     minus,  underscore,  U0327 ] }; // cedilla ?
+    key <AE12> { [     equal,        plus,  U0330 ] }; // below tilde ?
+
+    key <AD03> { [ e, E, U1eb9, U1eb8 ] }; // ẹ
+    key <AD04> { [ r, R, U01dd, U018e ] }; // ǝ
+    key <AD06> { [ y, Y, U01b4, U01b3 ] }; // ƴ
+    key <AD07> { [ u, U, U1ee5, U1ee4 ] }; // ụ
+    key <AD08> { [ i, I, U1ecb, U1eca ] }; // ị
+    key <AD09> { [ o, O, U1ecd, U1ecc ] }; // ọ
+    key <AD11> { [  bracketleft,   braceleft, U0300 ] }; // grave
+    key <AD12> { [ bracketright,  braceright, U0301 ] }; // acute
+
+    key <AC02> { [ s, S, U1e63, U1e62 ] }; // ṣ
+    key <AC03> { [ d, D, U0257, U018a ] }; // ɗ
+    key <AC08> { [ k, K, U0199, U0198 ] }; // ƙ
+    key <AC09> { [ l, L, U0254, U0186 ] }; // ɔ
+    key <AC10> { [    semicolon,       colon, U0303 ] }; // tilde ?
+    key <AC11> { [   apostrophe,   quotedble, U0302 ] }; // circumflex
+    key <BKSL> { [    backslash,         bar, U030c ] }; // caron
+
+    key <AB02> { [ x, X, U1e0d, U1e0c ] }; // ḍ
+    key <AB05> { [ b, B, U0253, U0181 ] }; // ɓ
+    key <AB06> { [ n, N, U1e45, U1e44 ] }; // ṅ
+    key <AB07> { [ m, M, U014b, U014a ] }; // ŋ
+    key <AB08> { [        comma,        less, U0307 ] }; // above dot
+    key <AB09> { [       period,     greater, U0308 ] }; // diaeresis
+    key <AB10> { [        slash,    question, U0304 ] }; // macron
 
-    name[Group1]= "Nigeria";
-    key <AE04> { [          4, 0x010020A6,     dollar,       cent ] };
     include "level3(ralt_switch)"
 };
 
 partial alphanumeric_keys
-xkb_symbols "yoruba" {
-    include "ng(basic)"
+xkb_symbols "deadkeys" {
 
-    name[Group1]= "Nigeria - Yoruba";
-
-    key <AD01> { [ 0x01001EB9, 0x01001EB8,          q,          Q ] };
-    key <AB02> { [ 0x01001ECD, 0x01001ECC,          x,          X ] }; 
-    key <AB04> { [ 0x01001E63, 0x01001E62,          v,          V ] }; 
-};
-
-partial alphanumeric_keys
-xkb_symbols "igbo" {
     include "ng(basic)"
 
-    name[Group1]= "Nigeria - Igbo";
+    name[Group1]="Nigerian";
 
-    key <AD01> { [ 0x01001ECB, 0x01001ECA,          q,          Q ] };
-    key <AB02> { [ 0x01001E45, 0x01001E44,          x,          X ] }; 
-    key <AC10> { [ 0x01001EE5, 0x01001EE4,   semicolon,	    colon ] };
-    key <AD11> { [ 0x01001ECD, 0x01001ECC, bracketleft, braceleft ] };		 
-};
+    key <AE08> { [         8,    asterisk,  x ] }; // dead below diaeresis
+    key <AE09> { [         9,   parenleft, dead_belowdot ] }; // dead belowdot
+    key <AE10> { [         0,  parenright,  x ] }; // dead below macron
+    key <AE11> { [     minus,  underscore,  dead_cedilla ] }; // dead cedilla ?
+    key <AE12> { [     equal,        plus,  x ] }; // dead below tilde ?
 
-partial alphanumeric_keys
-xkb_symbols "hausa" {
-    include "ng(basic)"
+    key <AD11> { [  bracketleft,   braceleft, dead_grave ] };
+    key <AD12> { [ bracketright,  braceright, dead_acute ] };
+
+    key <AC10> { [    semicolon,       colon, dead_tilde ] }; // dead tilde ?
+    key <AC11> { [   apostrophe,   quotedble, dead_circumflex ] };
+    key <BKSL> { [    backslash,         bar, dead_caron ] };
 
-    name[Group1]= "Nigeria - Hausa";
-
-    key <AD01> { [ 0x01000071, 0x01000051,          q,          Q ] };
-    key <AD02> { [ udiaeresis, Udiaeresis,          w,          W ] };
-    key <AD03> { [          e,          E,   EuroSign,       cent ] };
-    key <AD11> { [ 0x010001B4, 0x010001B3,bracketleft,  braceleft ] };
-    key <AD12> { [     gcaron,     Gcaron,bracketright, braceright] };
-    key <AC03> { [ 0x01000257, 0x0100018A,         d,           D ] };
-    key <AC10> { [ 0x01000131, 0x01000130, semicolon,       colon ] };
-    key <AC11> { [ 0x010001DD, 0x0100018E,apostrophe,    quotedbl ] };
-    key <AB01> { [ 0x01000272, 0x0100019D,         z,           Z ] };
-    key <AB07> { [     ntilde,     Ntilde,         m,           M ] };
-    key <AB09> { [   ccedilla,   Ccedilla,    period,     greater ] };
-    key <AB10> { [   scedilla,   Scedilla,     slash,    question ] };
+    key <AB08> { [        comma,        less, dead_abovedot ] };
+    key <AB09> { [       period,     greater, dead_diaeresis ] };
+    key <AB10> { [        slash,    question, dead_macron ] };
 
 };
 
 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>  { [         h,          H,    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,    0x1001E37,        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, guillemotleft,   guillemotleft ] };
-   key <AB09>  { [    period, greater, guillemotright,  guillemotright ] };
-   key <AB10>  { [     slash,   question, questiondown,     questiondown ] };
-
-   key <I219>  { [  multiply,   division, ISO_Next_Group, ISO_Prev_Group ] };
-
-   include "level3(ralt_switch)"
+xkb_symbols "phonetic" {
+
+    name[Group1]="Nigerian";
+
+    key <TLDE> { [ dead_acute, dead_tilde      ]	};
+    key <LSGT> { [ dead_grave, dead_circumflex ]	};
+
+    key <LatB> { [ b, B, U0253, U0181 ] }; // ɓ
+    key <LatD> { [ d, D, U0257, U018a ] }; // ɗ
+    key <LatE> { [ e, E, U1eb9, U1eb8 ] }; // ẹ
+    key <LatI> { [ i, I, U1ecb, U1eca ] }; // ị
+    key <LatK> { [ k, K, U0199, U0198 ] }; // ƙ
+    key <LatN> { [ n, N, U1e45, U1e44 ] }; // ṅ
+    key <LatO> { [ o, O, U1ecd, U1ecc ] }; // ọ
+    key <LatS> { [ s, S, U1e63, U1e62 ] }; // ṣ
+    key <LatU> { [ u, U, U1ee5, U1ee4 ] }; // ụ
+    key <LatY> { [ y, Y, U01b4, U01b3 ] }; // ƴ
+ 
+    include "level3(ralt_switch)"
 };
+
+
diff --git a/symbols/snd b/symbols/snd
new file mode 100644
index 0000000..95ad394
--- /dev/null
+++ b/symbols/snd
@@ -0,0 +1,101 @@
+// Standard Pakistanese Sindhi layout keyboard (sd-PK)
+// XKB version by: Abdul Rahim Nizamani, on 14-Sep-2004, 3:20 pm
+
+// NOTE: some multi-character keys are actually sending unattributed
+// unicode values in the arabic presentation forms block; and Compose
+// file converts them; Compose file must have the following lines:
+//
+//<Ufbc4> : "ئێ"
+//<Ufbc5> : "ءِ"
+//<Ufbc6> : "ءَ"
+//<Ufbc7> : "ءُ"
+//<Ufbc8> : "ءٌ"
+//<Ufbc9> : "گھ"
+//<Ufbca> : "جھ"
+
+partial default alphanumeric_keys 
+xkb_symbols "basic" {
+    name[Group1]= "Sindhi";
+
+// Alphanumeric section
+
+//  key.type[Group1] = "FOUR_LEVEL_ALPHABETIC";
+
+    key <TLDE> {  [       0x1002019,       0x1002018, 0x1000653      ]       };
+    key <AE01> {  [               1,          exclam, 0x1000610      ]       };
+    key <AE02> {  [               2,       0x1000670, 0x1000611      ]       };
+    key <AE03> {  [               3,       0x100FBC5, 0x1000613      ]       };
+    key <AE04> {  [               4,       0x100FBC6, 0x1000612      ]       };
+    key <AE05> {  [               5,       0x100FBC7, 0x1002026      ]       };
+    key <AE06> {  [               6,       0x100FBC8, 0x1002022      ]       };
+    key <AE07> {  [               7,       0x10006FD, bracetleft     ]       };
+    key <AE08> {  [               8,        asterisk, bracetright    ]       };
+    key <AE09> {  [               9,       parenleft, bracketleft    ]       };
+    key <AE10> {  [               0,      parenright, bracketright   ]       };
+    key <AE11> {  [       0x100068F,       0x100005F, minus          ]       };
+    key <AE12> {  [       0x100068C,            plus, equal          ]       };
+
+    key <BKSL> {  [       0x100068D,       0x100067A, bar            ]       };
+
+    key <AD01> {  [       0x1000642,       0x100064E, 0x100064B      ]       };
+    key <AD02> {  [       0x1000635,       0x1000636, 0x100FDFA      ]       };
+    key <AD03> {  [       0x100064A,       0x1000650, 0x1000656      ]       };
+    key <AD04> {  [       0x1000631,       0x1000699, 0x100FDE6      ]       };
+    key <AD05> {  [       0x100062A,       0x100067D, 0x1000629      ]       };
+    key <AD06> {  [       0x100067F,       0x100062B, 0x100FDE5      ]       };
+    key <AD07> {  [       0x1000639,       0x100063A, 0x100FDE3      ]       };
+    key <AD08> {  [       0x10006B3,       0x10006BE, 0x100FDE4      ]       };
+    key <AD09> {  [       0x1000648,       0x100064F, 0x1000657      ]       };
+    key <AD10> {  [       0x100067E,       0x10006A6                 ]       };
+    key <AD11> {  [       0x1000687,       0x1000683                 ]       };
+    key <AD12> {  [       0x1000686,       0x1000684                 ]       };
+
+    key <AC01> {  [       0x1000627,       0x1000622, 0x1000649      ]       };
+    key <AC02> {  [       0x1000633,       0x1000634                 ]       };
+    key <AC03> {  [       0x100062F,       0x100068A                 ]       };
+// duplicate key 06a6?
+    key <AC04> {  [       0x1000641,       0x10006A6                 ]       };
+    key <AC05> {  [       0x10006AF,       0x100FBC9                 ]       };
+    key <AC06> {  [       0x1000647,       0x100062D, 0x10006C1      ]       };
+    key <AC07> {  [       0x100062C,       0x100FBCA, 0x100FDFB      ]       };
+    key <AC08> {  [       0x10006AA,       0x10006E1                 ]       };
+    key <AC09> {  [       0x1000644,       0x100003A                 ]       };
+    key <AC10> {  [       0x10006A9,       0x100061B                 ]       };
+    key <AC11> {  [       0x10006B1,       0x1000640                 ]       };
+
+    key <AB01> {  [       0x1000632,       0x1000630, 0x1000652      ]       };
+    key <AB02> {  [       0x100062E,       0x1000651, 0x100200C      ]       };
+    key <AB03> {  [       0x1000637,       0x1000638, 0x100200D      ]       };
+    key <AB04> {  [       0x1000680,       0x1000621, 0x1000624      ]       };
+    key <AB05> {  [       0x1000628,       0x100067B, 0x100FDE1      ]       };
+    key <AB06> {  [       0x1000646,       0x10006BB, 0x100200E      ]       };
+    key <AB07> {  [       0x1000645,       0x10006FE, 0x100FDF4      ]       };
+    key <AB08> {  [       0x100060C,       0x100201C, 0x100200F      ]       };
+    key <AB09> {  [          period,       0x100201D, 0x10006D4      ]       };
+    key <AB10> {  [       0x1000626, Arabic_question_mark, slash     ]       };
+
+// End alphanumeric section
+
+    key <RALT>  { type[Group1]="TWO_LEVEL",
+                  [ ISO_Level3_Shift, Multi_key ]   };
+    modifier_map Mod5   { <RALT> };
+};
+
+partial alphanumeric_keys
+xkb_symbols "digits" {
+    include "snd(basic)"
+	
+// use arabic-indic script digits
+    key <AE01> {  [       0x10006F1,          exclam, 0x1000610 ]       };
+    key <AE02> {  [       0x10006F2,       0x1000670, 0x1000611 ]       };
+    key <AE03> {  [       0x10006F3,       0x100FBC5, 0x1000613 ]       };
+    key <AE04> {  [       0x10006F4,       0x100FBC6, 0x1000612 ]       };
+    key <AE05> {  [       0x10006F5,       0x100FBC7, 0x1002026 ]       };
+    key <AE06> {  [       0x10006F6,       0x100FBC8, 0x1002022 ]       };
+    key <AE07> {  [       0x10006F7,       0x10006FD            ]       };
+    key <AE08> {  [       0x10006F8,        asterisk            ]       };
+    key <AE09> {  [       0x10006F9,       parenleft            ]       };
+    key <AE10> {  [       0x10006F0,      parenright            ]       };
+};
+
+
diff --git a/symbols/tifinagh b/symbols/tifinagh
new file mode 100644
index 0000000..d07254d
--- /dev/null
+++ b/symbols/tifinagh
@@ -0,0 +1,177 @@
+//##### NOTE: the norm is not yet definitive ######
+// Tifinagh keyboards; as defined by the Moroccan norm PNM 17.1.000
+// there are 4 layouts defined:
+// * tifinagh(strict): basic layout (only standard moroccan orthography
+//	letters), in strict mode (eg, undefining some level1 positions)
+// * tifinagh(basic): basic layout like the previous, but without
+//	undefined positions at level1)
+// * tifinagh(extended): extended layout, with all tifinagh accessible
+// * tifinagh(phonetic): this one doesn't follow moroccan norm, but
+//	instead does a phonetic mapping of tifinagh tokeys having
+//	some latin alphabet values; it is based on thefirst
+//	tifinagh kbd version present in Mandrakelinux 10.0, and
+//	it may be easier to remember the places where tifinagh letters
+//	not covered by moroccan orthography are located.
+//
+// NOTE: the moroccan keyboard has two keys that send a *string*
+//	instead of a single character; as currently XKB can't define
+//	a way to do that, what is done is that some unused unicode
+//	values of the tifinagh block are sent instead (U+2D6D and U+2D6E)
+//	and they are mapped in the Compose file; the result is transparent
+//	for programs using Compose file, but may be problematic for
+//	others, or when the Compose file lacks the translation lines.
+//	here are the two lines to add to Compose file:
+//
+//	<U2d6d> : "ⴳⵯ"
+//	<U2d6e> : "ⴽⵯ"
+//
+// 2004-03-22 Pablo Saratxaga <pablo@mandriva.com>
+
+partial alphanumeric_keys
+xkb_symbols "strict" {
+
+    name[Group1]="Tifinagh";
+
+    key <TLDE>	{ [ twosuperior ]	};
+    key <AE01>	{ [ ampersand,         1 ]	};
+    key <AE02>	{ [  NoSymbol,         2, asciitilde	]	};
+    key <AE03>	{ [  quotedbl,         3, numbersign	]	};
+    key <AE04>	{ [apostrophe,         4, braceleft	]	};
+    key <AE05>	{ [ parenleft,         5, bracketleft	]	};
+    key <AE06>	{ [     minus,         6, bar		]	};
+    key <AE07>	{ [  NoSymbol,         7, grave 	]	};
+    key <AE08>	{ [underscore,         8, backslash	]	};
+    key <AE09>	{ [  NoSymbol,         9, asciicircum	]	};
+    key <AE10>	{ [  NoSymbol,         0, at		]	};
+    key <AE11>	{ [parenright,    degree, bracketright	]	};
+    key <AE12>	{ [     equal,      plus, braceright	]	};
+
+    key <AD01>	{ [ 0x1002d30 ]	};
+    key <AD02>	{ [ 0x1002d63, 0x1002d65 ]	};
+    key <AD03>	{ [ 0x1002d3b,  NoSymbol,  EuroSign ]	};
+    key <AD04>	{ [ 0x1002d54, 0x1002d55 ]	};
+    key <AD05>	{ [ 0x1002d5c, 0x1002d5f ]	};
+    key <AD06>	{ [ 0x1002d62 ]	};
+    key <AD07>	{ [ 0x1002d53 ]	};
+    key <AD08>	{ [ 0x1002d49 ]	};
+    key <AD09>	{ [ 0x1002d44 ]	};
+    key <AD10>	{ [ 0x1002d43 ]	};
+    key <AD11>	{ [ 0x1002d6f ] };
+    key <AD12>	{ [    dollar,  sterling,  currency ]	};
+
+    key <AC01>	{ [ 0x1002d47 ]	};
+    key <AC02>	{ [ 0x1002d59, 0x1002d5a ]	};
+    key <AC03>	{ [ 0x1002d37, 0x1002d39 ]	};
+    key <AC04>	{ [ 0x1002d3c ]	};
+    key <AC05>	{ [ 0x1002d33, 0x1002d6d ]	}; // kw
+    key <AC06>	{ [ 0x1002d40 ]	};
+    key <AC07>	{ [ 0x1002d4a ]	};
+    key <AC08>	{ [ 0x1002d3d, 0x1002d6e ]	}; // gw
+    key <AC09>	{ [ 0x1002d4d ]	};
+    key <AC10>	{ [ 0x1002d4e ]	};
+    key <AC11>	{ [  NoSymbol,   percent ]	};
+    key <BKSL>	{ [  asterisk,        mu ]	};
+
+    key <LSGT>	{ [      less,   greater ]	};
+    key <AB01>	{ [ 0x1002d61 ]	};
+    key <AB02>	{ [ 0x1002d45 ]	};
+    key <AB03>	{ [ 0x1002d5b ]	};
+    key <AB04>	{ [ 0x1002d56 ]	};
+    key <AB05>	{ [ 0x1002d31 ]	};
+    key <AB06>	{ [ 0x1002d4f ]	};
+    key <AB07>	{ [     comma,  question ] };
+    key <AB08>	{ [ semicolon,    period ] };
+    key <AB09>	{ [     colon,     slash ] };
+    key <AB10>	{ [    exclam,   section ] };
+
+    include "level3(ralt_switch)"
+};
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+    include "tifinagh(strict)"
+
+    key <AE02>	{ [ asciitilde,        2, asciitilde	]	};
+    key <AE07>	{ [     grave,         7, grave 	]	};
+    key <AE09>	{ [ asciicircum,       9, asciicircum	]	};
+    key <AE10>	{ [        at,         0, at		]	};
+
+    key <AC11>	{ [   percent,   percent ]	};
+};
+
+partial alphanumeric_keys
+xkb_symbols "extended" {
+
+    include "tifinagh(basic)"
+
+    key <TLDE>	{ [ twosuperior, 0x100200d ]	};
+    key <AE02>	{ [ 0x1002d52,         2, asciitilde	]	};
+    key <AE07>	{ [ 0x1002d64,         7, grave 	]	};
+    key <AE09>	{ [ 0x4002014,         9, asciicircum	]	};
+    key <AE10>	{ [ 0x100200c,         0, at		]	};
+
+    key <AD01>	{ [ 0x1002d30, 0x1002d36 ]	};
+    key <AD03>	{ [ 0x1002d3b, 0x1002d57,  EuroSign ]	};
+    key <AD06>	{ [ 0x1002d62, 0x1002d42 ]	};
+    key <AD07>	{ [ 0x1002d53, 0x1002d4c ]	};
+    key <AD08>	{ [ 0x1002d49, 0x1002d58 ]	};
+    key <AD09>	{ [ 0x1002d44, 0x1002d5d ]	};
+    key <AD10>	{ [ 0x1002d43, 0x1002d5e ]	};
+    key <AD11>	{ [ 0x1002d6f, 0x1002d60 ]	};
+
+    key <AC01>	{ [ 0x1002d47, 0x1002d48 ]	};
+    key <AC04>	{ [ 0x1002d3c, 0x1002d35 ]	};
+    key <AC06>	{ [ 0x1002d40, 0x1002d41 ]	};
+    key <AC07>	{ [ 0x1002d4a, 0x1002d4b ]	};
+    key <AC09>	{ [ 0x1002d4d, 0x1002d38 ]	};
+    key <AC10>	{ [ 0x1002d4e, 0x1002d3a ]	};
+    key <AC11>	{ [ 0x1002d51,   percent ]	};
+
+    key <AB01>	{ [ 0x1002d61, 0x1002d3e ]	};
+    key <AB02>	{ [ 0x1002d45, 0x1002d46 ]	};
+    key <AB03>	{ [ 0x1002d5b, 0x1002d3f ]	};
+    key <AB04>	{ [ 0x1002d56, 0x1002d34 ]	};
+    key <AB05>	{ [ 0x1002d31, 0x1002d32 ]	};
+    key <AB06>	{ [ 0x1002d4f, 0x1002d50 ]	};
+
+    key <SPCE>	{ [     space,    space, nobreakspace ]	};
+};
+
+partial alphanumeric_keys
+xkb_symbols "phonetic" {
+
+    name[Group1]="Tifinagh";
+
+    key <LatA>	{ [ 0x1002d30 ]	};
+    key <LatZ>	{ [ 0x1002d63, 0x1002d65, 0x1002d64 ]	};
+    key <LatE>	{ [ 0x1002d3b, 0x1002d3b,  EuroSign ]	};
+    key <LatR>	{ [ 0x1002d54, 0x1002d55 ]	};
+    key <LatT>	{ [ 0x1002d5c, 0x1002d5f, 0x1002d5d ]	};
+    key <LatY>	{ [ 0x1002d62 ]	};
+    key <LatU>	{ [ 0x1002d53 ]	};
+    key <LatI>	{ [ 0x1002d49 ]	};
+    key <LatO>	{ [ 0x1002d44 ]	};
+    key <LatP>	{ [ 0x1002d43, 0x1002d52 ]	};
+
+    key <LatQ>	{ [ 0x1002d47, 0x1002d48 ]	};
+    key <LatS>	{ [ 0x1002d59, 0x1002d5a ]	};
+    key <LatD>	{ [ 0x1002d37, 0x1002d39, 0x1002d38, 0x1002d3a ]	};
+    key <LatF>	{ [ 0x1002d3c ]	};
+    key <LatG>	{ [ 0x1002d33, 0x1002d36, 0x1002d34, 0x1002d35 ]	};
+    key <LatH>	{ [ 0x1002d40, 0x1002d42, 0x1002d41 ]	};
+    key <LatJ>	{ [ 0x1002d4a, 0x1002d4c, 0x1002d4b ]	};
+    key <LatK>	{ [ 0x1002d3d, 0x1002d3e, 0x1002d3f ]	};
+    key <LatL>	{ [ 0x1002d4d ]	};
+    key <LatM>	{ [ 0x1002d4e ]	};
+
+    key <LatW>	{ [ 0x1002d61, 0x1002d6f, 0x1002d60 ]	};
+    key <LatX>	{ [ 0x1002d45, 0x1002d46 ]	};
+    key <LatC>	{ [ 0x1002d5b, 0x1002d5e ]	};
+    key <LatV>	{ [ 0x1002d56, 0x1002d57, 0x1002d58 ]	};
+    key <LatB>	{ [ 0x1002d31, 0x1002d31, 0x1002d32 ]	};
+    key <LatN>	{ [ 0x1002d4f, 0x1002d50, 0x1002d51 ]	};
+
+    include "level3(ralt_switch)"
+};
+
diff --git a/symbols/tm b/symbols/tm
index d66e277..2e07ac8 100644
--- a/symbols/tm
+++ b/symbols/tm
@@ -1,50 +1,66 @@
-// $XKeyboardConfig$
+// Turkmen keyboard layout for xkb
+// version: 0.3
+//
+// Copyright (c) 2004 Kakilik project <http://kakilik.sourceforge.net>
+// Author: Gurban M. Tewekgeli        <gmtavakkoli@yahoo.com>
+//
+// MAYBE:
+//  I've added dead_breve against dead_caron. But it may be dead_circumflex.
+//
+// $XFree86$ 
 
-// $XFree86: xc/programs/xkbcomp/symbols/tm,v 0.2 2009/04/02 14:32:05 pascal Exp $
-// Nazar Annagurban <nazar_xg@hotmail.com>, 2009
-
-// Default layout (based on Vista Turkmen layout)
 default partial
 xkb_symbols "basic" {
-    name[Group1]="Turkmenistan";
-    
-    include "us"
-    
-    key <TLDE> {	[    zcaron, 	Zcaron,		grave,	asciitilde	]	};
-
-    key <AD01> {	[ adiaeresis, 	Adiaeresis,	q,	Q 	]	};
-    key <AD11> {	[    ncaron, 	Ncaron,		bracketleft,	braceleft	]	};
-    key <AD12> {	[odiaeresis, 	Odiaeresis, 	bracketright,	braceright	]	};
-
-    key <AB02> {	[udiaeresis, 	Udiaeresis,	x,	X	]	};
-    key <AB03> {	[  ccedilla, 	Ccedilla,	c,	C	]	};
-    key <AB04> {	[    yacute, 	Yacute, 	v,	V	]	};
+ include "latin"
 
-    key <BKSL> {	[  scedilla, 	Scedilla,	backslash,         bar	]	};
-
-    include "level3(ralt_switch)"
-};
+ name[Group1]="Turkmen";
 
-// Turkmen Alt-Q Layout
-// This layout provides turkmen letter via the AltGr key
-partial
-xkb_symbols "alt" {
-    name[Group1]="Turkmenistan - Alt-Q";
+ key.type[group1]="FOUR_LEVEL";
 
-    include "us"
+ key <TLDE> {[    zcaron,      Zcaron,          grave,           asciitilde]};
+ key <AE01> {[         1,      exclam,    onesuperior,           onequarter]};
+ key <AE02> {[         2,          at,    twosuperior,              onehalf]};
+ key <AE03> {[         3,  numbersign,  threesuperior,        threequarters]};
+ key <AE04> {[         4,           M,         dollar,                 cent]};
+ key <AE05> {[         5,     percent,       EuroSign,             sterling]};
+ key <AE06> {[         6, asciicircum,       currency,                  yen]};
+ key <AE07> {[         7,   ampersand,         degree,            masculine]};
+ key <AE08> {[         8,    asterisk,       multiply,             division]};
+ key <AE09> {[         9,   parenleft,    bracketleft,            braceleft]};
+ key <AE10> {[         0,  parenright,   bracketright,           braceright]};
+ key <AE11> {[     minus,  underscore,    dead_macron,               emdash]};
+ key <AE12> {[     equal,        plus,      plusminus,            brokenbar]};
 
-    key <AD06> {	[	  y,	Y,	yacute,		Yacute		]	};
-    key <AD07> {	[	  u,	U,	udiaeresis,	Udiaeresis	]	};
-    key <AD09> {	[	  o,	O,	odiaeresis,	Odiaeresis	]	};
+ key <AD01> {[adiaeresis,  Adiaeresis,              q,                    Q]};
+ key <AD02> {[         w,           W,    dead_ogonek,          dead_ogonek]};
+ key <AD03> {[         e,           E,          schwa,                SCHWA]};
+ key <AD04> {[         r,           R,     registered,           registered]};
+ key <AD05> {[         t,           T,      trademark,            trademark]};
+ key <AD06> {[         y,           Y,      copyright,            copyright]};
+ key <AD08> {[         i,           I,       idotless,            Iabovedot]};
+ key <AD10> {[         p,           P,      paragraph,            paragraph]};
+ key <AD11> {[    ncaron,      Ncaron,    bracketleft,            braceleft]};
+ key <AD12> {[odiaeresis,  Odiaeresis,   bracketright,           braceright]};
 
-    key <AC01> {	[	  a,	A,	adiaeresis,	Adiaeresis	]	};
-    key <AC02> {	[	  s,	S,	scedilla,	Scedilla	]	};
+ key <AC02> {[         s,           S,        section,              section]};
+ key <AC05> {[         g,           G,         gbreve,               Gbreve]};
+ key <AC08> {[         k,           K,  guillemotleft,  leftdoublequotemark]};
+ key <AC09> {[         l,           L, guillemotright, rightdoublequotemark]};
+ key <AC10> {[ semicolon,       colon,     dead_tilde,       dead_diaeresis]};
+ key <AC11> {[apostrophe,    quotedbl,     dead_acute,       dead_abovering]};
 
-    key <AB01> {	[	  z,	Z,	zcaron,		Zcaron		]	};
-    key <AB03> {	[  	  c,	C,	ccedilla,	Ccedilla	]	};
-    key <AB06> {	[	  n,	N,	ncaron,		Ncaron		]	};
+ key <AB02> {[    yacute,      Yacute,              x,                    X]};
+ key <AB03> {[  ccedilla,    Ccedilla,              c,                    C]};
+ key <AB04> {[udiaeresis,  Udiaeresis,              v,                    V]};
+ key <AB06> {[         n,           N,            eng,                  ENG]};
+ key <AB07> {[         m,           M,             mu,                   mu]};
+ key <AB08> {[     comma,        less,   dead_cedilla,           dead_caron]};
+ key <AB09> {[    period,     greater,  dead_abovedot,           dead_breve]};
+ key <AB10> {[     slash,    question,     exclamdown,         questiondown]};
+ key <BKSL> {[  scedilla,    Scedilla,      backslash,                  bar]};
 
-    include "level3(ralt_switch)"
+ key <SPCE> {[     space,       space,   nobreakspace,        nobreakspace ]};
 
+ include "level3(ralt_switch)"
 };
 
diff --git a/symbols/urd b/symbols/urd
new file mode 100644
index 0000000..b57abc9
--- /dev/null
+++ b/symbols/urd
@@ -0,0 +1,110 @@
+
+// Urdu keyboard
+
+partial default alphanumeric_keys 
+xkb_symbols "basic" {
+    name[Group1]= "Urdu";
+
+    key <TLDE> {  [           grave,      asciitilde      ]	};
+    key <AE01> {  [       0x10006f1,          exclam      ]     };
+    key <AE02> {  [       0x10006f2,              at      ]     };
+    key <AE03> {  [       0x10006f3,      numbersign      ]     };
+    key <AE04> {  [       0x10006f4,          dollar      ]     };
+    key <AE05> {  [       0x10006f5,       0x100066a      ]     };
+    key <AE06> {  [       0x10006f6,     asciicircum      ]     };
+    key <AE07> {  [       0x10006f7,       ampersand      ]     }; // ligature?
+    key <AE08> {  [       0x10006f8,        asterisk      ]     };
+    key <AE09> {  [       0x10006f9,       parenleft      ]     };
+    key <AE10> {  [       0x10006f0,      parenright      ]     };
+    key <AE11> {  [           minus,      underscore      ]     };
+    key <AE12> {  [           equal,            plus      ]     };
+						
+    key <AD01> {  [      Arabic_tah,     Arabic_zah       ]     };
+    key <AD02> {  [      Arabic_sad,     Arabic_dad       ]     };
+    key <AD03> {  [       0x10006be,     Arabic_thal      ]     };
+    key <AD04> {  [      Arabic_dal,     0x1000688        ]     };
+    key <AD05> {  [       0x1000679,     Arabic_theh      ]     };
+    key <AD06> {  [       0x100067e,     Arabic_shadda    ]     };
+    key <AD07> {  [      Arabic_teh,     0x10006c3        ]     };
+    key <AD08> {  [      Arabic_beh,     Arabic_tatweel   ]     };
+    key <AD09> {  [     Arabic_jeem,     0x1000686        ]     };
+    key <AD10> {  [      Arabic_hah,     Arabic_khah      ]     };
+    key <AD11> {  [     bracketleft,     braceleft        ]     };
+    key <AD12> {  [    bracketright,     braceright       ]     };
+
+    key <AC01> {  [     Arabic_meem,     0x1000698        ]     };
+    key <AC02> {  [      Arabic_waw,     Arabic_zain      ]     };
+    key <AC03> {  [       Arabic_ra,     0x1000691        ]     };
+    key <AC04> {  [     Arabic_noon,     0x10006ba        ]     };
+    key <AC05> {  [      Arabic_lam,     0x10006c2        ]     };
+    key <AC06> {  [      Arabic_heh,     Arabic_hamza     ]     };
+    key <AC07> {  [     Arabic_alef, Arabic_maddaonalef   ]     };
+    key <AC08> {  [       0x10006a9,     0x10006af        ]     };
+    key <AC09> {  [       0x10006cc,     Arabic_yeh       ]     };
+    key <AC10> {  [ Arabic_semicolon,    colon            ]     };
+    key <AC11> {  [      apostrophe,     quotedbl         ]     };
+    key <BKSL> {  [       backslash,     bar              ]     };
+
+    key <LSGT> {  [            less,     greater    	  ]     };
+    key <AB01> {  [      Arabic_qaf,     0x100200d        ]     };
+    key <AB02> {  [      Arabic_feh,     0x100200c        ]     };
+    key <AB03> {  [       0x10006d2,     0x10006d3        ]     };
+    key <AB04> {  [     Arabic_seen,     0x100200e        ]     };
+    key <AB05> {  [    Arabic_sheen,   Arabic_hamzaonwaw  ]     };
+    key <AB06> {  [    Arabic_ghain,   Arabic_hamzaonyeh  ]     };
+    key <AB07> {  [      Arabic_ain,     0x100200f        ]     };
+    key <AB08> {  [    Arabic_comma,     less             ]     };
+    key <AB09> {  [       0x10006d4,     greater          ]     };
+    key <AB10> {  [           slash, Arabic_question_mark ]     };
+
+    // End alphanumeric section
+};
+
+partial default alphanumeric_keys 
+xkb_symbols "phonetic" {
+    include "urd(basic)"
+
+    name[Group1]= "Urdu";
+
+    key <LatQ> { [ Arabic_qaf,	 Arabic_kaf	]	};
+    key <LatW> { [ Arabic_waw,	 Arabic_hamzaonwaw ]	};
+    key <LatE> { [ Arabic_ain,	 0x1000698	]	};
+    key <LatR> { [ Arabic_ra,	 0x1000691	]	};
+    key <LatT> { [ Arabic_teh,	 0x1000679	]	};
+    key <LatY> { [ Arabic_fatha, Arabic_kasra	]	};
+    key <LatU> { [ 0x10006d2,	 0x10006d3	]	};
+    key <LatI> { [ 0x10006cc,	 Arabic_hamzaonyeh ]	};
+    key <LatO> { [ 0x10006be,	 Arabic_tehmarbuta ]	};
+    key <LatP> { [ 0x100067e,	 Arabic_damma	]	};
+    key <AD11> { [ bracketleft,	 braceleft	]	};
+    key <AD12> { [ bracketright, braceright	]	};
+
+    key <LatA> { [ Arabic_alef,  Arabic_maddaonalef ]	};
+    key <LatS> { [ Arabic_seen,	 Arabic_sheen	]	};
+    key <LatD> { [ Arabic_dal,	 0x1000688	]	};
+    key <LatF> { [ Arabic_feh,	 0x1000670	]	};
+    key <LatG> { [ 0x10006af,	 Arabic_ghain	]	};
+    key <LatH> { [ 0x10006c1,	 Arabic_hah	]	};
+    key <LatJ> { [ Arabic_jeem,	 Arabic_khah	]	};
+    key <LatK> { [ 0x10006a9,	 Arabic_shadda	]	};
+    key <LatL> { [ Arabic_lam,	 Arabic_hamza	]	};
+    key <AC10> { [ Arabic_semicolon, colon	]	};
+    key <AC11> { [ apostrophe,	 quotedbl	]	};
+    key <BKSL> { [ Arabic_fathatan, Arabic_kasratan ]	};
+
+    key <LSGT> { [ backslash,	 bar		]	};
+    key <LatZ> { [ Arabic_zain,  Arabic_thal	]	};
+    key <LatX> { [ Arabic_sad,	 Arabic_dad	]	};
+    key <LatC> { [ 0x1000686,	 Arabic_theh	]	};
+    key <LatV> { [ Arabic_tah,	 Arabic_zah	]	};
+    key <LatB> { [ Arabic_beh,	 0x1000654	]	};
+    key <LatN> { [ Arabic_noon,	 0x10006ba	]	};
+    key <LatM> { [ Arabic_meem,	 Arabic_meem	]	};
+    key <AB08> { [ Arabic_comma, 0x1000670	]	};
+    key <AB09> { [ 0x10006d4,	 greater	]	};
+    key <AB10> { [ slash,	 Arabic_question_mark ]	};
+
+    // End alphanumeric section
+};
+
+
-- 
1.6.3.2