如何让IBus不要忽视〜/ .XCompose?

由于UIM在从头开始安装Ubuntu 12.04之后不想玩球,我尝试了IBus,因为这是默认情况下Ubuntu附带的IME框架。

然而, ibus-table-compose是一个痛苦的使用,因为只需输入一个字符我需要按下组合键首先触发IBus,输入相应的组合序列,然后再次按下IBus组合键将其禁用。 而不是我宁愿保留XIM提供的撰写关键function,因为这需要更少的击键次数。

但问题是,当默认输入法设置为IBus并且IBus被停用以便(AIUI,因为我用ibus-daemon -xim启动它)它被绕过而支持XIM,设置在〜/ .XCompose似乎被IBus自己的版本覆盖了,所以例如Compose ca不会给我在我的主目录中的.XCompose文件中定义的± (a-ogonek),但是ǎ (a-hacek),如某些人定义的那样其他设置。

我已经习惯了自己的mnemnonics,所以有没有办法让我的系统使用我自己的〜/ .XCompose文件,默认输入法仍然设置为IBus,这样IBus仍然可以在OpenOffice和其他应用程序中工作不允许您使用上下文菜单选择输入法?

注意:这不是问题的重复我如何才能在ibus上进行组合?

正如@von所述,您现在不能将.XCompose与IBUS一起使用。

您可以使用uim作为输入法,它支持Unicode,包括传统XIM支持的GTK +和Qt immodules。

处理.XCompose并保持现有全局Compose的好方法是:

  1. 安装uim:

    sudo apt-get install uim

  2. 将其设为默认输入法:

    im-config -n uim

  3. 编辑.XCompose并将当前键盘区域设置(在我的情况下, en_US )添加为第一行

    include "/usr/share/X11/locale/en_US.UTF-8/Compose"

  4. 完成! 重新启动要开始获取.XCompose文件的程序。

已知的问题

Ubuntu Unity Dash永远不会产生一个cedilla。

其他发行

我现在在现代发行版上玩了一些.XCompose和Input Methods,同时尝试让Linux保持与Windows(TM)相同的键盘行为拉丁语言(输出ç而不是ć ,没有重音辅音等)。

我用这个指令创建了一个repo(对于Ubuntu和其他发行版): https : //github.com/raelgc/win_us_intl

但问题是,当默认输入法设置为IBus并且IBus被停用以便(AIUI,因为我用ibus-daemon -xim启动它)它被绕过而支持XIM,设置在〜/ .XCompose似乎被IBus自己的版本覆盖了,所以例如Compose ca不会给我在我的主目录中的.XCompose文件中定义的±(a-ogonek),但是ǎ(a-hacek),如某些人定义的那样其他设置。

在您可能编辑的某些配置文件的意义上,它似乎没有被其他一些设置定义。 看起来它是在gtkimcontextsimpleseqs.h文件中编译的,硬编码的。 进一步看来,在该文件中自定义gtk_compose_seqs_compact数组并添加自己的Compose键序列并不容易。 该表针对空间进行了优化,不易编辑。 所以“简单地改变源和重新编译”策略可能比我想象的更困难。

我已经习惯了自己的mnemnonics,所以有没有办法让我的系统使用我自己的〜/ .XCompose文件,默认输入法仍然设置为IBus,这样IBus仍然可以在OpenOffice和其他应用程序中工作不允许您使用上下文菜单选择输入法?

https://bugzilla.gnome.org/show_bug.cgi?id=155010上有一个错误报告,其中有一个补丁(他们说)可以自定义撰写表。 它仍然不会使用你的〜/ .XCompose文件,语法会有所不同,但它是一些东西。 但是我注意到有问题的bug仍然是开放的,所以我想这还没有进入正式版本。

由于丹尼斯威廉姆森在上面的评论中说它在16.04工作,我在这个新的18.04安装中测试了一个简短的.XCompose复制了我以前的16.04安装。

 # Import default rules from the system Compose file include "%L" # Custom definitions     : "ʁ" U0281 # LATIN LETTER SMALL CAPITAL INVERTED R 

然后我在终端中运行了ibus restart ,我可以输入ʁ。

  1. 全局(即对于/etc/environment Ubuntu)QT_IM_MODULEGTK_IM_MODULE变量(gnome最后不需要的)变为ibus ,将XMODIFIERS变为QT_IM_MODULE @im=ibus

2.α执行setxkbmap with -option选择compose键。 例如,使用正确的徽标键: 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方式) Wayland。

感谢您对fujiwarat的提示 ,根据此讨论进行了更新。