Я довго використовував 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встановив.