То, как я добавил новую Compose-последовательность (пересобрав метод ввода Latin-Plus) — было решением неудобным и негибким. Недавно же я узнал, как можно гораздо проще и быстрее задавать произвольные Compose-последовательности. Для этого, оказывается, достаточно отредактировать файл
~/.XCompose
. Об этом и пойдёт речь.1. Надо включить клавишу Compose (об этом я уже писал);
2. Маленькая хитрость. Вначале надо настроить систему так, чтобы библиотеки Qt и особенно GTK использовали метод ввода X Input Method (xim). Для этого в Debian можно установить
im-switch
, запустить im-switch -c
и выбрать default-xim
из списка. В других системах, видимо, надо присвоить переменным окружения GTK_IM_MODULE и QT_IM_MODULE значение xim
(например, поместить GTK_IM_MODULE=xim
в /etc/environment
). Если этот шаг пропустить, все последующие настройки на GTK приложения распространяться не будут (они будут использовать свой метод ввода). С Qt приложениями, если честно, я не экспериментировал, но видимо и они могут иметь отдельную настройку;3. После этого можно создать в домашнем каталоге файл
~/.XCompose
. Первой его строчкой можно включить все стандартные комбинации клавиш:include "/usr/share/X11/locale/en_US.UTF-8/Compose"
а затем можно и задать любые дополнительные последовательности (по образцу как в
/usr/share/X11/locale/en_US.UTF-8/Compose
). Например, <Multi_key> <period> <space> : "…" U2026 # HORIZONTAL ELLIPSIS, многоточие
<Multi_key> <apostrophe> <apostrophe> : "́" U0301 # ударение
Всё, в запускаемых теперь приложениях должны работать новые комбинации. В частности, при нажатии Compose + точка + пробел будет набираться знак многоточия (который отличается от трёх точек), а если после буквы нажать Compose + два раза апостроф — над буквой появится знак ударения.
Таким образом можно вводить любые сиволы из уникодной таблицы (найти нужный символ поможет
gnome-character-map
). Достаточно вставить этот символ в кавычки после описания последовательности. Можно таким образом создавать целые клавиатурные макросы. В частности, я попробовал повесить <a href="" ></a>
на сочетание Compose+a+h. Работает! Желающие могут взглянуть на мой файл ~/.XCompose
(кодировка UTF-8). Я добавил туда ещё немного математики и греческие буквы.Теперь можно прямо в e-mail писать: «∀ε>0 ∃δ>0 ∀x,|x-x₀|<δ : …» :)
Информацию я почерпнул из этих источников:
☙ International text support on Linux
☙ Compose key magic
Дополнение: в комментариях Shoorick дал ссылку на свой .XCompose, в котором есть дореволюционная буква «ѣ» и другая экзотичная кириллица, довольно удобные кавычки для русской раскладки, а также буквы для татарского, башкирского и казахского языков и набор разных стрелок (← → ↗ ↘ ⇐ ⇒ …): http://shoorick.ru/lj/txt/dotXCompose_as (стрелки, дореволюционные буквы и кавычки я заимствовал в свои настройки).