Новая раскладка на основе русской.

Наваял тут татарскую раскладку на основе русской.
Надо сказать, получилось :) (образец: сәләм!)

НО также появились и проблемы.
Самая большая для меня это то, что цикличное переключение раскладок США-Русская-Татарская происходит только при нажатии правых Ctrl+Shift, при нажатии же левой пары происходит переключение Татарская-Русская-США и на США стопорится. До этого всё было как надо.

Вот фрагмент из /etc/X11/xorg.conf

Section "InputDevice"
# generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
    Option         "AutoRepeat" "500 30"
    Option         "XkbRules" "xorg"
    Option         "XkbModel" "pc105"
    Option         "XkbLayout" "us,ru(winkeys),tt(winkeys)"
    Option         "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
EndSection

Вторая проблема связана с KKBSwitch. Новую раскладку он упорно распознаёт как "Russian".
Несмотря на исправления в /usr/lib/X11/xkb/rules/xorg.xml и внесения в /usr/share/apps/kkbswitch/group_names
строчки "Tatar=tt".

Так, теперь перечислю какие файлы xkb были подвергнуты редакции.

/usr/lib/X11/xkb/symbols/tt
/usr/lib/X11/xkb/symbols/pc/tt
/usr/lib/X11/xkb/keymap/sgi/tt
/usr/lib/X11/xkb/keymap/sun/tt
/usr/lib/X11/xkb/keymap/xfree86
/usr/lib/X11/xkb/keymap.dir
/usr/lib/X11/xkb/rules/sgi.lst
/usr/lib/X11/xkb/rules/sun.lst
/usr/lib/X11/xkb/rules/xorg
/usr/lib/X11/xkb/rules/xorg.lst
/usr/lib/X11/xkb/rules/xorg.xml
/usr/lib/X11/xkb/symbols.dir

Ниже идут результаты моей деятельности для тех кому интересно, и тех кто захочет повторить.
Раскладка основывается на аналогичной в Win2K/WinXP.

$ diff -bB -U 1 /usr/lib/X11/xkb/symbols/ru /usr/lib/X11/xkb/symbols/tt
--- /usr/lib/X11/xkb/symbols/ru 2006-03-02 16:07:37.000000000 +0300
+++ /usr/lib/X11/xkb/symbols/tt 2006-03-14 16:06:07.000000000 +0300
@@ -1,7 +1,7 @@
-// $Xorg: ru,v 1.3 2000/08/17 19:54:43 cpqbld Exp $
+// $Xorg: tt,v 1.0 2006/04/14 11:27:00 cpqbld Exp $
 //
-// russian standard keyboard
-// AEN <aen@logic.ru>
-// Last Changes 2001/12/23 by Leon Kanter <leon@blackcatlinux.com>
-// $XFree86: xc/programs/xkbcomp/symbols/ru,v 3.9 2002/01/16 18:20:12 dawes Exp $
+//
+// tatar win sl keyboard
+// gtlinux
+// $XFree86: xc/programs/xkbcomp/symbols/tt,v 1.0 2006/04/14 11:27:00 dawes Exp $

@@ -14,3 +14,3 @@
     name[Group1]= "US/ASCII";
-    name[Group2]= "Russian";
+    name[Group2]= "Tatar";

@@ -50,3 +50,3 @@
     key        <TLDE> {        [           grave,      asciitilde      ],
-                       [     Cyrillic_io,     Cyrillic_IO      ]       };
+                       [           U04BB,           U04BA      ]       };
     key        <AD01> {        [               q,               Q      ],
@@ -54,3 +54,3 @@
     key        <AD02> {        [               w,               W      ],
-                       [    Cyrillic_tse,    Cyrillic_TSE      ]       };
+                       [           U04E9,           U04E8      ]       };
     key        <AD03> {        [               e,               E      ],
@@ -68,3 +68,3 @@
     key        <AD09> {        [               o,               O      ],
-                       [  Cyrillic_shcha,  Cyrillic_SHCHA      ]       };
+                       [           U04D9,           U04D8      ]       };
     key        <AD10> {        [               p,               P      ],
@@ -74,3 +74,3 @@
     key        <AD12> {        [    bracketright,      braceright      ],
-                       [Cyrillic_hardsign,Cyrillic_HARDSIGN    ]       };
+                       [           U04AF,           U04AE      ]       };
     key        <AC01> {        [               a,               A      ],
@@ -94,3 +94,3 @@
     key        <AC10> {        [       semicolon,           colon      ],
-                       [    Cyrillic_zhe,    Cyrillic_ZHE      ]       };
+                       [           U0497,           U0497      ]       };
     key        <AC11> {        [      apostrophe,        quotedbl      ],
@@ -110,3 +110,3 @@
     key        <AB07> {        [               m,               M      ],
-                       [Cyrillic_softsign,Cyrillic_SOFTSIGN    ]       };
+                       [           U04A3,           U04A2      ]       };
     key        <AB08> {        [           comma,            less      ],
@@ -130,3 +130,3 @@
 xkb_symbols "winkeys" {
-    include "ru(basic)"
+    include "tt(basic)"
     key <AE03> {        [               3,      numbersign      ],
@@ -151,3 +151,3 @@
 xkb_symbols "typewriter" {
-    include "ru(basic)"
+    include "tt(basic)"
     key        <TLDE> {        [           grave,      asciitilde      ],
@@ -180,3 +180,3 @@
     key        <AD12> {        [    bracketright,      braceright      ],
-                       [Cyrillic_hardsign,Cyrillic_HARDSIGN    ]       };
+                       [           U04AF,           U04AE      ]       };
     key        <AB05> {        [               b,               B      ],
@@ -184,3 +184,3 @@
     key        <AB10> {        [           slash,        question      ],
-                       [     Cyrillic_io,     Cyrillic_IO      ]       };
+                       [           U04BB,           U04BA      ]       };
 };
@@ -189,3 +189,3 @@
 xkb_symbols "phonetic" {
-    include "ru(basic)"
+    include "tt(basic)"

@@ -196,5 +196,5 @@
     key        <AE03> {        [               3,      numbersign      ],
-                       [               3,     Cyrillic_io      ]       };
+                       [               3,           U04BB      ]       };
     key        <AE04> {        [               4,          dollar      ],
-                       [               4,     Cyrillic_IO      ]       };
+                       [               4,           U04BA      ]       };
     key        <AE05> {        [               5,         percent      ],
@@ -240,5 +240,5 @@
     key        <AB03> {        [               c,               C      ],
-                       [    Cyrillic_tse,    Cyrillic_TSE      ]       };
+                       [           U04E9,           U04E8      ]       };
     key        <AB02> {        [               x,               X      ],
-                       [Cyrillic_softsign,Cyrillic_SOFTSIGN    ]       };
+                       [           U04A3,           U04A2      ]       };
     key        <AC03> {        [               d,               D      ],
@@ -248,3 +248,3 @@
     key        <AB04> {        [               v,               V      ],
-                       [    Cyrillic_zhe,    Cyrillic_ZHE      ]       };
+                       [           U0497,           U0496      ]       };
     key        <AC04> {        [               f,               F      ],
@@ -282,3 +282,3 @@
     key        <AE11> {        [           minus,      underscore      ],
-                       [           minus, Cyrillic_hardsign    ]       };
+                       [           minus,           U04AF      ]       };
     key        <AD11> {        [     bracketleft,       braceleft      ],
@@ -288,3 +288,3 @@
     key        <AD12> {        [    bracketright,      braceright      ],
-                       [  Cyrillic_shcha,  Cyrillic_SHCHA      ]       };
+                       [           U04D9,           U04D8      ]       };
     key        <BKSL> {        [       backslash,             bar      ],
$ diff -bB -U 0 /usr/lib/X11/xkb/symbols/pc/ru /usr/lib/X11/xkb/symbols/pc/tt
--- /usr/lib/X11/xkb/symbols/pc/ru      2006-03-02 16:07:37.000000000 +0300
+++ /usr/lib/X11/xkb/symbols/pc/tt      2006-03-14 16:37:41.000000000 +0300
@@ -4,4 +4,3 @@
-// AEN <aen@logic.ru>
-// Last Changes 2001/12/23 by Leon Kanter <leon@blackcatlinux.com>
-//
-// $XFree86: xc/programs/xkbcomp/symbols/pc/ru,v 1.3 2003/02/15 22:27:05 dawes Exp $
+// tatar win sl keyboard
+// gtlinux
+// $XFree86: xc/programs/xkbcomp/symbols/pc/tt,v 1.0 2006/03/14 16:27:05 dawes Exp $
@@ -32 +31 @@
-    key        <TLDE> {        [     Cyrillic_io,     Cyrillic_IO      ]       };
+    key        <TLDE> {        [     U04BB,     U04BA  ]       };
@@ -34 +33 @@
-    key        <AD02> {        [    Cyrillic_tse,    Cyrillic_TSE      ]       };
+    key        <AD02> {        [    U04E9,    U04E8    ]       };
@@ -41 +40 @@
-    key        <AD09> {        [  Cyrillic_shcha,  Cyrillic_SHCHA      ]       };
+    key        <AD09> {        [  U04D9,  U04D8        ]       };
@@ -44 +43 @@
-    key        <AD12> {        [Cyrillic_hardsign,Cyrillic_HARDSIGN    ]       };
+    key        <AD12> {        [       U04AF,  U04AE   ]       };
@@ -54 +53 @@
-    key        <AC10> {        [    Cyrillic_zhe,    Cyrillic_ZHE      ]       };
+    key        <AC10> {        [    U0497,    U0496    ]       };
@@ -62 +61 @@
-    key        <AB07> {        [Cyrillic_softsign,Cyrillic_SOFTSIGN    ]       };
+    key        <AB07> {        [       U04A3,  U04A2   ]       };
@@ -73 +72 @@
-    include "pc/ru(basic)"
+    include "pc/tt(basic)"
@@ -86 +85 @@
-    include "pc/ru(basic)"
+    include "pc/tt(basic)"
@@ -102 +101 @@
-    key        <AD12> {        [Cyrillic_hardsign,Cyrillic_HARDSIGN    ]       };
+    key        <AD12> {        [       U04AF,  U04AE   ]       };
@@ -104 +103 @@
-    key        <AB10> {        [     Cyrillic_io,     Cyrillic_IO      ]       };
+    key        <AB10> {        [     U04BB,     U04BA  ]       };
@@ -114,2 +113,2 @@
-    key        <AE03> {        [               3,     Cyrillic_io      ]       };
-    key        <AE04> {        [               4,     Cyrillic_IO      ]       };
+    key        <AE03> {        [               3,     U04BB    ]       };
+    key        <AE04> {        [               4,     U04BA    ]       };
@@ -138,2 +137,2 @@
-    key        <LatC> {        [    Cyrillic_tse,    Cyrillic_TSE      ]       };
-    key        <LatX> {        [Cyrillic_softsign,Cyrillic_SOFTSIGN    ]       };
+    key        <LatC> {        [    U04E9,    U04E8    ]       };
+    key        <LatX> {        [       U04A3,  U04A2   ]       };
@@ -142 +141 @@
-    key        <LatV> {        [    Cyrillic_zhe,    Cyrillic_ZHE      ]       };
+    key        <LatV> {        [    U0497,    U0496    ]       };
@@ -160 +159 @@
-    key        <AE11> {        [           minus, Cyrillic_hardsign    ]       };
+    key        <AE11> {        [           minus, U04AF        ]       };
@@ -163 +162 @@
-    key        <AD12> {        [  Cyrillic_shcha,  Cyrillic_SHCHA      ]       };
+    key        <AD12> {        [  U04D9,  U04D8        ]       };
$ diff -bB -U 0 /usr/lib/X11/xkb/keymap/sgi/ru /usr/lib/X11/xkb/keymap/sgi/tt
--- /usr/lib/X11/xkb/keymap/sgi/ru      2006-03-02 16:07:37.000000000 +0300
+++ /usr/lib/X11/xkb/keymap/sgi/tt      2006-03-14 16:47:11.000000000 +0300
@@ -1 +1 @@
-// $Xorg: ru,v 1.3 2000/08/17 19:54:41 cpqbld Exp $
+// $Xorg: tt,v 1.0 2006/03/14 16:40:41 cpqbld Exp $
@@ -6 +6 @@
-    xkb_symbols        { include "en_US(pc_universal)+ru(basic)"       };
+    xkb_symbols        { include "en_US(pc_universal)+tt(basic)"       };
@@ -14 +14 @@
-       include "en_US(pc_universal)+ru(basic)+group(toggle)"
+       include "en_US(pc_universal)+tt(basic)+group(toggle)"
@@ -23 +23 @@
-       include "en_US(pc_universal)+ru(basic)+group(shift_toggle)"
+       include "en_US(pc_universal)+tt(basic)+group(shift_toggle)"
@@ -32 +32 @@
-       include "en_US(pc_universal)+ru(basic)+group(ctrl_shift_toggle)"
+       include "en_US(pc_universal)+tt(basic)+group(ctrl_shift_toggle)"
@@ -41 +41 @@
-       include "en_US(pc_universal)+ru(basic)+group(ctrl_alt_toggle)"
+       include "en_US(pc_universal)+tt(basic)+group(ctrl_alt_toggle)"
@@ -50 +50 @@
-       include "en_US(pc_universal)+ru(basic)+group(caps_toggle)"
+       include "en_US(pc_universal)+tt(basic)+group(caps_toggle)"
@@ -58 +58 @@
-    xkb_symbols        { include "en_US(pc102)+ru(basic)"      };
+    xkb_symbols        { include "en_US(pc102)+tt(basic)"      };
@@ -66 +66 @@
-       include "en_US(pc102)+ru(basic)+group(toggle)"
+       include "en_US(pc102)+tt(basic)+group(toggle)"
@@ -75 +75 @@
-       include "en_US(pc102)+ru(basic)+group(shift_toggle)"
+       include "en_US(pc102)+tt(basic)+group(shift_toggle)"
@@ -84 +84 @@
-       include "en_US(pc102)+ru(basic)+group(ctrl_shift_toggle)"
+       include "en_US(pc102)+tt(basic)+group(ctrl_shift_toggle)"
@@ -93 +93 @@
-       include "en_US(pc102)+ru(basic)+group(ctrl_alt_toggle)"
+       include "en_US(pc102)+tt(basic)+group(ctrl_alt_toggle)"
@@ -102 +102 @@
-       include "en_US(pc102)+ru(basic)+group(caps_toggle)"
+       include "en_US(pc102)+tt(basic)+group(caps_toggle)"
$ diff -bB -U 0 /usr/lib/X11/xkb/keymap/sun/ru /usr/lib/X11/xkb/keymap/sun/tt
--- /usr/lib/X11/xkb/keymap/sun/ru      2006-03-02 16:07:37.000000000 +0300
+++ /usr/lib/X11/xkb/keymap/sun/tt      2006-03-14 16:50:28.000000000 +0300
@@ -27 +27 @@
-// $XFree86: xc/programs/xkbcomp/keymap/sun/ru,v 1.2 2000/10/28 00:34:05 dawes Exp $
+// $XFree86: xc/programs/xkbcomp/keymap/sun/tt,v 1.0 2006/03/14 16:34:05 dawes Exp $
@@ -29 +29 @@
-xkb_keymap "type4_ru" {
+xkb_keymap "type4_tt" {
@@ -34 +34 @@
-       include "sun/us(sun4)+iso9995-3(basic)+ru"
+       include "sun/us(sun4)+iso9995-3(basic)+tt"
@@ -38 +38 @@
-xkb_keymap "type4_ru_openlook" {
+xkb_keymap "type4_tt_openlook" {
@@ -43 +43 @@
-       include "sun/us(sun4ol)+iso9995-3(basic)+ru"
+       include "sun/us(sun4ol)+iso9995-3(basic)+tt"
@@ -47 +47 @@
-default xkb_keymap "type5_ru" {
+default xkb_keymap "type5_tt" {
@@ -52 +52 @@
-       include "sun/us(sun5)+iso9995-3(basic)+ru"
+       include "sun/us(sun5)+iso9995-3(basic)+tt"
@@ -56 +56 @@
-xkb_keymap "type5_ru_openlook" {
+xkb_keymap "type5_tt_openlook" {
@@ -60 +60 @@
-    xkb_symbols        { include "sun/us(sun5ol)+iso9995-3+ru" };
+    xkb_symbols        { include "sun/us(sun5ol)+iso9995-3+tt" };
$ diff -bB -U 0 /usr/lib/X11/xkb/keymap/xfree86.orig /usr/lib/X11/xkb/keymap/xfree86
--- /usr/lib/X11/xkb/keymap/xfree86.orig        2006-03-14 16:56:06.000000000 +0300
+++ /usr/lib/X11/xkb/keymap/xfree86     2006-03-14 13:14:52.000000000 +0300
@@ -322,0 +323,7 @@
+xkb_keymap "tt"        {
+    xkb_keycodes       { include "xfree86"             };
+    xkb_types          { include "default"             };
+    xkb_compatibility  { include "default"             };
+    xkb_symbols                { include "en_US(pc105)+tt"     };
+    xkb_geometry       { include "pc(pc102)"           };
+};
$ diff -bB -U 0 /usr/lib/X11/xkb/keymap.dir.orig /usr/lib/X11/xkb/keymap.dir
--- /usr/lib/X11/xkb/keymap.dir.orig    2006-03-14 17:01:26.000000000 +0300
+++ /usr/lib/X11/xkb/keymap.dir 2006-03-14 13:03:50.000000000 +0300
@@ -85,0 +86,12 @@
+-d------ -------- sgi/tt(indy)
+-------- -------- sgi/tt(indy_toggle)
+-------- -------- sgi/tt(indy_shift_toggle)
+-------- -------- sgi/tt(indy_ctrl_shift_toggle)
+-------- -------- sgi/tt(indy_ctrl_alt_toggle)
+-------- -------- sgi/tt(indy_caps_toggle)
+-------- -------- sgi/tt(indigo)
+-------- -------- sgi/tt(indigo_toggle)
+-------- -------- sgi/tt(indigo_shift_toggle)
+-------- -------- sgi/tt(indigo_ctrl_shift_toggle)
+-------- -------- sgi/tt(indigo_ctrl_alt_toggle)
+-------- -------- sgi/tt(indigo_caps_toggle)
@@ -149,0 +162,4 @@
+-------- -------- sun/tt(type4_tt)
+-------- -------- sun/tt(type4_tt_openlook)
+-d------ -------- sun/tt(type5_tt)
+-------- -------- sun/tt(type5_tt_openlook)
@@ -222,0 +239 @@
+-------- -------- xfree86(tt)
$ diff -bB -U 0 /usr/lib/X11/xkb/rules/sgi.lst.orig /usr/lib/X11/xkb/rules/sgi.lst
--- /usr/lib/X11/xkb/rules/sgi.lst.orig 2006-03-14 17:05:22.000000000 +0300
+++ /usr/lib/X11/xkb/rules/sgi.lst      2006-03-14 11:40:33.000000000 +0300
@@ -54,0 +55 @@
+  tt                   Tatar
$ diff -bB -U 0 /usr/lib/X11/xkb/rules/sun.lst.orig /usr/lib/X11/xkb/rules/sun.lst
--- /usr/lib/X11/xkb/rules/sun.lst.orig 2006-03-14 17:09:01.000000000 +0300
+++ /usr/lib/X11/xkb/rules/sun.lst      2006-03-14 11:39:52.000000000 +0300
@@ -38,0 +39 @@
+  tt                   Tatar
$ diff -bB -U 0 /usr/lib/X11/xkb/rules/xorg.orig /usr/lib/X11/xkb/rules/xorg
--- /usr/lib/X11/xkb/rules/xorg.orig 2006-03-14 17:12:59.000000000 +0300
+++ /usr/lib/X11/xkb/rules/xorg      2006-03-14 13:16:29.000000000 +0300
@@ -17 +17 @@
-//              tj tml ua
+//              tj tml tt ua
$ diff -bB -U 0 /usr/lib/X11/xkb/rules/xorg.xml.orig /usr/lib/X11/xkb/rules/xorg.xml
--- /usr/lib/X11/xkb/rules/xorg.xml.orig        2006-03-14 17:22:03.000000000 +0300
+++ /usr/lib/X11/xkb/rules/xorg.xml     2006-03-14 15:21:16.000000000 +0300
@@ -4520,0 +4521,56 @@
+        <name>tt</name>
+        <shortDescription>Tat</shortDescription>
+        <shortDescription xml:lang="ru">Тат</shortDescription>
+        <shortDescription xml:lang="tt">Тат</shortDescription>
+        <description>Tatar</description>
+        <description xml:lang="ru">Татарская</description>
+       <description xml:lang="tt">Татар</description>
+      </configItem>
+      <variantList>
+        <variant>
+          <configItem>
+            <name>phonetic</name>
+            <description>Phonetic</description>
+            <description xml:lang="cs">Fonetické</description>
+            <description xml:lang="da">Fonetisk</description>
+            <description xml:lang="fr">Phonétique</description>
+            <description xml:lang="hu">fonetikus</description>
+            <description xml:lang="nl">Fonetisch</description>
+            <description xml:lang="ru">Фонетическая</description>
+            <description xml:lang="sk">Fonetické</description>
+            <description xml:lang="sr">фонетски</description>
+            <description xml:lang="tt">Фонетик</description>
+            <description xml:lang="tr">Fonetik</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>typewriter</name>
+            <description>"Typewriter"</description>
+            <description xml:lang="cs">"Psací stroj"</description>
+            <description xml:lang="da">"Skrivemaskine"</description>
+            <description xml:lang="hu">"Írógép"</description>
+            <description xml:lang="nl">"Typmachine"</description>
+            <description xml:lang="ru">"Печатная машинка"</description>
+            <description xml:lang="sk">"Písací stroj"</description>
+            <description xml:lang="sr">„Куцаћа машина“</description>
+            <description xml:lang="tr">"Daktilo"</description>
+            <description xml:lang="zh_CN">“打字机”</description>
+          </configItem>
+        </variant>
+        <variant>
+          <configItem>
+            <name>winkeys</name>
+            <description>Winkeys</description>
+            <description xml:lang="da">Win-taster</description>
+            <description xml:lang="nl">Win-toetsen</description>
+            <description xml:lang="ru">Клавиатура Windows</description>
+            <description xml:lang="sk">Win klávesy</description>
+            <description xml:lang="sr">Windows тастери</description>
+            <description xml:lang="tr">Win tuşları</description>
+          </configItem>
+        </variant>
+      </variantList>
+    </layout>
+    <layout>
+      <configItem>
$ diff -bB -U 0 /usr/lib/X11/xkb/symbols.dir.orig /usr/lib/X11/xkb/symbols.dir
--- /usr/lib/X11/xkb/symbols.dir.orig   2006-03-14 17:27:09.000000000 +0300
+++ /usr/lib/X11/xkb/symbols.dir        2006-03-14 12:55:50.000000000 +0300
@@ -381,0 +382,4 @@
+-dp----- a------- tt(basic)
+--p----- a------- tt(winkeys)
+--p----- a------- tt(typewriter)
+--p----- a------- tt(phonetic)

Проблемы были

Проблемы были успешно решены на ЛинуксФоруме

Всех благодарю за внимание.

_________________
AMD Athlon XP, 1800 MHz (13.5 x 133) 2200+
Gigabyte GA-7VA (VIA VT8377 Apollo KT400; Realtek ALC650 @ VIA AC'97 Enhanced Audio Controller; 256Mb(PC2700 DDR SDRAM))
NVIDIA Geforce4 MX 440 AGP8X NV18 Chip Rev A2
"Чайничек" :)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".