sas*_*nin 17 xorg gtk keyboard-layout qt compose-key
我使用 Gnome 很长时间了,但我更喜欢 vanilla X 输入法 ( xim
) 而不是默认的 GTK 行为。我只设置GTK_IM_MODULE
和QT_IM_MODULE
环境变量xim
,并没有与多个布局配置,任何问题的Compose关键,自定义~/.XCompose
和misc:typo
排版扩展。
最近的 Gnome 3.6 通过运送一个半生不熟的马车ibus
并将其强加给用户来完全搞砸键盘输入。我只是无法让键盘像以前一样工作(即使ibus
禁用),不得不完全放弃 Gnome。
现在我使用一个简单的窗口管理器,并使用setxkbmap
. 虽然键盘再次正常工作,但我无法让 Compose 键在任何地方都能正常工作。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
Run Code Online (Sandbox Code Playgroud)
并启用这样的Compose密钥:
setxkbmap ... -option 'compose:menu'
Run Code Online (Sandbox Code Playgroud)
和 export GTK_IM_MODULE
,QT_IM_MODULE
变量:
$ echo $GTK_IM_MODULE $QT_IM_MODULE
xim xim
Run Code Online (Sandbox Code Playgroud)
Compose X11 正确识别密钥:
$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
135 Multi_key
Run Code Online (Sandbox Code Playgroud)
它在xterm
我~/.XCompose
包括的序列中正常工作。它不适用于 GTK 或 Qt 应用程序。比方说,如果我输入Compose ',那么应用程序会'
立即回显,而无需等待序列中的第三个键。
现在我想在 Xorg(因为Compose在 Qt 应用程序中也不起作用)或在 GTK和Qt 中发生了一些变化。*_IM_MODULE
现在变量还不够。使现代 GTK 和 Qt 识别xim
及其 Compose 序列还需要什么?
PS 有一个关于Compose key not working in GTK的类似(且未回答)问题。与提问者不同,我没有ibus
安装。
sas*_*nin 10
找到了适用于 GTK 应用程序(但不适用于 Qt)的解决方案。一个需要设置
XMODIFIERS="@im=none"
Run Code Online (Sandbox Code Playgroud)
让 X11 处理死键。感谢@PabloSaatxaga的回答。
归档时间: |
|
查看次数: |
4056 次 |
最近记录: |