Использование экзотических юникодных символов в Xorg
Февраль 5, 2007 — kaktycИногда, когда пишешь пост, хочется вставить какой-нибудь символ, типа © или ™, литературных кавычек « и » или буквы с ударением ó, á, а лезть за ними в таблицу символов слишком долго. Можно конечно воспользоваться специальным апплетом, из которого легко копируются в буфер обмена нужные сиволы. Но тогда придётся отрывать руки от клавиатуры, брать мышь, клацать на символе, а потом вставлять его в нужное место.
В Xorg существует т.н. Compose key, с помощью которой легко вводить различные экзотические символы и диакритику.
Чтобы её включить, надо в /etc/X11/xorg.conf к XkbOptions дописать compose:rwin.
У меня секция InputDevice для клавиатуры выглядит так:
Section "InputDevice"
Identifier “Keyboard1″
Driver “kbd”
Option “AutoRepeat” “250 30″
Option “XkbModel” “pc105″
Option “XkbLayout” “us,ru”
Option “XkbVariant” “,winkeys”
Option “Xleds” “1 2 3″
Option “XkbOptions” “grp:shift_caps_toggle,grp_led:scroll,caps:internal,compose:rwin“
EndSection
Теперь Compose key висит на правой win-клавише. Для левой win-клавиши параметр соответственно будет lwin.
Примеры использования:
| Комбинация клавиш | Символ | Описание |
|---|---|---|
| Compose > > | » | Литературная правая кавычка |
| Compose < < | « | Литературная левая кавычка |
| Compose ‘ > | ‘ | Одиночная левая кавычка |
| Compose ‘ < | ’ | Одиночная правая кавычка |
| Compose ” > | “ | Двойная левая кавычка |
| Compose ” < | ” | Двойная правая кавычка |
| Compose - - . | – | Среднее тире |
| Compose - - - | — | Длинное тире |
| Compose o o | ° | Знак градуса |
Как видно, все комбинации легко запоминаются, т.к представляют собой мнемонические конструкции. Нет необходимости запоминать цифровые последовательности, достаточно представить, как выглядит символ и “сложить” его из имеющегося набора.
Список всех комбинаций находится в /usr/share/X11/locale/en_US.UTF-8/Compose
Если этого мало или хочется переопределить комбинации, необходимо отредактировать файл ~/.XCompose:
include "/usr/share/X11/locale/en_US.UTF-8/Compose"
<Multi_key> <period> <minus> : "…" U2026 # HORIZONTAL ELLIPSIS
<Multi_key> <bar> <minus> : “†” U2020 # DAGGER
<Multi_key> <bar> <equal> : “‡” U2021 # DOUBLE DAGGER
<Multi_key> <equal> <less> : "⇐" U21D0 # LEFTWARDS DOUBLE ARROW
<Multi_key> <equal> <asciicircum> : “⇑” U21D1 # UPWARDS DOUBLE ARROW
<Multi_key> <equal> <greater> : “⇒” U21D2 # RIGHTWARDS DOUBLE ARROW
<Multi_key> <equal> <v> : “⇓” U21D3 # DOWNWARDS DOUBLE ARROW
Для корректной работы понадобятся шрифты с поддержкой юникода и локаль UTF-8.
Февраль 7, 2007 at 13:10
ещё неплохо бы прописать в /etc/environment следующее:
GTK_IM_MODULE=xim
Тогда в GTK приложениях (типа того же фаерфокса) будут действовать такие же комбинации.