找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1616|回復: 0
打印 上一主題 下一主題
收起左側(cè)

linux中文輸入法

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:128229 發(fā)表于 2016-6-27 21:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
gdm是打開并管理當前X session的程序,/etc/init.d/gdm腳本控制了gdm程序的運行以及一些參數(shù)的傳遞。而我們要用的輸入法自然是在X session過程中運行的一個后臺程序,所以不管是不是在英文界面,只要你能保證gdm啟動后能觸發(fā)輸入法運行起來,問題就解決了。

中文界面默認就可以調(diào)用中文輸入法是因為它對應(yīng)的locale(我們假定是zh_CN.UTF-8)決定了gdm在啟動的時候啟動scim。很簡單的對應(yīng)關(guān)系,英文界面默認不能調(diào)用中文輸入是因為英文locale默認不能觸發(fā)scim的運行。我們要讓輸入法運行,只需要手動指定輸入法在英文locale下也被觸發(fā)就可以了。

gdm運行時會遍歷/etc/X11/xinit/Xsession.d/目錄下所有的腳本,所以如果我們只要放一個開啟scim的腳本到Xsession.d目錄下即可。im-switch程序干的就是這個事,大家可以讀一讀那個im-switch腳本,可以看到它遍歷如下文件,有文件存在就會跳出循環(huán):
$HOME/.xinput.d/${LNG}
$HOME/.xinput.d/all_ALL
/etc/X11/xinit/x.input.d/${LNG}
/etc/X11/xinit/xinput.d/all_ALL
/etc/X11/xinit/xinput.d/default
${LNG}字符串是系統(tǒng)locale的截斷,英文系統(tǒng)中其值應(yīng)該是en_US。這些文件設(shè)置了系統(tǒng)將要使用的輸入法,默認情況下,英文界面運行的會是/etc/X11/xinit/xinput.d/all_ALL文件,而這文件里會什么也不設(shè)置,于是就沒有輸入法可以用嘍!

為了讓輸入法運行,簡單地鏈接/etc/X11/xinit/xinput.d/scim文件到$HOME/.xinput.d/en_US,scim文件的內(nèi)容:
XIM=SCIM
XIM_PROGRAM=/usr/bin/scim
XIM_ARGS="-d"
XIM_PROGRAM_SETS_ITSELF_AS_DAEMON=yes
GTK_IM_MODULE=xim
QT_IM_MODULE=xim
DEPENDS="scim,scim-anthy|scim-canna|scim-chewing|scim-pinyin|scim-hangle|scim-prime|scim-skk|scim-tables-additional|scim-m17n|scim-uim|scim-tables-ja|scim-tables-ko|scim-tables-zh"
它指定了en_US locale時,scim仍在gdm啟動后觸發(fā),于是中文輸入法就出現(xiàn)了~

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表