如何使IBus不忽略〜/ .XCompose?


14

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

但是,ibus-table-compose很难使用,因为仅输入一个字符时,我需要先按组合键以触发IBus,输入相应的组合序列,然后再次按IBus组合键以将其禁用。取而代之的是,我想保留XIM提供的撰写键功能,因为这需要较少的击键。

问题是,但是,当默认输入法设置为IBus且IBus被禁用时,(AIUI,因为我从ibus-daemon --xim启动它),它被绕过了XIM,而〜/中的设置.XCompose似乎被下iBus自己的版本被覆盖,所以如撰写CA不给一个(A-反尾形符),因为我在定义.XCompose在我的主目录文件,但ǎ(A-HACEK),如一些定义其他设置。

我已经非常习惯于自己的记忆功能,因此有什么方法可以使我的系统使用我自己的〜/ .XCompose文件,而默认输入法仍设置为IBus,以便IBus仍然可以工作,例如在OpenOffice和其他应用程序中不允许您使用上下文菜单选择输入法?

注意:这不是问题的重复,如何在ibus上重新编写?


这个问题似乎被放弃了,没有答案。如果您解决了该问题,请发布一个解释其解决方法的答案(不仅允许回答您自己的问题,而且在没有其他答案可以解决此问题时鼓励您回答)。如果问题不再适用,您可以自愿将其删除/关闭。
埃里克·卡瓦略

Answers:


6

如@von所述,您.XCompose目前无法将IBUS与IBUS一起使用。

您可以将其uim用作输入法,它支持Unicode,具有旧版XIM支持的GTK +和Qt模块。

处理您的.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这些天,我在现代发行版中使用了“ 输入法”,同时尝试使Linux保持与拉丁语的Windows™相同的键盘行为(输出ç代替ć,没有重音辅音,等等)。

我按照以下说明创建了一个仓库(也适用于Ubuntu和其他发行版):https : //github.com/raelgc/win_us_intl


4
“您现在不能将IX.ose与IBUS一起使用”到底是什么意思?有什么变化?这是Ubuntu本身的变化还是Ubuntu使用的某些变化?
andrybak

@AndreyRybak IBUS当时是最新的XIMuim并且尚不支持.XCompose文件(并且我不确定是否会更改,因为一年后仍然保持不变)。不,不是特定于Ubuntu的。
Rael Gugelmin Cunha 2015年

它似乎在16.04(与Gnome)一起为我工作。
暂停,直到另行通知。

@DennisWilliamson您的意思是IBUS和.XCompose?只是用手指交叉,我得到上述答案后的四年就解决了。
Rael Gugelmin Cunha

1
是。我有一些~/.Xcompose工作条目。我添加了一堆新条目,它们没有起作用,然后我起作用了,ibus restart所有新条目都起作用了。
暂停,直到另行通知。

1

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

在某些可能要编辑的配置文件的意义上,它似乎不是由某些其他设置定义的。看来它已被编译,并在文件中进行了硬编码gtkimcontextsimpleseqs.h。进一步看来,gtk_compose_seqs_compact在该文件中自定义数组并添加自己的Compose键序列并不容易。该表针对空间进行了优化,而不是易于编辑。因此,“仅更改源代码并重新编译”策略可能比我想的要困难。

我已经非常习惯于自己的记忆功能,因此有什么方法可以使我的系统使用我自己的〜/ .XCompose文件,并且默认输入法仍设置为IBus,以便IBus仍然可以在OpenOffice和其他应用程序中使用不允许您使用上下文菜单选择输入法?

https://bugzilla.gnome.org/show_bug.cgi?id=155010上有一个错误报告,该报告具有一个补丁程序(他们说),可以使自定义组合表成为可能。它仍然不会使用您的〜/ .XCompose文件,并且语法会有所不同,但这是有的。但是我注意到有问题的bug仍然是开放的,所以我想这还没有进入正式版本。


1

由于丹尼斯·威廉姆森(Dennis Williamson)在上面的评论中说它可以在16.04中工作,因此我在此全新的18.04安装中进行了测试,并.XCompose复制了我之前的16.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在终端上跑了,可以输入ʁ。


0
  1. 全局设置(即在Ubuntu中/etc/environmentQT_IM_MODULEGTK_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和Wayland (至少在此setxkbmap情况下)

感谢您对fujiwarat的提示此讨论会进行更新。


1
虽然更改系统范围的配置很疯狂。只需将2alpha和这些环境变量放在您使用的.xprofile或.xinitrc中。
enigmaticPhysicist

@enigmaticPhysicist err…大声笑,什么?让我看不见-您首先制作了我的答案的精简版本,然后我的版本被否决了,以补充您的答案没有的内容(如何在重新启动家伙上保留配置?),这是可选的(如您所愿)可以通过枚举和解释看到)
Hi-Angel

有人不能接受批评...嘿,你有橙色的头发吗?
enigmaticPhysicist

@enigmaticPhysicist大声笑您没有批评。您复制了我的答案,然后投票否决了我的答案。如果您不发表评论,它甚至可以奏效,所以我注意到了,并标记了您的答案。至于您的评论内容-我已经回答。抱歉,我没有得到–橘色的笑话是什么?
Hi-Angel'3
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.