Коми раскладка клавиатуры для Linux Mint

Материал из Wiki FU-Lab
Перейти к навигации Перейти к поиску

Коми раскладку можно установить в OS Linux.

Коми раскладка из стандартного списка

Во всех дистрибутивах Linux есть коми раскладка клавиатуры. Данная раскладка дана как вариант русской раскладки.

Ubuntu.png

В большинстве случаев коми буквы набираются с помощью AltGr (правый ALT) + "о, и".

Создание своего варианта коми раскладки

Если вам нужно изменить раскладку, то в терминале с root откройте файл: /usr/share/X11/xkb/symbols/ru, например, с помощью редактора gedit:

gedit /usr/share/X11/xkb/symbols/ru

Далее найдите описание коми клавиатуры. В Ubuntu, Mint и многих других дистрибутивах (кроме НауЛинукс) эти строки выглядят так:

// Komi language layout
// based on
// russian standard keyboard
// Vlad Shakhov <lumpen.intellectual@gmail.com>
// Last Changes 2007/10/23 by Vlad Shakhov <lumpen.intellectual@gmail.com>

partial alphanumeric_keys 
xkb_symbols "kom" {

   include "ru(winkeys)"

   name[Group1]= "Komi";

   key.type[group1]="FOUR_LEVEL_ALPHABETIC";

// cyrilllic o with diaeresis 
   key <AC07> { [ Cyrillic_o, Cyrillic_O, U04E7, U04E6 ] };
    
// hard I as additional key for soft Cyrillic_I 
   key <AB05> { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] };

   include "level3(ralt_switch)"
};

Допустим, решили, что на "-" будет набираться "ӧ", а на "=" - "і". Вам необходимо добавить 2 строчки (выделено жирным) в этот файл, сохранить его и перегрузить сеанс пользователя:

// Komi language layout
// based on
// russian standard keyboard
// Vlad Shakhov <lumpen.intellectual@gmail.com>
// Last Changes 2007/10/23 by Vlad Shakhov <lumpen.intellectual@gmail.com>

partial alphanumeric_keys 
xkb_symbols "kom" {

   include "ru(winkeys)"

   name[Group1]= "Komi";

   key.type[group1]="FOUR_LEVEL_ALPHABETIC";

   key <AE12> { [ U04E7, U04E6,   equal, plus] }; 
   key <AE11> { [ U0456, U0406,   minus, underscore ] };

// cyrilllic o with diaeresis 
   key <AC07> { [ Cyrillic_o, Cyrillic_O, U04E7, U04E6 ] };
    
// hard I as additional key for soft Cyrillic_I 
   key <AB05> { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] };

   include "level3(ralt_switch)"
};

Создание отдельной коми раскладки

Если вы хотите создать коми раскладку с иконкой коми флага, то надо будет сделать следующее.

1. Скопируйте из usr/share/X11/xkb/symbols/ любой файл с изображением С, переименуйте его в kv, замените содержимое на

// Komi language layout
// based on
// russian standard keyboard

default  partial alphanumeric_keys
 xkb_symbols "kv" {

   include "ru(winkeys)"
   name[Group1]= "Komi";  
  key.type[group1]="FOUR_LEVEL_ALPHABETIC";

   key	<AC07> { [ Cyrillic_o,	      Cyrillic_O,	 U04E7, U04E6 ] };
   key	<AB05> { [ Cyrillic_i,	      Cyrillic_I,        U0456, U0406 ] };

   include "level3(ralt_switch)"
};

2. Скопируйте сохранённый файл kv в папку /usr/share/X11/xkb/symbols/

3. Из файла /usr/share/X11/xkb/symbols/ru удалите часть, относящуюся к коми.

4. Теперь необходимо сделать новую раскладку клавиатуры доступной в настройках. Для этого открываем файл /usr/share/X11/xkb/rules/evdev.xml, в разделе вариантов удаляем часть, оносящуются к коми

       <variant>
         <configItem>
           <name>kom</name>
           <description>Komi</description>
           <languageList>
             <iso639Id>kom</iso639Id>
           </languageList>
         </configItem>
       </variant>

и добавляем информацию об отдельной коми раскладке (по алфавиту после кхмерской kh перед казахской kz):

   <layout>
     <configItem>
       <name>kv</name>
       
       <shortDescription>kv</shortDescription>
       <description>Komi</description>
       <languageList>
         <iso639Id>kom</iso639Id>
       </languageList>
     </configItem>
   </layout>

5. В файле /usr/share/X11/xkb/rules/evdev.lst удаляем из списка вариантов строчку

 kom             ru: Komi

а в список раскладок по алфавиту после кхмерской kh перед казахской kz добавляем информацию о коми раскладке:

kh              Khmer (Cambodia)
kv              Komi
kz              Kazakh

5. Повторите операции 3-4 в файлах base.xml и base.lst

6. Добавьте иконку с коми флагом в /usr/share/cinnamon/applets/keyboard@cinnamon.org/flags или в /usr/share/iso-flags/

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

8. Выбирите коми раскладку из списка.

Полилингвальная коми раскладка

Можно сделать "универсальную" раскладку, при этом содержимое файлаkv может выглядеть вот так:

// Komi language layout // based on // english standard keyboard // FU-Lab (komi@fu-lab.ru)

default partial alphanumeric_keys

xkb_symbols "kom" {

   include "ru(winkeys)"

   name[Group1]= "Komi";

   key.type[group1]="FOUR_LEVEL_ALPHABETIC";

   key <TLDE> { [ Cyrillic_io,       Cyrillic_IO, 	 U04ED, U04EC ] };
   key <AE01> { [ 1,	              exclam,	         U0495,	U0494 ] };
   key <AE02> { [ 2,	              quotedbl,	         U04C2,	U04C1 ] };
   key <AE03> { [ 3,	              numerosign,	 U045E,	U040E ] };
   key <AE04> { [ 4,	              semicolon,	 U04D1,	U04D0 ] };
   key <AE05> { [ 5,	              percent,	         U04D7,	U04D6 ] };
   key <AE06> { [ 6,	              colon,		 U04CC,	U04CB ] };
   key <AE07> { [ 7,	              question,	         U04FD,	U04FC ] };
   key <AE08> { [ 8,	              asterisk,	         U04C6, U04C5 ] };
   key <AE09> { [ 9,	              parenleft,	 U04B3,	U04B2 ] };
   key <AE10> { [ 0,	              parenright,	 U0499,	U0498 ] };
   key <AE11> { [ minus,	      underscore,	 U04CA,	U04C9 ] };
   key <AE12> { [ equal,	      plus,		 U049B,	U049A ] };
   key <AD01> { [ Cyrillic_shorti,   Cyrillic_SHORTI,   U04E5, U04E4 ] };
   key <AD02> { [ U0446,             U0426,             U04F3, U04F2 ] }; //Cyr_tse
   key <AD03> { [ Cyrillic_u,        Cyrillic_U,        U04F1, U04F0 ] };
   key <AD04> { [ Cyrillic_ka,       Cyrillic_KA,       U04D9, U04D8 ] };
   key <AD05> { [ Cyrillic_ie,       Cyrillic_IE,       U04A1, U04A0 ] };
   key <AD06> { [ Cyrillic_en,       Cyrillic_EN,       U050B, U050A ] };
   key <AD07> { [ Cyrillic_ghe,      Cyrillic_GHE,      U04A5, U04A4 ] };
   key <AD08> { [ Cyrillic_sha,      Cyrillic_SHA,      U0458, U0408 ] };
   key <AD09> { [ U0449,             U0429,             U04AB, U04AA ] }; //Cyr_shcha
   key <AD10> { [ Cyrillic_ze,       Cyrillic_ZE,       U0505, U0504 ] };
   key <AD11> { [ Cyrillic_ha,       Cyrillic_HA,       U0507, U0506 ] };
   key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, U04DF, U04DE ] };
   key <BKSL> { [ backslash,          slash,            U04B7, U04B6 ] };
   key <AC01> { [ Cyrillic_ef,       Cyrillic_EF,       U04BB, U04BA ] };
   key <AC02> { [ Cyrillic_yeru,     Cyrillic_YERU,     U04F9, U04F8 ] };
   key <AC03> { [ Cyrillic_ve,       Cyrillic_VE,       U04AF, U04AE ] };
   key <AC04> { [ Cyrillic_a,        Cyrillic_A,        U04D3, U04D2 ] };
   key <AC05> { [ Cyrillic_pe,       Cyrillic_PE,       U04C4, U04C3 ] };
   key <AC06> { [ Cyrillic_er,       Cyrillic_ER,       U0493, U0492 ] }; 
   key	<AC07> { [ Cyrillic_o,	      Cyrillic_O,	 U04E7, U04E6 ] };
   key <AC08> { [ Cyrillic_el,       Cyrillic_EL,       U0509, U0508 ] };
   key <AC09> { [ Cyrillic_de,       Cyrillic_DE,       U0501, U0500 ] };
   key <AC10> { [ Cyrillic_zhe,      Cyrillic_ZHE,      U0497, U0496 ] };
   key <AC11> { [ Cyrillic_e,        Cyrillic_E,        U04E9, U04E8 ] };
   key <AB01> { [ Cyrillic_ya,       Cyrillic_YA,       U04D5, U04D4 ] };
   key <AB02> { [ Cyrillic_che,      Cyrillic_CHE,      U04F5, U04F4 ] };
   key <AB03> { [ Cyrillic_es,       Cyrillic_ES,       U050D, U050C ] };
   key <AB04> { [ Cyrillic_em,       Cyrillic_EM,       U04C8, U04C7 ] };
   key <AB05> { [ Cyrillic_i,	      Cyrillic_I,        U0456, U0406 ] };
   key	<AB06> { [ Cyrillic_te,       Cyrillic_TE,       U050F, U050E ] };
   key	<AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, U0463, U0462 ] };
   key	<AB08> { [ Cyrillic_be,       Cyrillic_BE,       U0503, U0502 ]	};
   key	<AB09> { [ Cyrillic_yu,       Cyrillic_YU,       U04DD, U04DC ]	};
   key <AB10> { [ period,            comma,             U02BC, U003F ] };

   include "level3(ralt_switch)"
};

Раскладка Komi (Latin)

Можно добавить и латинскую коми раскладку. Скопируем файл kv из /usr/share/X11/xkb/symbols/, переименуем его, например в ko и заменим содержимое на нижеследующее:

// Komi language layout
// based on
// english standard keyboard
// FU-Lab (komi@fu-lab.ru)

default  partial alphanumeric_keys
  xkb_symbols "ko" {
  include "us(alt-intl)"
  name[Group1]= "Komi (Latin)";
  key.type[group1]="FOUR_LEVEL";
  key <AB01> { [   z,   Z,   			U2C6C,   U2C6B  ] };
  key <AB02> { [   x,   X,   			U00E7,   U00C7  ] };
  key <AB03> { [   c,   C,   			U0454,   U0404  ] };
  key <AB05> { [   b,   B,   			U0432,   U0412  ] };
  key <AB06> { [   n,   N,   			UA791,   UA790  ] };
  key <AB07> { [   m,   M,  			U044C,   U042C  ] };
  key <AB09> { [   U002E, U003E, U00B7, U2022  ] };
  key <AB10> { [   U002F, U003F, U2044, U2236  ] };
  key <AC01> { [   a, A, 			U00E4, U00C4] };
  key <AC02> { [   s,   S,   			U015F,   U015E  ] };
  key <AC03> { [   d,   D,   			U1E11,   U1E10  ] };
  key <AC04> { [   f, F, 			U00DF, U1E9E] };
  key <AC05> { [   g,   G,   			U01B6,   U01B5  ] };
  key <AC06> { [   h,   H,  			UA7A9,   UA7A8  ] };
  key <AC07> { [   j,   J,   			U0259,   U018F  ] };
  key <AC09> { [   l,   L,   			U013C,   U013B  ] };
  key <AC10> { [   semicolon,   colon,  	U0437,   U0417  ] };
  key <AC11> { [   U0027, U0022, U201E, U201C   ] };
  key <AD01> { [   q, Q, 			U00E5, U00C5] };
  key <AD03> { [   e, E, 			U00E9, U00C9] };
  key <AD05> { [   t,   T,   			U0163,   U0162  ] };
  key <AD07> { [   u, U, 			U00FC, U00DC] };
  key <AD09> { [   o, O, 			U00F6, U00D6] };
  key <AD10> { [   p,   P,   			U0292,   U01B7  ] };
  key <AD11> { [   bracketleft,   braceleft,  U0499,   U0498  ] };
  key <AD12> { [   bracketright,   braceright, U00AB, U00BB  ] };
  key <AE01> { [   1,  exclam,    U2032, U2033 ] };
  key <AE02> { [   2,  U0040,  U00A9, U00AE ] };
  key <AE03> { [	3,	 numbersign, U2116, U00A7 ] };
  key <AE04> { [   4,  U0024,     U20AC, U00A3 ] };
  key <AE05> { [   5,  U0025,     U2030, U2031 ] };
  key <AE08> { [   8,  U002A,     U00B0, U2103 ] };
  key <AE10> { [   0,  U0029,     U2012,  U2013 ] };
  key <AE11> { [  U002D, U005F, U2212, U2014 ] };
  key <AE12> { [  U003D, U002B, U2260, U00D7 ] };
  key <TLDE> { [  U0060,  U007E,         U2248,  U00B1  ] };
  key <BKSL> { [ backslash,   bar,            U2018,      U2019 ] };
  include "level3(ralt_switch)"
};

Сохраним файл и скопируем его обратно в папку /usr/share/X11/xkb/symbols/.

Теперь необходимо сделать новую раскладку клавиатуры доступной в настройках. Для этого открываем файл /usr/share/X11/xkb/rules/evdev.xml и добавляем туда следующую информацию о латинской коми раскладке (по алфавиту после кхмерской kh перед коми kv):

       <variant>
         <configItem>
           <name>kv_latin</name>
           <description>Komi (Latin)</description>
           <languageList>
             <iso639Id>kom</iso639Id>
           </languageList>
         </configItem>
       </variant>

После этого вносим дополнение в файл /usr/share/X11/xkb/rules/evdev.lst

 kh              Khmer (Cambodia)
 ko              Komi (Latin)
 kv              Komi
 kz              Kazakh

После сохранения файла, перезагружаем сеанс пользователя. В списках доступных раскладок появляется возможность выбора раскладки Komi (Latin).

Komilat linux.jpg