Использование экзотических юникодных символов в Xorg

Иногда, когда пишешь пост, хочется вставить какой-нибудь символ, типа © или ™, литературных кавычек « и » или буквы с ударением ó, á, а лезть за ними в таблицу символов слишком долго. Можно конечно воспользоваться специальным апплетом, из которого легко копируются в буфер обмена нужные сиволы. Но тогда придётся отрывать руки от клавиатуры, брать мышь, клацать на символе, а потом вставлять его в нужное место.
В 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.

Реклама
Опубликовано в Linux, Tips&Tricks. 14 комментариев »

комментариев 14 to “Использование экзотических юникодных символов в Xorg”

  1. navi Says:

    ещё неплохо бы прописать в /etc/environment следующее:
    GTK_IM_MODULE=xim
    Тогда в GTK приложениях (типа того же фаерфокса) будут действовать такие же комбинации.

  2. lal Says:

    спасибо больше)

  3. Вадим Says:

    В том же гноме можно в настройках клавиатуры включить ввод дополнительных типографских символов. Вводятся легкозапоминающимися сочетаниями клавиш, например, Alt+< — «. Вместо Alt можно свою клавишу перехода на третий уровень раскладки настроить.

    Эта штука характерна не только для гнома, но и для иксов вообще.

    Можно настроить, например, так:
    XKBMODEL="pc105"
    XKBLAYOUT="us,ru"
    XKBVARIANT=","
    XKBOPTIONS="grp:lalt_lshift_toggle,misc:typo,lv3:ralt_switch"

  4. Вадим Says:

    Забыл добавить. Те строчки вводятся в /etc/default/keyboard (это в Debian/Ubuntu).

    А xorg.conf разве в каких-то дистрибутивах ещё используется?

  5. kaktyc Says:

    Как ни странно, но используется. В тех же Debian/Ubuntu можно внести туда свои настройки и они будут применены. Xorg использует различные методы конфигурации (в порядке уменьшения приоритета): параметры командной строки, переменные окружения, содержимое xorg.conf, содержимое файлов в xorg.conf.d, авто-определение и fallback-значения. Настройки можно производить любым способом, но в случае одинаковых параметров будут применяться значения из метода конфигурации с более высоким приоритетом.

  6. kaktyc Says:

    Хм, странно, что этот пост вылез в RSS.

  7. Delvin Says:

    lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description: Ubuntu 13.10
    Release: 13.10
    Codename: saucy
    Обложка LXDE+OpenBox
    В xorg.conf отсутствует ВСЕ кроме monitor, device и screen
    при попытке вставить хоть какую секцию срывает второй экран и растягивает окно на оба:(
    а если дергать /etc/default/keybord, то слетает русский, т.е.: светик «скролл» загорается, а ввода нет

  8. kaktyc Says:

    Delvin, это старый пост, теперь все делается гораздо проще, особенно в Ubuntu.
    System Settings → Keyboard → Layout Settings → Options → Compose key position

  9. Delvin Says:

    Кактус, спасибо за ответ. Тут вот какая проблема: В настройках LXDE (у меня Lubuntu) даже близко нет ничего о Compose :( На форумах тоже ничего дельного нет :(

  10. kaktyc Says:

    В автозапуск сессии можно добавить

    setxkbmap -option "compose:rwin"
  11. Delvin Says:

    Увы, не помогло:( Буду пробовать воевать с Хсами, чтоб не было конфликта с xrandr, ибо думаю, что через xorg.conf будет работать. В Gentoo же работало;)

  12. kaktyc Says:

    Настройки клавиатуры никак не должны влиять на xrandr.
    Я попробовал setxkbmap в LXDE в 14.04 — работает.

  13. Delvin Says:

    Да нет, дело не в настройках клавиатуры как таковой, а просто ВООБЩЕ изменения файла xorg.conf. «Пляски с бубном были» по настройке разрешений на 2 экрана в обратной последовательности (справа налево) и теперь такая «беда». Я не смог отловить (пока) «виновника» этого :( Под Gentoo я всегда «сидел» в IceWM и работали (правда в другой конфе) мониторы и клавиатура прекрасно настраиваясь именно средствами Хсов (а там других и нет), а здесь…
    Нашел вот это: http://habrahabr.ru/post/80091/
    ничего не дало:(
    И еще раз спасибо!
    P.S: Буду рыть дальше. Как найду решение, отпишусь.
    P.P.S: Это компьютер жены, так что поставить Gentoo не могу (на моем сейчас FreeBSD+KDE)

  14. kaktyc Says:

    Я в xorg.conf уже давно ничего не настраиваю (у меня на текущей системе его вообще нет). Вся конфигурация осуществляется динамически. Для настройки мониторов нужно использовать xrandr (GUI для него — arandr как раз впишется в LXDE). Надеюсь поможет.


Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: