標(biāo)題:
linux中文輸入法
[打印本頁(yè)]
作者:
電子黑
時(shí)間:
2016-6-27 21:57
標(biāo)題:
linux中文輸入法
gdm是打開(kāi)并管理當(dāng)前X session的程序,/etc/init.d/gdm腳本控制了gdm程序的運(yùn)行以及一些參數(shù)的傳遞。而我們要用的輸入法自然是在X session過(guò)程中運(yùn)行的一個(gè)后臺(tái)程序,所以不管是不是在英文界面,只要你能保證gdm啟動(dòng)后能觸發(fā)輸入法運(yùn)行起來(lái),問(wèn)題就解決了。
中文界面默認(rèn)就可以調(diào)用中文輸入法是因?yàn)樗鼘?duì)應(yīng)的locale(我們假定是zh_CN.UTF-8)決定了gdm在啟動(dòng)的時(shí)候啟動(dòng)scim。很簡(jiǎn)單的對(duì)應(yīng)關(guān)系,英文界面默認(rèn)不能調(diào)用中文輸入是因?yàn)橛⑽膌ocale默認(rèn)不能觸發(fā)scim的運(yùn)行。我們要讓輸入法運(yùn)行,只需要手動(dòng)指定輸入法在英文locale下也被觸發(fā)就可以了。
gdm運(yùn)行時(shí)會(huì)遍歷/etc/X11/xinit/Xsession.d/目錄下所有的腳本,所以如果我們只要放一個(gè)開(kāi)啟scim的腳本到Xsession.d目錄下即可。im-switch程序干的就是這個(gè)事,大家可以讀一讀那個(gè)im-switch腳本,可以看到它遍歷如下文件,有文件存在就會(huì)跳出循環(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的截?cái)啵⑽南到y(tǒng)中其值應(yīng)該是en_US。這些文件設(shè)置了系統(tǒng)將要使用的輸入法,默認(rèn)情況下,英文界面運(yùn)行的會(huì)是/etc/X11/xinit/xinput.d/all_ALL文件,而這文件里會(huì)什么也不設(shè)置,于是就沒(méi)有輸入法可以用嘍!
為了讓輸入法運(yùn)行,簡(jiǎn)單地鏈接/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時(shí),scim仍在gdm啟動(dòng)后觸發(fā),于是中文輸入法就出現(xiàn)了~
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1