Linuxの親指シフターにとって、感動的なソフトを発見してしまった。oyainput というソフト。

今までLinuxで親指シフトを利用しようとするときは、Anthyというあまり賢くないIMEを使うしかなかった。Google日本語入力のオープンソースであるMozcがつかえればいいのだが、これが今まで使えなかった。

それが、oyainputをつかうと、IMに Mozcを指定することができるのだ!これは感動的だ。感謝!!!

起動の不具合と解決方法2点

しかし、使おうとすると問題が発生。なんとか解決したのでメモ。

起動するとxmodmapの設定が無効になる

Linuxのキーボードのキーマップ(CtrlをCapsLockに割り当てるなど)を変更するために、xmodmapを利用しているのだけれども、その設定が oyainputを起動すると無効になってしまう。

なので、oyainputを叩いたあとに、

xmodmap ~/.xmodmap

を叩きなおすと、再度有効になった。ちょっと焦る。

起動するとキーボードが2つ検出される

multiple keyboard is detected.というメッセージがでる。Logicoolの BlueThoothマウスをつかっているのだが、これがキーボードとして認識されてしまう。なんとかしようとソースコードを調査。以下のコマンドを叩いて、キーボードを調べているようだ。

$ grep -E Name=|Handlers|EV= /proc/bus/input/devices| grep -B2 EV=1[02]001[3Ff]
N: Name="AT Translated Set 2 keyboard"
H: Handlers=sysrq kbd event3 leds
B: EV=120013
--
N: Name="Logitech MX Anywhere 2"
H: Handlers=sysrq kbd mouse0 event5 leds
B: EV=12001f

なるほど、2つ現れる。ソースでは、正規表現でEV=120013,12001F,12001fの三種類をキーボードとして認識しているようだ。その部分を、120013のみ認識するように書き換えてコンパイル。

これはあまりよくない解決方法だけれども、これでmultiple keyboard is detectedというメッセージはでなくなった。

最後に自動起動設定

~/.profileに以下の二行を追加。

oyainput &
xmodmap ~/.Xmodmap

これで、立ち上がり時に自動起動するようになった。