IBus (简体中文)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

IBus ("Intelligent Input Bus") 是一个输入法框架,一个输入非英语字符的系统。IBus 的功能与 SCIMUim 类似。

安装

安装 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

初始安装

现在运行 ibus-setup 的初始程序(当要用 Ibus 的用户):

$ ibus-setup

它会启动后台程序,并给你这条信息:

IBus has been started! If you cannot use IBus, please add below lines in $HOME/.bashrc, and relogin your desktop.
(译:IBus 已启动!如果您还不能用 Ibus,请您先将以下的三行代码加到 $HOME/.bashrc,再重新登录。)
  export GTK_IM_MODULE=ibus
  export XMODIFIERS=@im=ibus
  export QT_IM_MODULE=ibus
注意: 虽然 Ibus 使用一个后台程序,但是它不是被 systemd 管理的那种后台程序:普通用户也可以运行,当你登录时,它会启动。
注意: 但是,如果 ibus 尚未启动,先将那些"export"的代码复制到$HOME/.xprofile,并将这行代码加到该文件:"ibus-daemon -x -d",再重新登录。

之后,你会看到一张设置屏幕。Ibus 运行时,可以随时访问该屏幕,在系统托盘中的 Ibus 图符点击右键,选择 "Preferences"(选项)即可。

如果 Ibus 在 Qt、KDE 应用程序中不工作,保证 ibus-qt 软件库已安装,并在 Qt 设置编辑器中将 Ibus 制定为默认输入法引擎:

$ qtconfig-qt4

在 "Interface" -> "Default Input Method" (译:“界面”->“默认输入法引擎”) 中,选择 "ibus",而不是 "xim"。

GNOME

GNOME 默认使用 IBus, 所以你只需要安装你需要的输入法引擎(但是 ibus 必须安装),并打开设置界面,通过“键盘”中的“输入源”添加。在你添加至少两个输入源后,GNOME 会在托盘中显示输入选择图标。如果如此操作之后你没有成功,很可能你没有完成 locale-gen。默认切换输入法的快捷键是 Super+Space; 请忽视 ibus-setup 中的添加方法,这不会真的添加新的输入法,且 ibus-setup 中的配置不会对输入法生效。下面是一个安装输入法的例子:

$ pacman -S ibus
$ pacman -S ibus-libpinyin

ibus-libpinyin 是一款优秀的智能中文语音输入法,提供了丰富的功能。

配置

注意: 如果你想输入汉、日、韩、越南文字,需要安装东亚字体

默认的 "General"(常规)设置应该可以用,但是最好点击 "Input Methods"(输入法),在下拉式列表框中选择你的输入法,点击 "Add"(添加)。 Ibus 配置好后,可以按 Ctrl+Space 使用(按多次为在已安装语言之间切换)。在每个窗口当中,Ibus 会记住你所用的输入法,所以每个新打开的窗口都需要重新启动。 你可以置换这个特性,在系统托盘的图符上点击右键,选择 "Preferences"(首选项),然后点击 "Advanced"(高级)的标签即可。

注意: IBus 默认覆盖 Xmodmap 的设置。你可以禁用这个特性,在 "references"(首选项)中点击 "Advanced"(高级),勾选 "Use system keyboard layout" 选项。

疑难解答

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

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

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-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 在输入源和系统托盘中显示为“中文(智能拼音)”。