[FIXED] Переключение русской фонетической раскладки

Доброго времени суток всем.

Народ помогите с модификацией русской раскладки.

Детали :

У меня на 4 компах стоит линукс на 3 из них Linux Mint (Gnome)
На всех компах французская клавиатура AZERTY и для удобства пользования,я корректировал файл русской (phonetic) раскладки . “ru” из папки “/usr/share/X11/xkb/symbols/
К примеру я менял местами буквы В и Ж, Х и Ч и т.п. и все прекрасно работает.

На одном компе стоит Suse 11.2 (KDE 4.4.2) и модификация русской раскладки не даёт никаких результатов.(изменения сохраняются успешно) все буквы остаются на своих местах по умолчанию.

уже два дня бьюсь, интернет перерыл безрезультатно.

Я использую стандртный “KDE Keyboard Layout switcher”
настройки русской расскладки :
setxkbmap -model pc104 -layout fr,ru -variant ,phonetic

Вот фрагмент измененной раскладки RU(PHONETIC):

 partial alphanumeric_keys
xkb_symbols "phonetic" {

    name[Group1]= "Russia - Phonetic";
    key	<AE01> {		   exclam,	     	1	]	};
    key	<AE02> {		       at,        	2	]	};
    key	<AE03> {	     Cyrillic_io,    		3, quotedbl 	]	};
    key	<AE04> {	     Cyrillic_IO,              4	]	};
    key	<AE05> {	     Cyrillic_hardsign,	5, parenleft   	]	};
    key	<AE06> {	     Cyrillic_HARDSIGN,	6 	]	};
    key	<AE07> {		ampersand,	 	7	]	};
    key	<AE08> {		asterisk,		8      	]	};
    key	<AE09> {		parenleft,		9 	]	};
    key	<AE10> { 	    plus,   0,       at		]	};
    key <AE11> {	    parenright,     degree		]	}; 

А вот те-же строки из стандартной раскладки RU(PHONETIC):


partial alphanumeric_keys
xkb_symbols "phonetic" {

    name[Group1]= "Russia - Phonetic";

    key	<AE01> {			1,	    exclam 	]	};
    key	<AE02> {			2,        	at	]	};
    key	<AE03> {			3,     Cyrillic_io 	]	};
    key	<AE04> {			4,     Cyrillic_IO	]	};
    key	<AE05> {			5, Cyrillic_hardsign   	]	};
    key	<AE06> {			6, Cyrillic_HARDSIGN	]	};
    key	<AE07> {			7,	 ampersand	]	};
    key	<AE08> {			8,        asterisk	]	};
    key	<AE09> {			9,	 parenleft	]	};
    key	<AE10> {			0,	parenright	]	};

Активировать и использовать клаву в файле xorg.cfg не могу, из за проблем в работе других устройств.

Такое впечатление, что используется какой то другой файл раскладки из другой папки. :frowning:

Заранее благодарю за помощь.

Вот что выводит команда setxkbmap -print

xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(azerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+fr+ru(phonetic):2+inet(evdev)+group(alt_shift_toggle)+capslock(capslock)"   };
        xkb_geometry  { include "pc(pc104)"     };
};

Здравствуйте, а Вы не пробовали настроить клавиатуру через hal? Правкой параметров в файле /etc/hal/fdi/policy/20thirdparty/11-keymap.fdi

Добрый день,

вот текст файла 11-keymap.fdi


<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keymap">
      <append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
    </match>

    <match key="info.capabilities" contains="input.keys">
      <merge key="input.xkb.rules" type="string">base</merge>
      <merge key="input.xkb.model" type="string">evdev</merge>
      <merge key="input.xkb.layout" type="string">fr,ru</merge>
      <merge key="input.xkb.variant" type="string",phonetic>
      <merge key="input.xkb.options" type="string">caps:capslock</merge>
    </match>
  </device>
</deviceinfo>

кстати заметил еще одну проблему…
при завершении сеанса или при смене пользователя в окне LOGIN клавиатура переходит в режим QWERTY а после входа в систему возвращается к нужному AZERTY :frowning:

посмотрите нет ли жестко прописанных значений в ~/.dmrc

Добрый день.

Вот текст файла ~/.dmrc

[Desktop]
Session=default

Кстати у меня стоит беспроводная USB клавиатура Logitech S520 с использованием программы Keytouch для мультимедиа клавиш.

То что клавиатура USB не влияет на используемый файл раскладки ?

у вас в строке

<merge key="input.xkb.variant" type="string",phonetic>

отсутствует закрывающий тег. И можно добавить в input.xkb.option переключатель групп

<merge key="input.xkb.options" type="string">grp:ctrl_shift_toggle</merge>

в kde в настройках раскладки клавиатуры поставить - только индикатор

Спасибо,я совсем не заметил как таг удалил :wink:

К сожалению не помогло, к тому-же раскалдка стала “US”

А setxkbmap -print теперь выводит

xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+us+inet(evdev)"     };
        xkb_geometry  { include "pc(pc104)"     };
};

В языковых настройках включены 2 языка russian & french
попробую поменять их местами

извиняюсь, сразу не заметил. В строке после type=“string” тоже знак должен быть. Т.е. правильная строка:

<merge key="input.xkb.variant" type="string">,phonetic</merge>

Спасибо.

Изменил файл … результат тот-же - ноль изменений :’(

Ни черта не пойму, настройки HAL не работают, изменение файла раскладки не работает.
К тому же если отключить Keyboard Layout switcher раскладка по умолчанию становится US<
Как это изменить ?
Как узнать какой файл раскладки (из кокой папки) используется ?

Заранее благодарю за ответ

попробуйте удалить все файлы в директории /var/lib/xkb/compiled/ и перезагрузить иксы

Спасибо, заработало :slight_smile:

Вот поэтапные действия после корректировки файла раскладки:

  1. Удалил все файлы *.xkm из директории /var/lib/xkb/compiled/
  2. удалил файл fdi-cache из директории /var/cache/hald/
    3.Перезапустил компьютер. (просто перезапуск X не помогает)

И вуаля, получаем русскую фонетическую AZERTY раскладку с, IMHO, более удобным расположением букв, цифр и знаков.

Вот измененная часть файла “ru” из директории /usr/share/X11/xkb/symbols/

partial alphanumeric_keys
xkb_symbols "phonetic" {

    name[Group1]= "Russia - Phonetic";
    key	<AE01> {		   exclam,	     	1	]	};
    key	<AE02> {		       at,        	2	]	};
    key	<AE03> {	     Cyrillic_io,    		3, quotedbl 	]	};
    key	<AE04> {	     Cyrillic_IO,              4	]	};
    key	<AE05> {	     Cyrillic_hardsign,	5, parenleft   	]	};
    key	<AE06> {	     Cyrillic_HARDSIGN,	6 	]	};
    key	<AE07> {		ampersand,	 	7	]	};
    key	<AE08> {		asterisk,		8      	]	};
    key	<AE09> {		parenleft,		9 	]	};
    key	<AE10> { 	   	plus,   0,       at		]	};
    key <AE11> {	  	parenright,     degree		]	};
    key	<AE12> {	 	Cyrillic_softsign, Cyrillic_SOFTSIGN, equal  ]	};
    key <AB07> { 		comma,   question 		] 	};
    key <AB08> { 	 	semicolon,     period 		]	};
    key <AB09> { 	     colon,      slash 		]	};
    key <AB10> { 	    exclam,    section 		] 	};
    key	<BKSL> {	      apostrophe,	  quotedbl	]	};
    key	<LSGT> {		bar,	 brokenbar		]	};
    
    key	<TLDE> {	     Cyrillic_yu,     Cyrillic_YU	]	};
    key	<LatQ> {	     Cyrillic_ya,     Cyrillic_YA	]	};
    key	<LatZ> {	     Cyrillic_ze,     Cyrillic_ZE	]	};
    key	<LatS> {	     Cyrillic_es,     Cyrillic_ES	]	};
    key	<LatA> {	      Cyrillic_a,	Cyrillic_A	]	};
    key	<LatW> {	    Cyrillic_zhe,    Cyrillic_ZHE	]	};
    key	<LatC> {	    Cyrillic_tse,    Cyrillic_TSE	]	};
    key	<LatX> {	     Cyrillic_ha,     Cyrillic_HA	]	};
    key	<LatD> {	     Cyrillic_de,     Cyrillic_DE	]	};
    key	<LatE> {	     Cyrillic_ie,     Cyrillic_IE	]	};
    key	<LatV> {	     Cyrillic_ve,     Cyrillic_VE	]	};
    key	<LatF> {	     Cyrillic_ef,     Cyrillic_EF	]	};
    key	<LatT> {	     Cyrillic_te,     Cyrillic_TE	]	};
    key	<LatR> {	     Cyrillic_er,     Cyrillic_ER	]	};
    key	<LatN> {	     Cyrillic_en,     Cyrillic_EN	]	};
    key	<LatB> {	     Cyrillic_be,     Cyrillic_BE	]	};
    key	<LatH> {	     Cyrillic_che,     Cyrillic_CHE	]	};
    key	<LatG> {	    Cyrillic_ghe,    Cyrillic_GHE	]	};
    key	<LatY> {	   Cyrillic_yeru,   Cyrillic_YERU	]	};
    key	<LatM> {	     Cyrillic_em,     Cyrillic_EM	]	};
    key	<LatJ> {	 Cyrillic_shorti, Cyrillic_SHORTI	]	};
    key	<LatU> {	      Cyrillic_u,	Cyrillic_U	]	};
    key	<LatK> {	     Cyrillic_ka,     Cyrillic_KA	]	};
    key	<LatI> {	      Cyrillic_i,	Cyrillic_I	]	};
    key	<LatO> {	      Cyrillic_o,	Cyrillic_O	]	};
    key	<LatL> {	     Cyrillic_el,     Cyrillic_EL	]	};
    key	<LatP> {	     Cyrillic_pe,     Cyrillic_PE	]	};

    key	<AD11> {	    Cyrillic_sha,    Cyrillic_SHA	]	};
    key	<AD12> {	  Cyrillic_shcha,  Cyrillic_SHCHA	]	};
    key	<AC11>  {	      Cyrillic_e,	Cyrillic_E	]	};
};