kinput2 とか canna とか Emacs for Canna(その昔 Emcws であったもの.誰かが 23と24に移植してくれてたので自分でebuild書いた) とかの悩みどころ.
それは,kinput2 も Emacs も どちらも C-o で IM が起動するのだが,他のキーに設定出来そうでうまく機能しなくて,kinput2 で入力したいのに kinput2 が起動しなかったり,Emacs は常に内蔵機能で入力したいのに kinput2 が邪魔しにきやがったり,イライラの極みなのである.
設定ファイルがそこら中に飛び散りまくってるうえ,どこをどう設定すればどこに反映されるかとかイマイチよくわからず,ネットを漁っても役に立つドキュメントは殆んどない.
しかも XMODIFIERS とゆう変数で指定するのだが,端末から起動したプロセスが親の環境変数を引き継いでたりして,もうまさにクソファッキンな症状に陥る事請け合いだ!
そんな訳で,やっと解決策を編みだした.以下,関連箇所のみ抜粋.
.xinitrc
## default is unset XMODIFIERS="@im=kinput2" kinput2 -canna &
.Xdefault
## kinput2 keybind shift+space #Kinput2*conversionStartKeys: Mod4<Key>o Kinput2*conversionStartKeys: Shift<Key>space
.ratpoisonrc
## C-c:none, C-C:kinput2. bind c exec XMODIFIERS=@im=none /usr/bin/mrxvt bind C exec XMODIFIERS=@im=kinput2 /usr/bin/mrxvt
.bashrc
## Emacs connect to canna using internal function always. alias emacs='XMODIFIERS=@im=none emacs -nw'
kinput2 は常にスタンバってはいるのだが,ratpoison の端末起動キーを二つ用意し,はじめから端末そのものを kinput2 付きで起動するかそうでないかを使い分けて指定する仕様.