ibus.el で 「、」が入力出来無かったのを解消

※最初に断りを入れておきますが、特定の文字が入力出来なかったのは、ibus.el に原因があったわけではありません。


emacs上で ibus.elを使用した日本語仮名入力を行うと、何故か「、」の文字を入力しようとしても「ね」が入力されてしまう。

原因を調べてみると、ibus-el-agentの

def process_key_event(id_no, keyval, modmask, backslash, pressed):
        ...
        keycode = display.keysym_to_keycodes(keyval)[0]

の部分で、「、」がアサインされている "<" キーの keysym値 60 を keycode に変換した際に、期待する 59 ではなく、94 が返ってきているのが原因のようだった。

xmodmap -pke で確認してみると、

  keycode  94 = less greater less greater bar brokenbar

こんな行が( ゚д゚)ポカーン


そこで、.Xmodmap に

keycode 94 =

という行を書き加えて解決。


※ターミナル上では普通に「、」を入力出来ていたので、pythonのライブラリの方は keycodeの変換ロジッがちょっと異なってるんだろうか??