Новая раскладка на основе русской.
Наваял тут татарскую раскладку на основе русской.
Надо сказать, получилось :) (образец: сәләм!)
НО также появились и проблемы.
Самая большая для меня это то, что цикличное переключение раскладок США-Русская-Татарская происходит только при нажатии правых 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
"Чайничек" :)