Коми раскладка клавиатуры для Linux Mint: различия между версиями

Материал из Wiki FU-Lab
Перейти к навигации Перейти к поиску
Строка 148: Строка 148:
  // Komi language layout
  // Komi language layout
  // based on
  // based on
  // english standard keyboard
  // russian standard keyboard
  // FU-Lab (komi@fu-lab.ru)
  // FU-Lab (komi@fu-lab.ru)
   
   

Версия от 22:34, 10 сентября 2020

Коми раскладку можно установить в 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

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

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

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

9. Выбирите коми раскладку из списка. Теперь Вы под коми флагом.

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

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

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

default  partial alphanumeric_keys 
 xkb_symbols "kv" {
 
   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):

   <layout>
     <configItem>
       <name>ko</name>
       
       <shortDescription>ko</shortDescription>
       <description>Komi (Latina)</description>
       <languageList>
         <iso639Id>kom</iso639Id>
       </languageList>
     </configItem>
   </layout>


После этого вносим дополнение в файл /usr/share/X11/xkb/rules/evdev.lst (по алфавиту между кхмерской и коми):

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

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

Если вы хотите добавить флажок для латинской коми раскладки, то можете это сделать аналогично тому, что было указано выше относительно коми раскладки. Мы используем в данной функции "скандинавский" коми флаг.

Komilat linux.jpg