跳转到内容

IBus

来自 Arch Linux 中文维基

这篇文章或章节的翻译质量不佳。

原因:Looks nothing like the structure of the English page.(在 Talk:IBus# 中讨论)

IBus ("Intelligent Input Bus") 是一个输入法框架,允许用户便捷地在不同的键盘布局中切换。当IBus框架和特定的输入法结合使用时,你就可以使用你的键盘输入键盘本身所不支持的非拉丁字母。(译者注:即在ArchLinux——其他Linux也类似,输入法需要和一个框架搭配使用,IBus就起到这个框架的作用)

安装

安装 ibus 软件包。

注意:GNOME自从3.6版本以来,就集成了IBus,并默认使用。所以如果你使用3.6版本以上的GNOME作为你的桌面环境,你可以跳过这一步。

输入法引擎

至少需要一种与所用语言相应的输入法。您可以在输入法#输入法列表查看IBus支持的输入法列表。部分可用的输入法如下,如您发现无法使用,请前往输入法#输入法列表查看并积极反馈以更新该内容

中文引擎

  • ibus-pinyin:一个智能中文输入法引擎,支持汉语拼音与注音符号。设计者为 Ibus 的主要作者,而且有许多的高级功能(如英文拼错修改)。
  • ibus-libpinyin:一个强大的智能中文输入引擎,基于 libpinyin,提供了比 ibus-pinyin 更强大的功能,支持动态调整字频、云输入,可以添加用户词典
  • ibus-rime:一个强大的智能中文输入法,支持拼音、注音或者没有音调的拼音、双拼、粤拼、中州韵、仓颉和五笔 86。
  • ibus-chewing:一个智能中文输入法引擎,支持注音符号,基于 libchewing

日文引擎

越南文引擎

  • ibus-bambooAUR:越南文输入法引擎,基于 Bamboo 引擎。
  • ibus-bogoAUR:越南文输入法引擎,基于 Bogo。(已停止开发)
  • ibus-unikey:用于输入越南字的输入法引擎。(已停止开发)

其他引擎

  • ibus-hangul:一个韩文输入法,基于 libhangul
  • ibus-table:一个支持查表型输入法的输入法引擎。
  • ibus-m17n:一个 m17n 输入法引擎,可以用 m17n-db 数据库中的输入法来输入许多语言。

查看所有可用的输入法:

$ pacman -Ss ^ibus-*

其他软包也供给于 AUR

环境适配

请按照如下示例设置环境变量

/etc/environment
GTK_IM_MODULE=ibus
QT_IM_MODULE=ibus
XMODIFIERS=@im=ibus

如果你希望当你登录时,IBus就启动,请使用以下命令创建一个自动启动条目:

 ibus-daemon -rxRd

这样,下次登录时,IBus就会随着用户会话而自动启动

提示:* ibus-autostartAUR 软件包提供了一个自动启动 条目来自动启动该服务
  • ibus-daemonAUR软件包提供了一个服务ibus@$DISPLAY.service,可以启用它来达到这个目的
  • KDE提供了一个Plasm形式的输入面板,可以作为IBus的前端,以提供更好的输入体验
    • 欲启动有输入面板的IBus,请在ibus-daemon命令中加入 --panel=/usr/lib/kimpanel-ibus-panel选项。(如果面板没有出现,你还可以尝试用--desktop=kde选项。要配置*输入面板*的宽度,请参见KDE UserBase WikiKDE#Widgets
    • ibus-autostart-kimpanelAUR软件包提供了一个可以自启动该功能的自动启动条目
译者注:KDE#Widgets这一章节由于KDE翻译的过时,无法链接到最新的中文章节,遂在此链接了原文Wiki的链接。如翻译有所跟进,请随时修改。

配置

你可能需要先设置系统的语言环境,请:

  1. 参见Locale来获取关于在系统中安装非拉丁文字体的帮助
  2. 参见字体#非拉丁文字获取可用的非拉丁字体的不完全列表

GNOME

GNOME默认使用IBus,因此你只需简单地打开设置>键盘>输入源并添加你所使用的键盘布局即可。

一些非拉丁语言(如简体中文)需要在GNOME Tweaks中启用显示拓展输入源选项

其他桌面环境

提示:对于Wayland环境,请参见WaylandDesktop

要启动IBus偏好设置窗口,你可以执行以下任一操作:

  • 右键IBus的托盘图标,选择偏好
  • 找到并启动IBus偏好设置的图形化应用程序;
  • 在终端中运行命令ibus-setup

在这个窗口,主要有两个重要的功能:一是下一个输入法的快捷键(建议你设置这个选项,来替代你的桌面环境所提供的快捷键);二是输入法页面,你可以在这里添加或者删除不同的键盘布局(建议你在此处操作,而不是在桌面环境所默认提供键盘布局管理器操作)

使用提示和技巧

moji 输入

IBus支持Emoji表情符号的输入。按下快捷键Super+.即可看到输入模式变为一个下划线e字符。接下来你可以输入符号或emoji的名称(例如:)face))并敲击Space键(空格键)渲染该符号。如果你对该结果表示满意,你可以按下回车来输入该符号并推出Emoji输入模式。或者你也可以再次按下空格键,来打开一个对话框,以便于你进一步选择你需要的符号。

Unicode输入

IBus支持输入复杂的Unicode字符。使用快捷键Ctrl+Shift+u即可看到输入模式变为一个下划线u字符。你可以输入Unicode代码并按SpaceEnter 来渲染并输入该字符

托盘图标颜色

IBus默认使用蓝色来显示当前正活跃的键盘布局(如EN)这个颜色值存储在gestting schema中,因此如果你希望修改他,请执行如下命令:

$ gsettings set org.freedesktop.ibus.panel xkb-icon-rgba 'COLOR'

其中,'COLOR'是字符串形式,遵循如下要求:

是一个RGBA值,即:

  1. 一个X11中的颜色名称
  2. 一个十六进制数值,如'#rrggbb',r,g,b分别是红、绿、蓝的十六进制数
  3. 一个如下格式的RGB数值:'rgb(r,g,b)'
  4. 一个RGBA颜色,应该如下格式:'rgba(r,g,b,a)',其中r,g,b都是[0,255]范围内的数值或[0%,100%]范围内的百分数,而a是[0,1]范围内的浮点数,以表示透明度
提示:你也可以使用dconf-editor来以一种更友好的方式修改设置模式(gsettings schema)
注意:这不适用于 GNOME 或存在KDE输入法面板的 KDE,因为它们都为 IBus 提供了自己的图标。

疑难解答

rxvt-unicode

如果有 ibus 与 rxvt-unicode 包的问题,以下的步骤应该能够解决。

将以下的两行代码添加到你的 ~/.Xresources 文件(可能不需要,先尝试,如果问题出现,再添加代码):

  URxvt.inputMethod: ibus
  URxvt.preeditType: OnTheSpot,None

然后用以下的命令启动Ibus:

  ibus-daemon --xim

如果 ibus-daemon 自动开启(如在 ~/.xinitrc~/.xsession 中),但是以前执行 ibus-daemon & 没有用 --xim 选项,确保先结束已打开的进程,再尝试新命令。

GTK 应用程序

有些用户在 GTK 应用程序下使用输入法时会因为无法找到 gtk.immodules 文件而出现问题。在 $HOME/.bashrc 中加入

 (gtk2) export GTK_IM_MODULE_FILE=/etc/gtk-2.0/gtk.immodules
 (gtk3) export GTK_IM_MODULE_FILE=/usr/lib/gtk-3.0/3.0.0/immodules.cache

应该会解决问题。

注意:如果你设置为 gtk2,那么你无法使用 gtk3 的应用程序比如gedit, 如果你设置为 gtk3,那么你无法使用 gtk2 的应用程序比如 xfce

中文输入

如果你在输入中文时遇到问题,检查你的 locale 设置。比如在香港,export LANG=zh_HK.utf8。

如需 ibus 随 gnome 启动,把这些加入 ~/.profile 后重启 gnome。

   export GTK_IM_MODULE=ibus
   export XMODIFIERS=@im=ibus
   export QT_IM_MODULE=ibus
   ibus-daemon -d -x

更详细的解决方案可以查看这里

在 gnome桌面 wayland 环境下,可能会出现部分软件无法切换中文输入,例如 QQ 等,需要安装Input Method Panel[1]这个 gnome-shell扩展解决.

如果安装的输入法无法调整候选词方向等,可以尝试IBus Tweaker[2]进行调整

LibreOffice

如果 IBus 确实已经启动,但是在 LibreOffice 里没有出现输入窗口,你需要在 ~/.bashrc 里加入这行:

export XMODIFIERS=@im=ibus

然后你需要用 "--xim -d" 参数来启动 ibus, 你可以在 ~/.xinitrc 中加入这行:

ibus-daemon --xim -d

但是可怕的是你必须在终端中启动 LibreOffice。

如果你使用 KDE 而上面的方法没用,而你也不介意在 GTK2 模式下运行 LibreOffice,安装 "libreoffice-gnome" 然后在 ~/.xprofile 中添加此行:

export OOO_FORCE_DESKTOP="gnome"

这会使 IBus 在 LibreOffice 正常使用,你也可以在任何地方启动 LibreOffice -- 而不只是在终端。

修改 Gnome-shell 中 ibus 候选框的字体和字号

通过扩展

Gnome 扩展中心提供了一些扩展来修改 ibus 界面,例如 Customize iBus,用户可以在图形界面中修改 ibus 字体、字号等等

通过自定义主题

很多人对 Gnome-shell 不能独立的设置 ibus 输入法的候选词字体和字号颇有微词,下面,介绍一种修改的办法。 首先,你需要安装一个 Gnome-Shell 主题,且激活它,然后你需要修改主题的 gnome-shell.css 文件。这个文件一般在目录 /usr/share/themes/主题名/gnome-shell/ 下。使用你喜欢的编辑器打开它,搜索 .candidate-popup-content 字段(如果没有就新建一个):

.candidate-popup-content {
}

然后根据需要添加以下两行(添加后应该是下框中的样子),通过本设置可以改变输入的字母的字体和字号:

.candidate-popup-content {
       /* 设置字体 */
	font-family: "Microsoft YaHei UI", serif,cantarell,sans-serif;
       /* 设置号 */
	font-size: 15px;
}

如果需要修改候选框的字体和字号,你需要搜索 .candidate-box 字段(如果没有就新建一个):

.candidate-box {
}

然后根据需要添加以下两行(添加后应该是下框中的样子),通过本设置可以改变输入的字母的字体和字号:

.candidate-box {
       /* 设置字体 */
	font-family: "Microsoft YaHei UI", serif,cantarell,sans-serif;
       /* 设置号 */
	font-size: 15px;
}

开启单行模式

ibus-libpinyin 可以在其设置界面中的“外观”-“显示风格”这一项选择“紧凑”,以此来开启单行模式。

注:ibus-libpinyin 在输入源和系统托盘中显示为“中文(智能拼音)”。