Smart Common Input Method
Su Zhe (或 James Su)在為TurboLinux工作的時候,於2001年發起了SCIM項目,該項目的目標是:
- 為當前可用的輸入法庫提供一個統一前端;
- 作為IIIMF輸入法框架的語言引擎;
- 儘可能多地提供各國輸入引擎;
- 儘可能多地支持輸入法協議/接口;
- 儘可能多地支持各種操作系統。
SCIM具有以下特性:
- 使用C++編寫,完全面向對象結構;
- 高度模塊化
- 體系結構非常靈活,可以作為其它C/S輸入法環境的動態鏈接庫;
- 簡單的編程接口
- 完全支持i18n UCS4/UTF-8編碼
- 具有許多便利的工具可以加速自身開發
- 具有特性豐富的圖形化面板
- 統一的配置框架
安裝SCIM[編輯 | 編輯原始碼]
pacman -S scim
安裝輸入法引擎[編輯 | 編輯原始碼]
目前SCIM包含許多各類的輸入法(有些可能需要一些其它的庫),覆蓋30多種語言,包括中文(簡體、繁體)、日文、韓文及許多歐洲語言:
(在这里
中文智能拼音:
pacman -S scim-pinyin
中文五筆及其它:
pacman -S scim-tables
日文:
pacman -S scim-anthy
韓文:
pacman -S scim-hangul
配置SCIM[編輯 | 編輯原始碼]
方法一: 為了讓SCIM在桌面中自動啟動並且正常工作,編輯~/.xinitrc,在啟動桌面環境/窗口管理器的語句前面加入以下內容(如果使用scim-bridge,把下面的「scim」改為「scim-bridge」):
export LC_CTYPE="zh_CN.UTF-8" (请改成你在X下使用的locale,如果没有合适的locale,请查询locale-gen相关信息) export XMODIFIERS=@im=SCIM export GTK_IM_MODULE="scim" export QT_IM_MODULE="scim" scim -d
如果使用"scim -f socket -c socket -d"替換"scim -d ",會導致一些qt程序無法使用scim,比如eva。 現在進入X,scim應該已經啟動了,你可以在圖標上點擊右鍵改變SCIM配置(比如去掉一些不用的輸入法)。在任何程序中按Ctrl-Space就可以使用輸入法了。
使用kdm/gdm時自動啟動scim[編輯 | 編輯原始碼]
創建一個新文件~/.xprofile,加入以下內容(如果使用scim-bridge,把下面的「scim」改為「scim-bridge」):
export LC_CTYPE="zh_CN.UTF-8" export XMODIFIERS=@im=SCIM export GTK_IM_MODULE="scim" export QT_IM_MODULE="scim" scim -d
查看這裡獲得更多官方信息。
方法二: Gnome用戶可以試一下,編輯/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_CTYPE為"en_US.UTF-8「,需要將"ja:ko:zh"改成"en:ja:ko:zh"。當你輸入命令gtk-query-immodules-2.0,你將會發現「en」是關鍵。隨後重啟。SCIM托盤可能不顯示,但是當你設置好輸入法後,按下CTRL+空格,輸入條將會顯示。KDE或許有類似的方法。警告:加了"en",PC重啟後任務欄可能不顯示。按CTRL+ALT+F1進入SHELL,輸入sudo reboot或reboot重啟。或者用vi或vim編輯/etc/gtk-2.0/gtk.immodules。
環境變量[編輯 | 編輯原始碼]
以下環境變量在運行scim之前必須被export:
export XMODIFIERS=@im=SCIM export GTK_IM_MODULE="scim" export QT_IM_MODULE="scim"
通常這些變量被放在腳本文件中,如 ~/.xinitrc 或者 /etc/profile (全局設置), 又或者 ~/.config/openbox/autostart (如果使用 Openbox 作為 窗口管理器).如果放在 ~/.xinitrc, 必須放在執行桌面環境/窗口管理器之前。
如果你不知道那種方法更好,使用 /etc/profile.
XMODIFIERS=urxvt
衝突.GNOME, XFCE, LXDE 用戶[編輯 | 編輯原始碼]
如果 export QT_IM_MODULE="scim" 無法工作,可以使用 AUR 中的 scim-bridgeAUR[損壞的鏈接:package not found]。在 2009.02.15 的更新中(scim 1.4.7-1, AUR 中的 scim-bridge 0.4.15-1)下面配置可以在 GNOME, XFCE, LXDE 中工作:
export QT_IM_MODULE="scim-bridge"
KDE3[編輯 | 編輯原始碼]
將 QT IMM 設為 xim 或安裝 AUR 中的 scim-qtimm-cvsAUR[損壞的鏈接:package not found]:
export QT_IM_MODULE="xim"
GTK[編輯 | 編輯原始碼]
scim 無法在 gtk 應用程序中工作,請檢查 GTK_IM_MODULE_FILE 環境變量,應該設置為 /etc/gtk-2.0/gtk.immodules 或包含輸入法模塊文件的目錄。
在上面提到的腳本中加入下面內容,放到執行DE/WM之前:
gtk-query-immodules-2.0 > ~/.immodules export GTK_IM_MODULE_FILE=~/.immodules
GTK 會從 ~/.immodules 中查找文件,如果將 GTK_IM_MODULE_FILE 設置為 /etc/gtk-2.0/gtk.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:
locale -a
(查看 /etc/locale.gen 也可以).
更多關於 locale 的疑難解答[編輯 | 編輯原始碼]
如果安裝 scim 和輸入法表之後,scim 還無法工作(點擊系統圖標無反應),需要在 /etc/profile
中將 LC_CTYPE
設置為要使用的 locale。
LC_CTYPE="zh_CN.UTF-8" //if you want to type simplified chinese
修改/etc/locale.gen 文件,取消 locale 前的注釋並用 locale-gen 命令生成 locale:
locale-gen
執行 SCIM[編輯 | 編輯原始碼]
可以直接執行:
scim
建議作為守護進程執行:
scim -d
可以將上面文件放入腳本中自動執行,例如 ~/.xinitrc (環境變量之後,DE/WM之前), /etc/profile (環境變量之後) 或 ~/.config/openbox/autostart (環境變量之後,可以 sleep 幾秒)。
GNOME[編輯 | 編輯原始碼]
使用 GNOME 需要執行:
scim -f x11 -c simple -d
要自動啟動,在 System > Preferences > Session 中創建上面一行命令。
KDE[編輯 | 編輯原始碼]
KDE 中需要執行:
scim -f socket -c socket -d
或者採取:
- 從 AUR 安裝 skim.
- 啟動 SKIM,系統圖標上右鍵,點擊 'Configure'
- 在 Frontend > X Window 中點擊"Start skim automatically when KDE starts"
- 登出並重啟 X server (ctrl+alt+del),重新登錄
按鍵盤 ctrl+space 激活輸入法。
已知問題[編輯 | 編輯原始碼]
LWJGL (Lightweight Java Game Library) losing keyboard focus[編輯 | 編輯原始碼]
一個解決方法是 kill scim ,應用程序就可以接收鍵盤輸入了。