xkb

Материал из Xgu.ru

Перейти к: навигация, поиск

xkb — расширение X Window System, отвечающее за клавиатуру.

Основные возможности xkb:

  • расширенная поддержка модификаторов клавиш (ctrl, shift и т.д.);
  • улучшенная работа с группами клавиш;
  • обработка индикаторов клавиатуры (caps, scroll, num) и звукового сигнала;
  • привязка определённых действий к клавишам.

Чаще всего пользователь X Window System встречается с настройкой xkb при настройке поддержки русского ввода.

Содержание

[править] Быстрый старт

Добавить русский язык с переключением по caps lock, индикацией scroll lock и compose-режимом по alt:

setxkbmap -layout "us,ru"
setxkbmap -option "grp:caps_toggle,grp_led:scroll,compose:ralt"

или

wget -qO- xgu.ru/xkb | sh

[править] Примеры

Раскладки.

Переключаться между двумя раскладками: американской (us) и русской (ru).

%$ setxkbmap -layout "us,ru"

Опции.

Переключение между двумя раскладками выполнять с помощью комбинации клавиш Ctrl-Shift; использовать лампочку Scroll Lock в качестве индикатора раскладки:

%# setxkbmap -option "grp:ctrl_shift_toggle,grp_led:scroll"

Или, для использования Caps Lock:

%# setxkbmap -option "grp:caps_toggle,grp_led:scroll"

Использовать в качестве клавиши Compose правый alt:

%# setxkbmap -option "compose:ralt"

Или вместе:

%# setxkbmap -option "grp:caps_toggle,grp_led:scroll,compose:ralt"

Поменять местами ctrl и caps (что особенно интересно пользователям Emacs) можно следующим образом:

 setxkbmap -option grp:swapcaps

Другие аналогичные комбинации клавиш можно посмотреть здесь:

 grep -E "(ctrl|caps):" /usr/share/X11/xkb/rules/base.lst

Если для переключения языка используется caps и хочется в то же время поменять местами ctrl и caps, то можно перенести переключение языка на какую-то другую комбинацию клавиш, например, на alt-caps:

 setxkbmap -option grp:alt_caps_toggle

Или правый ctrl:

 setxkbmap -option grp:rctrl_toggle

Итого полная комбинация опций будет выглядеть следующим образом:

 setxkbmap -option "grp:rctrl_toggle,grp_led:scroll,compose:ralt,grp:swapcaps"

[править] Compose

Клавиша compose используется тогда, когда вам нужно набрать относительно редко использующийся символ, которого нет ни в основной, ни в дополнительной раскладках, но которому в соответствие поставлено определённая последовательность символов.

Наиболее часто это используется, если вам периодически требуется вставлять в текст символы, отсутствующие в английском алфавите (и, соответственно, в английской раскладке), но не настолько часто, чтобы переходить на другую раскладку.

Как минимум, compose может потребоваться, если вы хотите ставить настоящее тире — красивое, или типографские «кавычки-ёлочки».

Набираются compose-последовательности так:

  • нужно нажать compose-клавишу и отпустить её. После этого начать набирать последовательность. Символы на экране появляться не будут, результат появится только тогда, когда последовательность будет набрана полностью.


Примеры последовательностей:

  • «  <<
  •  » >>
  • e=
  • --
  • ß ss
  • ° ^0
  • ² ^2
  • è `e
  • ü "u

Другие последовательности: [1]

[править] Использование shift третьего уровня

Для примера выполним совмещение русской, дореволюционной русской и украинской раскладок в одной русской раскладке. Будем использовать shift уровня 3. В качестве такой клавиши будем использовать, например, клавишу MENU.

При нажатии этой клавиши и какой-то русской клавиши из перечисленных ниже, будет вводиться соответствующий символ:

  • Ъъ — Її
  • Ыы — Іі
  • Ээ — Єє
  • Ьь — Ѣѣ
  • Фф — Ѳѳ

Для включения shift уровня 3 нужно в файле /etc/X11/xorg.conf указать опцию lv3:

    Option         "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll,compose:ralt,lv3:menu_switch"

Изменения, которые сделаны в файле symbols/ru:

--- /usr/share/X11/xkb/symbols/ru       2008-07-04 14:56:33.000000000 +0300
+++ /usr/share/X11/xkb/symbols/ru.ORIG  2008-07-04 13:33:13.000000000 +0300
@@ -52,26 +52,14 @@
     key        <AD04> {        [     Cyrillic_ka,     Cyrillic_KA      ]       };
     key        <AD05> {        [     Cyrillic_ie,     Cyrillic_IE      ]       };
     key        <AD06> {        [     Cyrillic_en,     Cyrillic_EN      ]       };
-    key        <AD07> {        [    
-                          Cyrillic_ghe,    Cyrillic_GHE,
-                          Ukrainian_ghe_with_upturn,    Ukrainian_GHE_WITH_UPTURN
-                    ]  };
+    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      ]       };
-    key        <AD12> {        [
-                     Cyrillic_hardsign,Cyrillic_HARDSIGN,
-                          Ukrainian_yi,    Ukrainian_YI
-                    ]  };
-    key        <AC01> {        [     
-                          Cyrillic_ef,     Cyrillic_EF,
-                                U0473,           U0472
-                    ]  };
-    key        <AC02> {        [   
-                        Cyrillic_yeru,   Cyrillic_YERU,
-                          Ukrainian_i,     Ukrainian_I
-                    ]  };
+    key        <AD12> {        [Cyrillic_hardsign,Cyrillic_HARDSIGN    ]       };
+    key        <AC01> {        [     Cyrillic_ef,     Cyrillic_EF      ]       };
+    key        <AC02> {        [   Cyrillic_yeru,   Cyrillic_YERU      ]       };
     key        <AC03> {        [     Cyrillic_ve,     Cyrillic_VE      ]       };
     key        <AC04> {        [      Cyrillic_a,      Cyrillic_A      ]       };
     key        <AC05> {        [     Cyrillic_pe,     Cyrillic_PE      ]       };
@@ -80,20 +68,14 @@
     key        <AC08> {        [     Cyrillic_el,     Cyrillic_EL      ]       };
     key        <AC09> {        [     Cyrillic_de,     Cyrillic_DE      ]       };
     key        <AC10> {        [    Cyrillic_zhe,    Cyrillic_ZHE      ]       };
-    key        <AC11> {        [      
-                          Cyrillic_e,  Cyrillic_E,
-                        Ukrainian_ie,    Ukrainian_IE
-                    ]  };
+    key        <AC11> {        [      Cyrillic_e,      Cyrillic_E      ]       };
     key        <AB01> {        [     Cyrillic_ya,     Cyrillic_YA      ]       };
     key        <AB02> {        [    Cyrillic_che,    Cyrillic_CHE      ]       };
     key        <AB03> {        [     Cyrillic_es,     Cyrillic_ES      ]       };
     key        <AB04> {        [     Cyrillic_em,     Cyrillic_EM      ]       };
     key        <AB05> {        [      Cyrillic_i,      Cyrillic_I      ]       };
     key        <AB06> {        [     Cyrillic_te,     Cyrillic_TE      ]       };
-    key        <AB07> {        [
-                    Cyrillic_softsign,Cyrillic_SOFTSIGN,
-                                U0463,         U0462
-                    ]  };
+    key        <AB07> {        [Cyrillic_softsign,Cyrillic_SOFTSIGN    ]       };
     key        <AB08> {        [     Cyrillic_be,     Cyrillic_BE      ]       };
     key        <AB09> {        [     Cyrillic_yu,     Cyrillic_YU      ]       };

[править] См. также

[править] Дополнительная информация

Источник — «http://5.9.243.178:81/wiki/xkb»
На других языках