LINUX.ORG.RU

Собственная раскладка клавиатуры в Debian 6.0.1


0

2

Давным-давно я разместил результаты небольших изысканий по организации собственной раскладки в Slackware 12.1 и 13.0:

http://www.linux.org.ru/forum/desktop/3930825

Сегодня потратил почти полдня, чтобы разобраться, как заставить работать свою раскладку в Debian 6.0.1. Может, кому-нибудь пригодится, чтобы не тратить время на поиски.

Итак, добавление варианта раскладки в Дебиане. В моём случае вариант «feo» раскладки «ru».

1. На всякий случай сохранить каталог /usr/share/X11/xkb, файл /etc/default/keyboard.

2. Дописать свою раскладку в файл /usr/share/X11/xkb/symbols/ru.

Например, у меня в этом файле есть строчки:

partial alphanumeric_keys
xkb_symbols "feo" {
    include "ru(common)"
    name[Group1]= "Russia - Feo";

    key	<TLDE> {	[        question,        asterisk,        periodcentered	]	};
    
    key	<AE01> {	[          exclam,               1,            0x01000301    	]	};
    key	<AE02> {	[   guillemotleft,	         2,    doublelowquotemark	]	};
    key	<AE03> {	[  guillemotright,               3,   leftdoublequotemark  	]	};
    key	<AE04> {	[	semicolon,               4,              quotedbl	]	};
    key	<AE05> {	[	    colon,	         5,               percent     	]	};
    key	<AE06> {	[	    comma,               6,            apostrophe 	]	};
    key	<AE07> {	[	   period,               7,                degree 	]	};
    key	<AE08> {	[      underscore,               8,           asciicircum       ]	};
    key	<AE09> {	[	parenleft,       	 9,           bracketleft	]	};
    key	<AE10> {	[      parenright,               0,          bracketright	]	};
    key	<AE11> {	[           minus,      0x01002212,               section	]	};
    key	<AE12> {	[	    equal,	      plus,             plusminus	]	};

    key	<BKSL> {	[	   emdash,           slash,            numerosign	]	};

    key	<AB10> {	[     Cyrillic_io,     Cyrillic_IO    				]	};
  
    key	<AD01> {	[ Cyrillic_shorti, Cyrillic_SHORTI,            0x01002196	]	};
    key	<AD02> {	[    Cyrillic_tse,    Cyrillic_TSE,            0x01002191	]	};
    key	<AD03> {	[      Cyrillic_u,	Cyrillic_U,            0x01002197	]	};
    key	<AD04> {	[     Cyrillic_ka,     Cyrillic_KA	]	};
    key	<AD05> {	[     Cyrillic_ie,     Cyrillic_IE	]	};
    key	<AD06> {	[     Cyrillic_en,     Cyrillic_EN	]	};
    key	<AD07> {	[    Cyrillic_ghe,    Cyrillic_GHE	]	};
    key	<AD08> {	[    Cyrillic_sha,    Cyrillic_SHA	]	};
    key	<AD09> {	[  Cyrillic_shcha,  Cyrillic_SHCHA	]	};
    key	<AD10> {	[     Cyrillic_ze,     Cyrillic_ZE	]	};
    key	<AD11> {	[     Cyrillic_ha,     Cyrillic_HA,            0x01002717	]	};
    key	<AD12> {	[Cyrillic_hardsign,Cyrillic_HARDSIGN,          0x01002713	]	};
    key	<AC01> {	[     Cyrillic_ef,     Cyrillic_EF,            0x01002190	]	};
    key	<AC02> {	[   Cyrillic_yeru,   Cyrillic_YERU,            0x010021BB	]	};
    key	<AC03> {	[     Cyrillic_ve,     Cyrillic_VE,            0x01002192	]       };
    key	<AC04> {	[      Cyrillic_a,	Cyrillic_A	]	};
    key	<AC05> {	[     Cyrillic_pe,     Cyrillic_PE,            0x01002248	]	};
    key	<AC06> {	[     Cyrillic_er,     Cyrillic_ER,	       0x010020D7	]	};
    key	<AC07> {	[      Cyrillic_o,	Cyrillic_O	]	};
    key	<AC08> {	[     Cyrillic_el,     Cyrillic_EL	]	};
    key	<AC09> {	[     Cyrillic_de,     Cyrillic_DE,            0x01002300	]	};
    key	<AC10> {	[    Cyrillic_zhe,    Cyrillic_ZHE	]	};
    key	<AC11> {	[      Cyrillic_e,	Cyrillic_E	]	};
    key	<AB01> {	[     Cyrillic_ya,     Cyrillic_YA,            0x01002199	]	};
    key	<AB02> {	[    Cyrillic_che,    Cyrillic_CHE,            0x01002193	]	};
    key	<AB03> {	[     Cyrillic_es,     Cyrillic_ES,            0x01002198	]	};
    key	<AB04> {	[     Cyrillic_em,     Cyrillic_EM,	       0x010020DE	]	};
    key	<AB05> {	[      Cyrillic_i,	Cyrillic_I	]	};
    key	<AB06> {	[     Cyrillic_te,     Cyrillic_TE,            0x010021C4	]	};
    key	<AB07> {	[Cyrillic_softsign,Cyrillic_SOFTSIGN	]	};
    key	<AB08> {	[     Cyrillic_be,     Cyrillic_BE	]	};
    key	<AB09> {	[     Cyrillic_yu,     Cyrillic_YU	]	};
          
    include "level3(ralt_switch)"        
};

Приведённый выше фрагмент описывался в предыдущем посте. Он определяет вариант раскладки и вряд ли кому-нибудь, кроме меня, подойдёт без изменений :-)

3. Пункты 3—6 не очень обязательны. Влияют, наверное, на видимость новой раскладки в каких-то конфигураторах с GUI — не проверял.

/usr/share/X11/xkb/rules/base.lst

найти строчку

dos             ru: DOS
записать под ней:
feo             ru: Feo

4. /usr/share/X11/xkb/rules/evdev.lst

найти строчку

dos             ru: DOS
записать под ней:
feo             ru: Feo

5. /usr/share/X11/xkb/rules/base.xml

найти текст:

        <variant>
          <configItem>
            <name>dos</name>
            <description>DOS</description>
          </configItem>
        </variant>
дописать под ним:
        <variant>
          <configItem>
            <name>feo</name>
            <description>Feo</description>
          </configItem>
        </variant>

6. /usr/share/X11/xkb/rules/evdev.xml

найти текст:

        <variant>
          <configItem>
            <name>dos</name>
            <description>DOS</description>
          </configItem>
        </variant>
дописать под ним:
        <variant>
          <configItem>
            <name>feo</name>
            <description>Feo</description>
          </configItem>
        </variant>

7. А этот пункт вообще не знаю — нужен или нет.

/usr/share/console-setup/KeyboardNames.pl

Найти текст:

 'ru' => {
    'Bashkirian' => 'bak',
    'Chuvash' => 'cv',
    'Chuvash Latin' => 'cv_latin',
    'DOS' => 'dos',
Добавить под него:
'Feo' => 'feo',

8. /etc/default/keyboard

изменить строку

XKBLAYOUT="us,ru"
на
XKBLAYOUT="us,ru(feo)"

9. Зайти в консоль, там

setupcon

10. Опробовать результат в консоли (в Иксах - после команды udevadm trigger --subsystem-match=input --action=change) Быть готовым к тому, что дополнительная секция клавиатуры с numlock'ом и прочим временно (до перезагрузки) отвалится.

11. Если что-то не получится и потребуется повторить - перед запуском setupcon сделать

touch /etc/default/keyboard.

12. Перезагрузиться и проверить результат.

В Дебиане порадовало то, что одна и та же раскладка может легко использоваться и в Иксах, и в консоли. Не порадовало то, что вместо одного или даже нуля есть как минимум 5 списков раскладок.

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.