Windowsパソコンでは日本語入力の切替はAlt+半角/漢字 キーまたは、半角/漢字キーのみで行います。が、Linuxというよりkinput2 + canna の環境ではCtrl + o, Shift + Space等で切り替えるようになっています。 102キーボードを前提にしてそうな感じはしますが、自分が使用しているのは106の日本語キーボード なので、半角/漢字キーで切替ができるとうれしいです。
まず、最初にキーコードの調査を行い、キーの割付を変えることで実現していこうと思います。
xevコマンドを使用して、半角/漢字キーのキーコード を調べます。
$ xev
半角/全角キーを押下すると、以下のようなメッセージが出力されます。
KeyPress event, serial 26, synthetic NO, window 0x2800001,
root 0x3a, subw 0x0, time 2717661, (680,202), root:(695,298),
state 0x0, keycode 49 (keysym 0xff2a, Zenkaku_Hankaku),
same_screen YES,
XLookupString gives 0 bytes: " "
キーコードは49のようです。
~/.xsession に以下の設定を行います。
xmodmap -e "keycode 49 = Zenkaku_Hankaku"
~/.cannaに以下の設定を追加します。
(set-key 'alpha-mode "\Zenkaku_Hankaku" 'japanese-mode) (global-set-key "\Zenkaku_Hankaku" 'alpha-mode)
この設定でいいはずなんですが、半角/漢字キーで日本語入力の起動 はできましたが、終了が出来ませんでした。