裝了 ubuntu 16.04 lts 64位元版 一直無法輸入中文 [論壇 - 新手村]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊

« 1 (2)


回覆: 裝了 ubuntu 16.04 lts 64位元版 一直無法輸入中文
會員二級
註冊日期:
2009/6/25 8:17
所屬群組:
已註冊使用者
等級: 4
HP : 0 / 96
MP : 12 / 4012
EXP: 85
離線
在使用xubuntu和mate 16.04時也會出現倉頡等輸入法無法選字問題,把應用程式自動啟動Fcitx QtIMPanel取消後,以後開機輸入法問題就少很多了。

2016/5/14 22:38
應用擴展 工具箱
回覆: 裝了 ubuntu 16.04 lts 64位元版 一直無法輸入中文
會員四級
註冊日期:
2015/9/29 21:19
所屬群組:
已註冊使用者
等級: 16
HP : 0 / 380
MP : 100 / 8877
EXP: 22
離線



2016/5/16 18:18
應用擴展 工具箱
回覆: 裝了 ubuntu 16.04 lts 64位元版 一直無法輸入中文
會員三級
註冊日期:
2008/4/25 9:32
所屬群組:
已註冊使用者
等級: 9
HP : 0 / 219
MP : 38 / 9903
EXP: 79
離線
16.04版本的ibus的漢字相關輸入法要自己去下載,可以利用synaptic搜尋ibus,點選右鍵選擇再套用。

2016/5/18 13:55
應用擴展 工具箱
回覆: 裝了 ubuntu 16.04 lts 64位元版 一直無法輸入中文
會員一級
註冊日期:
2014/11/18 13:33
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 0
MP : 0 / 0
EXP: 0
離線
Ubuntu Linux 下的 注音
可以參考這篇,我自己實作有成功
還是比較喜歡詞音搭配 HIME/gcin
http://goodjack.blogspot.tw/2013/08/linux-phonetic-setting.html

2017/8/29 16:22
應用擴展 工具箱
回覆: 裝了 ubuntu 16.04 lts 64位元版 一直無法輸入中文
會員一級
註冊日期:
2009/4/27 14:30
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 8
MP : 1 / 359
EXP: 34
離線
1.千萬不可移除預設的ibus,我的"系統設定"圖標消失了,需要重新安裝unity controll center,有成功回來,但langueage support圖標回不來了,所幸整個系統中文化還在XD~~
2.移除gcin,重裝,但我的仍未成功,安裝新的hime,卡通Q妹陪伴我也好

2017/9/9 20:09
應用擴展 工具箱
回覆: 裝了 ubuntu 16.04 lts 64位元版 一直無法輸入中文
會員二級
註冊日期:
2009/12/17 21:17
所屬群組:
已註冊使用者
等級: 8
HP : 0 / 186
MP : 30 / 7503
EXP: 46
離線
另外、預設的 fcitx 也很好用,若要用他的新酷音,則

apt-get install fcitx-chewing

即可,沒有問題的。
( google 上搜尋 fcitx ubuntu 16.04 即可,方便又好用的)

2017/9/10 11:31
應用擴展 工具箱
回覆: 裝了 ubuntu 16.04 lts 64位元版 一直無法輸入中文
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 905
MP : 679 / 30217
EXP: 23
離線
clive 寫到:
1.千萬不可移除預設的ibus,我的"系統設定"圖標消失了,需要重新安裝unity controll center,有成功回來,但langueage support圖標回不來了,所幸整個系統中文化還在XD~~
2.移除gcin,重裝,但我的仍未成功,安裝新的hime,卡通Q妹陪伴我也好


您要讓「langueage support圖標」回來,

您可以執行下面指令,安裝「language-selector-gnome」這個套件。


$ sudo apt-get install language-selector-gnome



安裝完畢後,可以執行下面指令確認


$ dpkg -l language-selector-gnome



若有安裝成功,會顯示


Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=============================-===================-===================-======
ii language-selector-gnome 0.165.4 all Language selector for Ubuntu



而您所謂的「langueage support圖標」,執行的指令是「gnome-language-selector」。

而其「Desktop Entry」的路徑,則是在「/usr/share/applications/language-selector.desktop」。

您只要執行下面指令,就可以找到路徑


$ dpkg -L language-selector-gnome



顯示


/.
/usr
/usr/bin
/usr/bin/gnome-language-selector
/usr/lib
/usr/lib/python3
/usr/lib/python3/dist-packages
/usr/lib/python3/dist-packages/LanguageSelector
/usr/lib/python3/dist-packages/LanguageSelector/gtk
/usr/lib/python3/dist-packages/LanguageSelector/gtk/__init__.py
/usr/lib/python3/dist-packages/LanguageSelector/gtk/GtkLanguageSelector.py
/usr/share
/usr/share/applications
/usr/share/applications/language-selector.desktop
/usr/share/help
/usr/share/help/C
/usr/share/help/C/language-selector
/usr/share/help/C/language-selector/figures
/usr/share/help/C/language-selector/index.docbook
/usr/share/doc
/usr/share/doc/language-selector-gnome
/usr/share/doc/language-selector-gnome/copyright
/usr/share/language-support
/usr/share/language-support/incomplete-language-support-gnome.note
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/gnome-language-selector.1.gz
/usr/share/doc/language-selector-gnome/changelog.gz



執行下面指令,觀看「/usr/share/applications/language-selector.desktop」的內容


$ cat /usr/share/applications/language-selector.desktop



顯示


[Desktop Entry]
Name=Language Support
Comment=Configure multiple and native language support on your system
Exec=/usr/bin/gnome-language-selector
Icon=preferences-desktop-locale
Terminal=false
Type=Application
Categories=GNOME;GTK;Settings;DesktopSettings;X-GNOME-Settings-Panel;X-Unity-Settings-Panel;X-GNOME-PersonalSettings
X-Ubuntu-Gettext-Domain=language-selector
NotShowIn=KDE;
X-GNOME-Settings-Panel=language
X-Unity-Settings-Panel=language
Keywords=Language;Input method;Region;Format;



可以參考「Howto: A small guide on integration of your application」。

================================================================================

除了「language-selector-gnome」這個套件,

相關的還有「language-selector-common」這個套件。

可以執行下面指令,


$ apt-cache showsrc language-selector-gnome | grep '^Binary:' -B 1



顯示


Package: language-selector
Binary: language-selector-gnome, language-selector-common



表示「language-selector-gnome」和「language-selector-common」這兩個套件,
是屬於「language-selector」這個「Source Package」。

關於這兩個套件,我之前有在「#4 回覆: Kubuntu 15.04 (Plasma 5.0) Fcitx、gcin輸入法無法打中文」有提到。


然後還有一個相關的套件「im-config」。

可以執行下面指令,就可以看到


$ apt-cache show language-selector-gnome | grep '^Depends:'



顯示


Depends: language-selector-common (= 0.165.4), python3:any (>= 3.3.2-2~), python3-gi, gir1.2-gtk-3.0, python3-apt, aptdaemon (>= 0.40+bzr527), python3-aptdaemon.gtk3widgets, im-config (>= 0.29-1ubuntu10~)




================================================================================

以我的操作習慣為例

我安裝的系統是「Xubuntu 16.04 adm64」,而我是安裝「英文界面(英文語系)」,

所以安裝完後開機,預設是沒有安裝「中文輸入法」的。

所以我會執行下面指令,安裝「fcitx-chewing」。


$ sudo apt-get install fcitx-chewing



然後執行下面指令


$ im-config -n fcitx



接著登出系統,再登入系統(或是重開機),就有中文輸入法可以使用了。

當重開機後,要設定「fcitx」,要在「Input Method」要加入「chewing」。

可以在「Notification Area (Appindicator) (Systray) 」,通常在Panel右方,找到一個「鍵盤的圖示」,
按下滑鼠左鍵,會出現一個選單,其中有兩個選項

* Configure Current Input Method
* Configure

也就是如同執行下面指令,會出現的一個設定視窗。


$ fcitx-config-gtk3 fcitx-keyboard-us



或是執行下面指令


$ fcitx-config-gtk3



或是執行下面指令 (註:可以參考「#2 回覆: fcitx chewing 在右方數字鍵無法選字」)


$ fcitx-configtool




關於UI畫面和操作可以參考「這篇」和「這篇」,裡面有圖片。

這兩篇我是剛剛使用「fcitx ubuntu 16.04」當關鍵字查詢找到的。


================================================================================

上面我是透過「im-config」這個指令,來設定使用何種輸入法框架。

您也可以透過「im-config」這個指令,用來切換到其他的輸入法框架。


先執行


$ im-config -l



顯示


ibus fcitx hime gcin maliit xim



註:上面顯示列表會根據您的系統,是否有安裝相關的輸入法框架,而有所不同。

假設我要切換成「gcin」,只要執行下面指令,


$ im-config -n gcin



跟上面提到切換到「fcitx」的方式是一樣的。

而上面這個指令,若是在一般的user帳號下執行,是會產生「~/.xinputrc」這個檔案

執行下面指令,觀看「~/.xinputrc」這個檔案的內容


$ cat ~/.xinputrc



顯示


# im-config(8) generated on Sun, 10 Sep 2017 14:56:06 +0800
run_im gcin
# im-config signature: b48613d86b488790dec26f586c3c9ea5 -



執行下面指令,切換回來。


$ im-config -n fcitx



然後執行下面指令,觀看「~/.xinputrc」這個檔案的內容


$ cat ~/.xinputrc



顯示


# im-config(8) generated on Sun, 10 Sep 2017 14:59:02 +0800
run_im fcitx
# im-config signature: 639c9a3b75a733384fa8fd3874dad451 -



執行下面指令,則會把「~/.xinputrc」刪除,


$ im-config -n REMOVE



執行


$ cat ~/.xinputrc



顯示


cat: /home/user/.xinputrc: No such file or directory



執行 (註: 下面的指令下法,請參考「#6 回覆: ubuntun 14.04, psql 無法使用」)


$ LANGUAGE=zh_TW cat ~/.xinputrc



顯示


cat: /home/user/.xinputrc: 沒有此一檔案或目錄




================================================================================

若要探索『執行「im-config -n」,產生或刪除「~/.xinputrc」機制』的話,

可以執行


$ whereis im-config



顯示


im-config: /usr/bin/im-config /usr/share/im-config /usr/share/man/man8/im-config.8.gz



執行


$ file /usr/bin/im-config



顯示


/usr/bin/im-config: Bourne-Again shell script, ASCII text executable



從上面訊息,可以了解到「/usr/bin/im-config」是「shell script」。

所以可以執行下面指令,觀看「/usr/bin/im-config」這個檔案的內容。


$ less /usr/bin/im-config



執行


$ grep 'REMOVE' /usr/bin/im-config -n -A 4



顯示


231:    if [ "x$IM_CONFIG_NAME" = "xREMOVE" ]; then
232-        # remove configuration file
233-        if ! $IM_CONFIG_DRY ; then
234-            rm -f $IM_CONFIG_XINPUTRC
235-        fi




執行


$ grep 'IM_CONFIG_XINPUTRC' /usr/bin/im-config -n -A 6



顯示


14:    IM_CONFIG_XINPUTRC=$IM_CONFIG_XINPUTRC_SYS
15:    IM_CONFIG_XINPUTRC_TYPE="$(gettext "system configuration")"
16-else
17:    IM_CONFIG_XINPUTRC=$IM_CONFIG_XINPUTRC_USR
18:    IM_CONFIG_XINPUTRC_TYPE="$(gettext "user configuration")"
19-fi
20-#############################################################
21-# Configuration functions and pre-defined variables used by
22-# this im-config.
23-#############################################################
24-IM_CONFIG_AUTOMATIC=$(automatic_im)
--
...略...



然後執行


$ grep 'xinputrc' /usr/bin/im-config -n



顯示


9:. /usr/share/im-config/xinputrc.common



可以找到一個檔案「/usr/share/im-config/xinputrc.common」。

執行


$ grep 'IM_CONFIG_XINPUTRC' /usr/share/im-config/xinputrc.common -n



顯示


11:IM_CONFIG_XINPUTRC_USR=$HOME/.xinputrc
12:IM_CONFIG_XINPUTRC_SYS=/etc/X11/xinit/xinputrc




至於開機進到桌面啟動輸入法的流程探索步驟,可以參考下面幾篇

* #2 回覆: Fcitx輸入法啟動延遲
* #7 回覆: 討論這篇「如何讓gcin開機後不多次執行」
* #2 回覆: gcin在gedit不能使用中文輸入法

================================================================================

接下來再回過頭來討論「Language Support (gnome-language-selector)」,

它是使用「python」寫成的,雖然它是圖形界面,不過底層也是呼叫「im-config


$ whereis gnome-language-selector



顯示


gnome-language-selector: /usr/bin/gnome-language-selector /usr/share/man/man1/gnome-language-selector.1.gz



執行


$ file /usr/bin/gnome-language-selector



顯示


/usr/bin/gnome-language-selector: a /usr/bin/python3 script, ASCII text executable




可以執行下面指令觀看「/usr/bin/gnome-language-selector」的內容


$ less /usr/bin/gnome-language-selector



可以看到其中有一行


from LanguageSelector.gtk.GtkLanguageSelector import GtkLanguageSelector



可以執行下面指令


$ python3 -c 'import LanguageSelector; print(LanguageSelector)'



顯示


<module 'LanguageSelector' from '/usr/lib/python3/dist-packages/LanguageSelector/__init__.py'>



就可以找到「/usr/lib/python3/dist-packages/LanguageSelector」這個資料夾

或是執行下面的指令,也可以找到


$ dpkg -L language-selector-gnome | grep python



顯示


/usr/lib/python3
/usr/lib/python3/dist-packages
/usr/lib/python3/dist-packages/LanguageSelector
/usr/lib/python3/dist-packages/LanguageSelector/gtk
/usr/lib/python3/dist-packages/LanguageSelector/gtk/__init__.py
/usr/lib/python3/dist-packages/LanguageSelector/gtk/GtkLanguageSelector.py


執行


$ dpkg -L language-selector-common | grep python



顯示


/usr/lib/python3
/usr/lib/python3/dist-packages
/usr/lib/python3/dist-packages/language_selector-0.1.egg-info
/usr/lib/python3/dist-packages/language_selector-0.1.egg-info/dependency_links.txt
/usr/lib/python3/dist-packages/language_selector-0.1.egg-info/top_level.txt
/usr/lib/python3/dist-packages/language_selector-0.1.egg-info/PKG-INFO
/usr/lib/python3/dist-packages/language_selector-0.1.egg-info/entry_points.txt
/usr/lib/python3/dist-packages/language_support_pkgs.py
/usr/lib/python3/dist-packages/LanguageSelector
/usr/lib/python3/dist-packages/LanguageSelector/xkb.py
/usr/lib/python3/dist-packages/LanguageSelector/ImConfig.py
/usr/lib/python3/dist-packages/LanguageSelector/__init__.py
/usr/lib/python3/dist-packages/LanguageSelector/LangCache.py
/usr/lib/python3/dist-packages/LanguageSelector/LanguageSelector.py
/usr/lib/python3/dist-packages/LanguageSelector/utils.py
/usr/lib/python3/dist-packages/LanguageSelector/LocaleInfo.py
/usr/lib/python3/dist-packages/LanguageSelector/macros.py



註:關於「python import」相關的討論

* #2 回覆: py2048
* #4 回覆: 討論「請教 ezgo13 的 fcitx-chewing 輸入法之自建字庫問題」

================================================================================

執行下面指令


$ dpkg -L language-selector-common | grep ui



顯示


/usr/share/language-selector/data/LanguageSelector.ui
/usr/share/language-support/restart_session_required.note



若有安裝「glade」這個套件。

您就可以執行下面指令,來預覽GUI的畫面


$ glade /usr/share/language-selector/data/LanguageSelector.ui



在畫面您可以找到一個「Keyboard input method system:」這個關鍵字。
也可以找到「combobox_input_method」這個關鍵字。

執行


$ grep 'Keyboard input method system:' /usr/share/language-selector/data/LanguageSelector.ui -n



顯示


354: <property name="label" translatable="yes">Keyboard input method system:</property>



執行


$ grep 'combobox_input_method' /usr/share/language-selector/data/LanguageSelector.ui -n



顯示


363: <object class="GtkComboBox" id="combobox_input_method">
370: <signal name="changed" handler="on_combobox_input_method_changed" swapped="no"/>



也可以找到另一個關鍵字「on_combobox_input_method_changed」<-- 在「glade預覽時」也可以找到。

執行


$ grep 'on_combobox_input_method_changed' /usr/lib/python3/dist-packages/LanguageSelector/gtk/GtkLanguageSelector.py -n -A 7



顯示


1080:    def on_combobox_input_method_changed(self, widget):
1081-        combo = self.combobox_input_method
1082-        model = combo.get_model()
1083-        if combo.get_active() < 0:
1084-            return
1085-        (IM_choice, IM_name) = model[combo.get_active()]
1086-        self.ImConfig.setInputMethod(IM_choice)
1087-



執行


$ grep 'ImConfig' /usr/lib/python3/dist-packages/LanguageSelector/gtk/GtkLanguageSelector.py -n



顯示


33:from LanguageSelector.ImConfig import ImConfig
193:        self.ImConfig = ImConfig()
251:        if not self.ImConfig.available():
443:        if not self.ImConfig.available():
453:        currentIM = self.ImConfig.getCurrentInputMethod()
457:        for (i, IM) in enumerate(self.ImConfig.getAvailableInputMethods()):
1086:        self.ImConfig.setInputMethod(IM_choice)




執行


$ grep 'setInputMethod' /usr/lib/python3/dist-packages/LanguageSelector/ImConfig.py -n -A 4



顯示


55:        self.setInputMethod(system_conf)
56-        return system_conf
57-
58:    def setInputMethod(self, im):
59-        subprocess.call(['im-config', '-n', im])
60-
61-if __name__ == '__main__':
62-    im = ImConfig()
--
66:    im.setInputMethod('fcitx')
67-    print('current method: %s' % im.getCurrentInputMethod())
68-    print('removing ~/.xinputrc')
69:    im.setInputMethod('REMOVE')



================================================================================

## 測試一

注意: 這個測試會刪除「~/.xinputrc」這個檔案


$ python3 /usr/lib/python3/dist-packages/LanguageSelector/ImConfig.py



顯示


available input methods: ['fcitx', 'gcin', 'hime', 'ibus', 'maliit', 'xim', 'none']
current method: fcitx
setting method 'fcitx'
current method: fcitx
removing ~/.xinputrc



這個測試,主要在執行「/usr/lib/python3/dist-packages/LanguageSelector/ImConfig.py」這個檔案
的「if __name__ == '__main__':」下面那一個區塊。

可以執行下面指令,就可以看到。


$ grep '__main__' /usr/lib/python3/dist-packages/LanguageSelector/ImConfig.py -n -A 7



顯示


61:if __name__ == '__main__':
62-    im = ImConfig()
63-    print('available input methods: %s' % im.getAvailableInputMethods())
64-    print('current method: %s' % im.getCurrentInputMethod())
65-    print("setting method 'fcitx'")
66-    im.setInputMethod('fcitx')
67-    print('current method: %s' % im.getCurrentInputMethod())
68-    print('removing ~/.xinputrc')



================================================================================


## 測試二

產生一個檔案「test-001.py」,內容如下


#!/usr/bin/env python3

from LanguageSelector.ImConfig import ImConfig

im_config = ImConfig()

im_config.setInputMethod('fcitx')




執行


$ chmod u+x test-001.py



然後執行下面指令


$ ./test-001.py



或是執行下面指令


$ python3 ./test-001.py



這個測試,等同在執行「im-config -n fcitx」。

執行下面指令來確認


$ cat ~/.xinputrc



顯示


# im-config(8) generated on Sun, 10 Sep 2017 16:25:33 +0800
run_im fcitx
# im-config signature: 264c55ea238b9fe8424e113bb807d38e -



================================================================================

## 測試三

注意: 這個測試會刪除「~/.xinputrc」這個檔案

產生一個檔案「test-002.py」,內容如下


#!/usr/bin/env python3

from LanguageSelector.ImConfig import ImConfig

im_config = ImConfig()

im_config.setInputMethod('REMOVE')




執行


$ chmod u+x test-002.py



然後執行下面指令


$ ./test-002.py



或是執行下面指令


$ python3 ./test-002.py



這個測試,等同在執行「im-config -n REMOVE」。

執行下面指令來確認


$ cat ~/.xinputrc



顯示


cat: /home/user/.xinputrc: No such file or directory




================================================================================

## 測試四

產生一個檔案「test-003.py」,內容如下


#!/usr/bin/env python3

import subprocess

class ImConfig(object):
	def setInputMethod(self, im):
		subprocess.call(['im-config', '-n', im])

im_config = ImConfig()

im_config.setInputMethod('fcitx')



執行


$ chmod u+x test-003.py



然後執行下面指令


$ ./test-003.py



或是執行下面指令


$ python3 ./test-003.py



這個測試,等同在執行「im-config -n fcitx」。

執行下面指令來確認


$ cat ~/.xinputrc



顯示


# im-config(8) generated on Sun, 10 Sep 2017 16:37:25 +0800
run_im fcitx
# im-config signature: aff8e670d6a7ad68a52ae6ecc85052b5 -



關於「subprocess」的用法,可以參考「Python3 Documentation / 17.5. subprocess — Subprocess management」。

================================================================================

## 相關的索引

* [索引] 中文輸入
* [索引] 文件編碼
* [索引] 字型安裝設定
* [索引] 套件操作實務
* 如何探索「Ubuntu」

================================================================================

以上提供參考,給有想要深究的人一個探索的起點

報告完畢


2017/9/10 16:55
應用擴展 工具箱

« 1 (2)

 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.