2017年1月3日 星期二

gcin 問題解決 -- 輸入窗黏在視窗左上解

蠻奇怪的,在家裡,輸入中文時,就是會黏在應用程式的左上角,而辦公室的是正常的。
歸納問題,這些程式都是 gtk+ 的程式。除了 Gnome 自己的應用程式,如 gedit 為 gtk3 的外,其他的都是 gtk2。

先收集辦公室的相關資料
設定檔 ~/.config/xfce4/xinitrc 的內容
#!/bin/sh
#
# Settings for gcin.
#
export LANG=zh_TW.UTF-8
export LC_ALL=zh_TW.UTF-8
export GTK_IM_MODULE=gcin
export XMODIFIERS="@im=gcin"
#exec gcin &

使用的是 gcin 2.8.4。

# lsof | grep -i immo
gedit     ....   /usr/lib64/gtk-3.0/3.0.0/immodules/im-xim.so  
xfce4-ter ....   /usr/lib64/gtk-2.0/immodules/im-gcin.so
leafpad   ....   /usr/lib64/gtk-2.0/immodules/im-gcin.so

從上面的列表,可以看到 gtk2 的應用程式,使用 im-gcin.so。而 gtk3 的應用程式 gedit,則是用 im-xim.so。

執行 gtk-query-immodules-3.0 --update-cache,會將  input method modules for GTK+ 寫入 libdir/gtk-3.0/3.0.0/immodules.cache,其中 libdir 為 /usr/lib64 及 /usr/lib。

例如 /usr/lib/gtk-3.0/3.0.0/immodules.cache 中,會有下列資料
"/usr/lib64/gtk-3.0/immodules/im-gcin.so" 
"gcin" "gcin Input Method" "gcin" "/usr/share/locale" "zh:ja" 

/usr/lib/gtk-2.0/2.10.0/immodules.cache 中,會有下列資料
"/usr/lib64/gtk-2.0/immodules/im-gcin.so" 
"gcin" "gcin Input Method" "gcin" "/usr/share/locale" "zh:ja" 


可以看到,gedit 已改成用 im-gcin.so。
gedit     ....   /gtk-3.0/immodules/im-gcin.so

沒有留言:

張貼留言

網誌存檔