由于在从头安装 Ubuntu 12.04 后 UIM 不想继续运行,我尝试了 IBus,因为这是 Ubuntu 默认自带的 IME 框架。
然而,ibus-table-compose使用起来很麻烦,因为为了输入一个字符,我需要先按下组合键来触发 IBus,输入相应的组合序列,然后再次按下 IBus 组合键来禁用它。与此相反,我宁愿保留 XIM 提供的组合键功能,因为这样需要的击键次数更少。
但问题是,当默认输入法设置为 IBus 并且 IBus 被停用时(AIUI,因为我用ibus 守护进程——xim)它被绕过以支持 XIM,中的设置~/.XCompose
似乎被 IBus 自己的版本覆盖,因此例如撰写 ca没有给予A(a-ogonek)正如我在.XCompose我的主目录中的文件,但是ā(a-hacek),如其他一些设置所定义。
我已经非常习惯自己的助记符了,那么有没有办法让我的系统使用自己的~/.XCompose
文件,并将默认输入法仍然设置为 IBus,以便 IBus 仍然可以工作,例如在 OpenOffice 和其他不允许您通过上下文菜单选择输入法的应用程序中?
笔记:这不是问题的重复我怎样才能在 ibus 上重新运行 compose?
答案1
更新
ibus
现在可以使用.XCompose
文件:https://github.com/ibus/ibus/issues/1876
上一个答案(仍然有效)
正如@von 所说,.XCompose
几年内您都无法使用 IBUS。
如果你的发行版还比较旧,你可以使用uim
作为输入法,支持 Unicode、GTK+ 和 Qt 输入法模块以及旧版XIM
支持。
处理.XCompose
并保留现有全局 Compose 的一个好方法是:
安装 uim:
sudo apt-get install uim
将其设为默认输入法:
im-config -n uim
编辑您的
.XCompose
并添加当前键盘区域设置(在我的情况下en_US
为)作为第一行:include "/usr/share/X11/locale/en_US.UTF-8/Compose"
完成!重新启动您想要启动的程序以获取
.XCompose
文件。
已知的问题
Ubuntu Unity Dash 永远不会产生下划线符号。
其他发行版
.XCompose
最近,我尝试了一下现代发行版上的输入法,同时尝试让 Linux 在拉丁语言方面保持与 Windows(TM) 相同的键盘行为(输出ç
而不是ć
,没有重音辅音,等等)。
我根据以下说明创建了一个 repo(适用于 Ubuntu 和其他发行版):https://github.com/raelgc/win_us_intl
答案2
由于 Dennis Williamson 在上面的评论中说它在 16.04 中有效,因此我使用.XCompose
从我之前的 16.04 安装中复制的简短版本在全新的 18.04 安装中进行了测试。
# Import default rules from the system Compose file
include "%L"
# Custom definitions
<Multi_key> <R> <R> <R> : "ʁ" U0281 # LATIN LETTER SMALL CAPITAL INVERTED R
ibus restart
然后我在终端中运行并可以输入ʁ。
答案3
但问题是,当默认输入法设置为 IBus 并且 IBus 被停用时(AIUI,因为我用 ibus-daemon --xim 启动它),它会被绕过而使用 XIM,~/.XCompose 中的设置似乎被 IBus 自己的版本覆盖,所以例如 Compose ca 不会给出我在主目录中的 .XCompose 文件中定义的 ą(a-ogonek),而是给出其他一些设置定义的 ǎ(a-hacek)。
看起来它不是由其他设置定义的,就像您可能编辑的某些配置文件一样。看起来它是在文件中编译的,硬编码的gtkimcontextsimpleseqs.h
。进一步看来,自定义该文件中的数组并添加您自己的 Compose 键序列并不容易gtk_compose_seqs_compact
。该表针对空间进行了优化,不易编辑。因此,“只需更改源代码并重新编译”策略可能比我想象的更难。
我已经非常习惯自己的助记符了,那么有没有办法让我的系统使用自己的 ~/.XCompose 文件,并将默认输入法仍设置为 IBus,以便 IBus 仍然可以工作,例如在 OpenOffice 和其他不允许您通过上下文菜单选择输入法的应用程序中?
有一个错误报告https://bugzilla.gnome.org/show_bug.cgi?id=155010它有一个补丁(据说)可以自定义组合表。它仍然不会使用您的 ~/.XCompose 文件,语法也会有所不同,但总归是件好事。但我注意到,问题中的错误仍然存在,所以我猜这还没有进入正式版本。
答案4
- 全局设置(例如对于 Ubuntu
/etc/environment
)这QT_IM_MODULE
,GTK_IM_MODULE
(最后一个对于 gnome 来说是不需要的)到ibus
,以及XMODIFIERS
到@im=ibus
。
2.α 执行setxkbmap
以-option
选择撰写键。例如,使用右徽标键:setxkbmap -option compose:rwin
。这将在重启时被覆盖。
2.β 要在重启时保留设置,请/etc/X11/xorg.conf.d/00-keyboard.conf
使用以下内容创建:
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbOptions" "compose:rwin"
EndSection
经过测试,适用于 X11 和(至少是setxkbmap
这样的)韦兰。