switch-input-source
前提
執行
gnome-shell --version
顯示
GNOME Shell 42.0
在「GNOME Shell」,內建有整合「ibus」,
所以我們可以透過下面的操作步驟,來加入「慣用的中文輸入法」。
以「ibus-chewing」為例。
ibus-chewing
執行下面指令,安裝「ibus-chewing」。
sudo apt-get install ibus-chewing
安裝完成後,請登出,再登入。
gnome-control-center keyboard
接著可以透過「圖形使用者介面程式」,來加入「慣用的中文輸入法」。
gnome-control-center keyboard
也就是在「Settings / Keyboard / Input Sources」那裡操作
gsettings
除了使用上面「圖形使用者介面程式」的方式,
也可以透過「下指令」的方式,,來加入「慣用的中文輸入法」。
執行下面指令,就可以設定「可用輸入法清單」。
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('ibus', 'chewing')]"
在畫面右上角的「bar」,就會出現一個「en」的「圖示」。
預設只要按下「Win + Space
」或「Shift + Win + Space
」,
就可以切換「英文輸入法」和「中文輸入法」。
更改切換按鍵
因為我還是習慣使用「Ctrl + Space
」切換「英文輸入法」和「中文輸入法」。
所以執行下面指令,來更改「切換按鍵」
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Control>space', 'XF86Keyboard']"
gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Shift><Control>space', '<Shift>XF86Keyboard']"
這個步驟,也可以透過「圖形使用者介面程式」的方式來操作,
在「Settings / Keyboard / Keyboard Shortcuts / Typing」那裡操作
微調腳本
統整上面的所有步驟的指令如下
sudo apt-get install ibus-chewing
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('ibus', 'chewing')]"
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Control>space', 'XF86Keyboard']"
gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Shift><Control>space', '<Shift>XF86Keyboard']"
以上指令,整合成一個微調腳本,紀錄在「GitHub」上
另外以「ibus-libzhuyin」為例。
ibus-libzhuyin
執行下面指令,安裝「ibus-libzhuyin (GitHub)」。
sudo apt-get install ibus-libzhuyin
設定指令如下
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('ibus', 'libzhuyin')]"
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Control>space', 'XF86Keyboard']"
gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Shift><Control>space', '<Shift>XF86Keyboard']"
注意事項
也可以設定「同時三個輸入法」做「循環」,設定指令如下
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('ibus', 'chewing'), ('ibus', 'libzhuyin')]"
只是我習慣「兩個輸入法切換」,所以只有設定「英文輸入法」和「慣用的中文輸入法」兩個循環而已。
注意事項
若是切換到「ibus-chewing」,無法正常輸入「中文」,
原因出在「im-config」。
您可以執行下面指令,檢查
env | grep ibus
正常應該會顯示如下
XMODIFIERS=@im=ibus
QT_IM_MODULE=ibus
若不是顯示上面的,接著執行下面指令
env | grep XMODIFIERS
正常應該會顯示如下
XMODIFIERS=@im=ibus
若是顯示如下,就是ibus無法輸入中文的關鍵點
XMODIFIERS=@im=fcitx
接著執行下面指令,觀看「~/.xinputrc」
cat ~/.xinputrc
若是顯示如下,就是ibus無法輸入中文的關鍵點
# im-config(8) generated on Thu, 05 May 2022 13:33:20 +0800
run_im fcitx
# im-config signature: cb20aa40ca9ee36f0d34727e599072d3 -
解法有兩種方式
第一種方式,刪除「~/.xinputrc」,然後登出,登入
rm ~/.xinputrc
第二種方式,執行下面指令,然後登出,登入
im-config -n ibus
接著執行下面指令,觀看「~/.xinputrc」
cat ~/.xinputrc
顯示如下,主要是「run_im ibus
」那一行
# im-config(8) generated on Thu, 05 May 2022 13:36:46 +0800
run_im ibus
# im-config signature: e76f4af3303331d13a6478e35f0bb309 -
fcitx-chewing
若是要採用「fcitx-chewing」,請參考另一篇紀錄「紀錄」。
相關討論
- #8 - 回覆: Ubuntu 22.04 LTS (Jammy Jellyfish) Released
Explore
執行
dpkg -l *ibus*
執行
apt-cache search ibus
執行
gsettings list-recursively | grep input-source | sort
顯示
org.gnome.desktop.input-sources current uint32 0
org.gnome.desktop.input-sources mru-sources @a(ss) []
org.gnome.desktop.input-sources per-window false
org.gnome.desktop.input-sources show-all-sources false
org.gnome.desktop.input-sources sources [('xkb', 'us')]
org.gnome.desktop.input-sources xkb-options @as []
org.gnome.desktop.wm.keybindings switch-input-source-backward ['<Shift><Super>space', '<Shift>XF86Keyboard']
org.gnome.desktop.wm.keybindings switch-input-source ['<Super>space', 'XF86Keyboard']
gschema
- /usr/share/glib-2.0/schemas/org.gnome.desktop.input-sources.gschema.xml
- /usr/share/glib-2.0/schemas/org.gnome.desktop.wm.keybindings.gschema.xml
- ~/.config/dconf/user