x60 tablet で相変わらず描いているわけですが、使えるボタンに限りがあるのはいかんともし難く、特に立って使っているときは本体を支持する必要もあって使えるボタンは 1,2 つという状態になります。
そんなわけで、小さいゲームパッド買ってショートカットに使おうというお話。
さっくり linux kernel 側で認識したので、後は X 側でキーボードのシグナルとして扱わせられればおk。Linux Input Subsystemの使い方とか、最近自分で訳した X.org の Input ドライバの書き方を読んで、まぁ作れるんじゃないかと思っていた矢先、joy2key と言うのを教えてもらった。
とりあえず、まずは joy2key を使ってみることに。joy2key は起動時に対象となるアプリの window name を指定する必要があるので、まず GIMP を実行( % はコマンドプロンプト、以下同様 )、起動したら xwininfo で window name を確認する。
% gimp & % xwininfo (※ 実行後 GIMP のウィンドウをクリックする) xwininfo: Please select the window about which you would like information by clicking the mouse in that window. xwininfo: Window id: 0x4c00278 "GNU Image Manipulation Program" Absolute upper-left X: 180 Absolute upper-left Y: 28 Relative upper-left X: 180 Relative upper-left Y: 28 Width: 1213 Height: 340 Depth: 24 Visual Class: TrueColor Border width: 0 Class: InputOutput Colormap: 0x138 (installed) Bit Gravity State: NorthWestGravity Window Gravity State: NorthWestGravity Backing Store State: NotUseful Save Under State: no Map State: IsViewable Override Redirect State: no Corners: +180+28 -207+28 -207-832 +180-832 -geometry 1213x340+180+28
window id の右側にある文字列が、window name となる。以下の通り、joy2key 起動時にこれを指定する、この時ゲームパッドは接続してあって、/dev/input/js0 というデバイスが作成されているものとする。
joy2key "GNU Image Manipulation Program" -dev /dev/input/js0 -X -buttons KP_1 KP_2 KP_3 \ KP_4 KP_5 KP_6 KP_7 KP_8 KP_9 -axis L R U D -thresh -16383 16383 -16383 16383
gimp を日本語環境で上げると、window name が"GIMP (GNU 画像処理プログラム)"となってしまい、joy2key で指定できなくなる。まぁやろうと思えばどうとでもできるからいいや。