Я использовал Gnome долгое время, но предпочитал метод ввода vanilla X ( xim
), а не поведение GTK по умолчанию. Я просто установил GTK_IM_MODULE
и QT_IM_MODULE
переменные окружения на xim
, и у меня не было никаких проблем с конфигурацией с несколькими компоновками, Composeключами, пользовательскими расширениями ~/.XCompose
и misc:typo
расширениями типографики.
Недавний Gnome 3.6 полностью прикрутил ввод с клавиатуры, поставив недоделанную и глючную ibus
и навязав ее пользователям . Я просто не мог заставить клавиатуру работать так же хорошо, как раньше (даже с ibus
отключенным), и мне пришлось полностью отказаться от Gnome.
Теперь я использую простой оконный менеджер и настраиваю клавиатуру с помощью setxkbmap
. В то время как клавиатура снова работает хорошо, я не мог заставить клавиатуру работать везде. Compose работает в простых приложениях X11 ( xterm
), но не работает ни в GTK2, ни в GTK3, ни в приложениях Qt.
Я использую текущие версии Archlinux:
xorg-xinput 1.6.0
xorg-server 1.13.1
xf86-input-keyboard 1.6.2
gtk2 2.24.14
gtk3 3.6.4
qt 4.8.4
и включите Composeключ так:
setxkbmap ... -option 'compose:menu'
и экспорт GTK_IM_MODULE
, QT_IM_MODULE
переменные:
$ echo $GTK_IM_MODULE $QT_IM_MODULE
xim xim
Compose ключ правильно распознан X11:
$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
135 Multi_key
Работает нормально xterm
, последовательности из моего ~/.XCompose
включены. Это не работает ни в приложениях GTK, ни в Qt. Допустим, если я вхожу Compose ', то приложения эхом '
сразу, не дожидаясь третьего ключа в последовательности.
Теперь я полагаю, что что-то изменилось либо в Xorg (потому что Composeон не работает в приложениях Qt), либо в GTK и Qt. *_IM_MODULE
переменных сейчас недостаточно. Что еще требуется, чтобы современные GTK и Qt распознали xim
и их последовательности Compose?
PS Есть похожий (и без ответа) вопрос о том, что ключ Compose не работает в GTK . В отличие от аскера, я не ibus
установил.