2013年12月13日 星期五

openSUSE 13.1 輸入法問題合輯

這是一篇流水帳,紀錄這幾天來所遭遇到或被問到的輸入法相關問題

1. 關於 gnome 的設定
之前的文章仍有部份有用,但是關於 gnome-settings-daemon 重設 QT_IMMODULE 和 XMODIFIERS 環境變數的問題,
openSUSE 團隊已經用修改 /etc/X11/xim 的方法來迴避此問題,
詳情請參閱 https://bugzilla.novell.com/show_bug.cgi?id=853063
使用者可以依照 bugzilla 中提供的檔案修改 /etc/X11/xim,
或經由 X11:Utilities 套件庫更新 x11-tools

2. gcin 需要更新才能正常使用
如果您需要某些 Ctrl + * 的快速鍵被吃掉了,請到 gcin-tools 設定(在內定輸入法 ...那頁)
將 Ctrl 輸入標點符號取消

如果您發現 gcin-tools 的 「求助」 無法使用,你又很介意這件事的話,
請安裝 M17N 套件庫的 gcin

3. ibus 需要更新才能正常使用
主要是在 Libreoffice 中 on_the_spot 以及和 libreoffice-kde 衝突的問題。

ibus-table-* 無法使用:如果您要使用 ibus-table-* 的相關輸入法,
卻發現到在輸入法設定選項中沒有這些輸入法,
請參考 https://forum.suse.org.cn/viewtopic.php?f=16&t=1848
可能是在某些系統中未在安裝 ibus ibus-table 套件前安裝 python-curses 套件,
這個套件在執行 /usr/lib/ibus/ibus-engine-table 時所需要的
在我的電腦上安裝 python-curses 後,執行
# /usr/lib/ibus/ibus-engine-table -x

然後重新安裝 ibus 和 ibus-table
(這個步驟只是純粹試誤得到的結果,原因不明),
打算先在 ibus-table 中先加上 python-curses 的相依,看是否會改善
可惜仍未能解決苦主的問題...

4. fcitx 的圖示有點大
參考 https://forum.suse.org.cn/viewtopic.php?f=16&t=1587
和 https://bugzilla.novell.com/show_bug.cgi?id=851983
Marguerite Su 說她要修了,所以你可以等更新

fcitx 在 gnome-terminal 無法輸入的問題,
是因為輸入法環境變數必須在 dbus 啟動前先宣告,
才能影響 gnome-terminal server,你才能在 gnome-terminal client 使用中文輸入
你可以手動修改 /etc/X11/xim.d/fcitx ,
把 export .... 這些環境變數移到 if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then ... 之前,
像這樣這樣:
if ! type -p fcitx > /dev/null 2>&1 ; then


   echo "fcitx is not installed. please run `sudo zypper in fcitx`."

   return 1

fi



export LC_CTYPE=$LANG

export XMODIFIERS="@im=fcitx"

export GTK_IM_MODULE=fcitx

export GTK3_IM_MODULE=fcitx

export QT_IM_SWITCHER=imsw-multi

export QT_IM_MODULE=fcitx



# Avoid relying on autolaunch to improvise D-Bus sessions for each process

if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then

   eval `dbus-launch --sh-syntax --exit-with-session`

fi



fcitx -d



# success:

return 0

或者您也可以從 M17N 更新 fcitx

fcitx 桌面整合
fcitx 在 gnome 和 kde 都有 kimpanel extension (plasmoid)
和桌面環境整合得不錯,建議使用

2013年12月5日 星期四

GNOME3: 選擇您的輸入法(openSUSE 13.1)

您需要知道
1. (GNOME way)
  GNOME 3 自 3.6 版開始就整合了 ibus 成為預設的輸入法平台。
  而 openSUSE 13.1 開始所搭載的 GNOME 3.10 就包含了 ibus 整合。
2. (openSUSE way)
  openSUSE 有一套自有的啟動輸入法流程,
  並根據社群的意見針對不同的語系預設不同的輸入法平台。
  預設是根據 /etc/X11/xim.d/{您的語系}/數字-{輸入法}
  數字愈小優先等級愈高。
  也可以使用環境變數 INPUT_METHOD 來自訂所需的輸入法
  (是的,目前沒有圖形使用者介面)
  例如 zh_TW (繁體中文)使用 gcin, 而 zh_CN (簡體中文)使用 fcitx。
3. (Don't Conflict)
  這兩種方法要使他們不衝突才能正常使用輸入法。

4. 檢查 (openSUSE way) 為您啟動了什麼輸入法?
檢查 ~/.xsession-errors 或 .xsession-errors-\:0 之類的檔案
找到
/etc/X11/xim.d/zh_TW/30-gcin started sucessfully

再這個例子中,啟動的就是 gcin

5. 你想用什麼輸入法?
決定您要用的輸入法框架: ibus ? gcin ? fcitx ? scim ?

6. 若您要使用 ibus
(1) 檢查 ~/.xsession-errors 確定 ibus 已成功啟動,
如果不是啟動 ibus ,請在 ~/.profile 加上
export INPUT_METHOD=ibus

(2) 到設定值--地區和語言--輸入來源--加入英文和中文輸入法

寄件者 openSUSE 13.1

(3) 使用 Super+space 切換中英文輸入

寄件者 openSUSE 13.1

(4) ibus 的優點:與gnome整合,工具列上有圖示顯示輸入狀態,佈景主題搭配

寄件者 openSUSE 13.1

(5) ibus 的缺點:中英文切換反應慢,可能導致漏字

(6) ibus 的設定:要更改快速鍵,必須由設定值--鍵盤--快捷鍵--輸入 更改
(在 ibus 偏好中的設定仍會影響其他桌面環境)

7. 若您要使用 gcin (或 fcitx 或 scim)
(1) 檢查 檢查 ~/.xsession-errors 確定 gcin 或其他您選擇的輸入法已成功啟動,
如果不是啟動 gcin ,請在 ~/.profile 加上
export INPUT_METHOD=gcin

(2)如果您的 設定值--地區和語言--輸入來源 未做任何變動(尚未選擇輸入來源)
 
寄件者 openSUSE 13.1

這時您已經可以使用您選用的輸入法輸入了
如果您已驚動到了該設定, ibus-daemon 會啟動,和您已經啟動的輸入法衝突
導致無法使用任何輸入法。
請執行以下命令來回復預設值
gsettings set org.gnome.desktop.input-sources sources "[]"

(3)用 Ctrl+space 切換即可在 gtk2 和 gtk3 應用程式中輸入(?)
因為 gnome-settings-daemon 重新設定了 QT_IM_MODULE 和 XMODIFIERS 環境變數
導致無法在非 gtk 的程式中輸入
請參考:https://bugzilla.novell.com/show_bug.cgi?id=853063

(4)要解決 (3)的問題,有個簡單的方法:移除 ibus

(5)但如果你的電腦是多人使用,可能有人比較喜歡 ibus
困難的方法:你必須駭一下 gnome-settings-daemon ...
我不會寫程式,我只是刪除了我認為不需要在 openSUSE 系統做的那兩句,
如果您也不會寫程式,膽子和我一樣大,
你可以到 http://download.opensuse.org/repositories/home:/swyear/openSUSE_13.1/
(在 i586 或 x86_64 目錄中,視您的系統決定)找到修改過後的 gnome-settings-daemon。
警告:請不要加此套件庫,裏面都是一些測試,不保證任何品質。
下載後直接用 rpm 升級安裝
# rpm -Uvh gnome-settings-daemon-3.10.2-3.1.i586.rpm
警告:gnome-settings-daemon-3.10.2-3.1.i586.rpm: 表頭 V3 DSA/SHA1 Signature, key ID 86d89a42: NOKEY
正在準備…                       ################################# [100%]
Updating / installing...
   1:gnome-settings-daemon-3.10.2-3.1 ################################# [ 50%]
Cleaning up / removing...
   2:gnome-settings-daemon-3.10.1-1.1 ################################# [100%] 

重新登入後,就可以在 非 gtk 程式中輸入了
再次警告:任何後果自行負責

(6) gcin 的優點:符合台灣人的使用習慣,作者是台灣人,可以用中文要求功能與回報錯誤。
目前沒有發現無法輸入的情況。
寄件者 openSUSE 13.1

(7) gcin 的缺點:在 gnome 桌面搜尋無法跳出選字視窗,沒有預設系統匣圖示顯示(但你可以裝 TopIcons ,但有時圖示無法正常顯示),在某些情況下有時跳出選字框會有殘像,有時會有選字視窗遮住輸入區的情形。

(8) fcitx 的優點:可自由迅速切換佈景主題(皮膚),支援新酷音,反應迅速,在簡體中文輸入法中評價最高。

寄件者 openSUSE 13.1

(9) fcitx 的缺點:和 gcin 一樣,若沒有安裝 TopIcons 無法顯示系統匣圖示,在 gnome 桌面搜尋的選字窗也一樣跳不出來。另因不明原因,無法在 gnome terminal 中輸入中文。
Edit:感謝 csslayer 大大在留言中的指導,fcitx 裝上 kimpanel 擴充套件,可以完全融入 GNOME 3 的佈景主題中,太酷了!
寄件者 openSUSE 13.1