Linuxの親指シフターにとって、感動的なソフトを発見してしまった。oyainput というソフト。
- github: inwskatsube/oyainput: software to emulate Japanese thum shift keyboard (oyayubi-shift keyboard)
- 紹介されてるページ: Linuxで親指シフトを利用する(Mozcとlibkkcの場合) - Qiita
今まで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
これで、立ち上がり時に自動起動するようになった。