智能通用输入法

来自 ArchWiki
(重定向自 Scim

此条目或章节内容已过时。

原因: 内容来自 2012 年或更早。(在Talk:Smart Common Input Method中讨论)

SCIM 是由苏哲(或 James Su)在 2001 年左右开发的输入法框架,类似于 IBusUim

其既定目标是

  • 作为当前可用输入法库的统一前端。目前已提供 uimm17n 库的绑定。
  • 作为 IIIMF 输入法框架的语言引擎。
  • 尽可能提供多的原生 IMEngines
  • 支持尽可能多的输入法协议/接口。
  • 支持尽可能多的操作系统。

安装

安装 scim 软件包。

输入法引擎

目前,SCIM 项目拥有广泛的输入法(有些可能需要其他库),涵盖 30 多种语言,包括(简体/繁体)中文、日语、韩语和许多欧洲语言。以下是一些示例(更多信息可以在这里找到)

uim 可以通过 scim-uimAUR 作为 SCIM 的引擎使用。

配置

正确配置 SCIM 需要以下三个步骤

  1. 导出一些环境变量来指定使用的输入法。
  2. 修改 locale 相关文件。
  3. 最后,启动 SCIM。

一个简单的场景

如果您只是需要 SCIM 在任何桌面环境窗口管理器中紧急工作,请将以下行放入您的 xprofile 中,然后重启

~/.xprofile
export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE="scim"
export QT_IM_MODULE="scim"
scim -d

这些行可以添加到启动时运行的其他文件中,例如:/etc/profile~/.profile~/.xinitrc~/.config/openbox/autostart(当使用 Openbox 时)。

注意: 第一个环境变量与某些(不常见的)选项(如 XMODIFIERS=urxvt)冲突。

这是一个非常基本的示例,用于配置 XIM (X 输入法) 以与 SCIM 一起工作。不建议使用 XIM,因为它有一些限制。

GTK 注意事项

如果您使用 GNOME,请编辑 /etc/gtk-2.0/gtk.immodules,在末尾添加以下内容

/etc/gtk-2.0/gtk.immodules
"/usr/lib/gtk-2.0/immodules/im-scim.so"
"scim" "SCIM Input Method" "scim" "/usr/share/locale" "ja:ko:zh"

如果您的 LC_CTYPELANGen_US.UTF-8,请将 ja:ko:zh 更改为 en:ja:ko:zh

进行这些更改后,请务必重启。您可以通过执行 gtk-query-immodules-2.0 找出系统上可用的输入法模块。

如果 SCIM 在这些更改后仍无法与 GTK 应用程序一起工作,请检查 GTK_IM_MODULE_FILE 环境变量是否设置为 /etc/gtk-2.0/gtk.immodules

您可以使用另一个文件(在本例中为 ~/.immodules),其中包含有关输入法模块的必要信息,方法是在您在上面的章节中选择的文件中添加以下行。

gtk-query-immodules-2.0 > ~/.immodules
export GTK_IM_MODULE_FILE=~/.immodules

Locale 相关文件

如果您的键盘 locale 不是 en_US.UTF-8 (或 en_US.utf8),您必须根据以下示例修改 ~/.scim/global (或 /etc/scim/global 以将这些设置应用于所有用户)的第一行

/SupportedUnicodeLocales = en_US.UTF-8,de_CH.UTF-8

并将您的 de_CH.UTF-8 替换为您的 locale。

注意: 您的 locale 必须是激活状态(即,您必须在 /etc/locale-gen 中取消注释它,然后以 root 身份执行 locale-gen并且必须受 SCIM 支持(大多数 *.UTF-8 locale 都是如此)。

如果您不知道当前激活了哪些 locale,您可以检查它

locale -a

(或者您可以查看 /etc/locale.gen)。

Locale 相关的进一步故障排除

如果在安装 SCIM 和必要的输入表后,SCIM 仍然无法工作,那么您需要在 /etc/profile 中将 LC_CTYPE 环境变量设置为您计划使用的 locale。只需为 LC_CTYPE 创建一个条目,例如

LC_CTYPE="zh_CN.UTF-8"              # if you want to type simplified chinese

最后,您需要使用 locale-gen 命令生成 locale。

执行 SCIM

SCIM 可以通过执行 scim 命令来运行,尽管通常以守护进程方式启动 SCIM

scim -d

您可以将上述命令放在脚本文件中并自动执行它。常用位置是 ~/.xinitrc(在环境变量之后和 DE/WM 之前)、/etc/profile(在环境变量之后)或 ~/.config/openbox/autostart(在环境变量之后,可能在一些 sleep 命令之后)。

GNOME 注意事项

如果您使用 GNOME 作为桌面环境,则上述命令似乎无法按预期工作。相反,您必须执行以下操作

 scim -f x11 -c simple -d

如果您希望 SCIM 在启动时自动启动,请转到 系统 > 首选项 > 会话 并使用上面的行创建一个新命令。

注意: 如果您使用 scim -f socket -c socket -d 行,您的 SCIM 配置将无法修改。

KDE 注意事项

如果您使用 KDE 作为桌面环境,则上述命令似乎无法按预期工作。相反,您必须执行以下操作

 scim -f socket -c socket -d

故障排除

LWJGL (Lightweight Java Game Library) 失去键盘焦点

请参阅这些 两个 论坛帖子以获取解决方案。

Chrome/Chromium 无法接收输入

编辑 .xinitrc 或 .xsession 文件。

~/.xprofile
export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE="xim"
export QT_IM_MODULE="scim"
scim -d

这是一个相当粗糙的解决方法。此外,即使使用此解决方法,韩国用户也可能会发现 scim 在 Chrome/Chromium 中无法使用,因为当在单词末尾按下空格键或其他修饰键时,预编辑字符串会消失。

参见