fcitx5にてCapsLockでIME切り替えをする
環境
- OS:Linux(NixOS)
- WM : Niri(wayland)
- fcitx5 + mozc
- US配列
やりたいこと
fcitx5を導入してデフォルト設定のままだとIME切り替えがctrl+spaceとなる。
windows,macでは普段capslockキーでIME切り替えを行っているため、同様にしたい。
結論
- 物理CapsキーをXKBでMenuキーへ変換
- fcitx5でMenuを日本語入力切り替えに設定
やったこと
-
fcitx5から切り替えキーをcapslockに割り当てる。
fcitx5-configtool
GUIの設定画面でシンプルにそのまま割り当ててみる。
⇛ なぜか挙動がおかしくなった。
確かにcapslockを押せばIME入力ができるようになるのだが、勝手に文字が大文字に固定されて小文字入力が打てなくなったり、左ShiftキーでIMEが切り替わったり、よくわからない挙動をするようになった。
-
原因
XKB側のcapslockが有効になっていたため、XKBの大文字固定とfcitx5のIME切り替えが競合してしまっていた。
-
変更内容
-
XKB側でcapslock物理キーをmenuキーに変換
keyboard { xkb { layout "us" options "terminate:ctrl_alt_bksp,caps:menu" } } -
fcitx5でMenuキーを切り替えに割り当て
globalOptions = { "Hotkey/TriggerKeys" = { "0" = "Menu"; "1" = "Zenkaku_Hankaku"; }; "Hotkey/AltTriggerKeys"."0" = "Shift+Shift_R"; }; -
reboot
雑記
物理キーボード
⇛ Niri(WM)
⇛ XKB
⇛ fcitx5 \
入力操作の距離経路がこのようになっていることを理解した。
Menuキー
ところでMenuキーって何。調べてみたところ、日本語配列のキーボードについている、大体右Ctrlの隣くらいにあるリストみたいな絵柄のキーのことだった。あれMenuキーって言うんだ。