トップ «前の日記(2009-04-24) 最新 次の日記(2009-05-12)» 編集

AOISAKURA 日記

2003|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|04|05|06|07|08|09|12|
2013|02|03|05|06|08|09|10|11|
2015|11|
2016|12|
2017|03|08|
2018|01|03|06|
2019|05|07|09|10|
2020|01|02|03|
2021|03|07|
2022|06|
2023|11|
2024|07|

pixiv / twitter / github

bluesky / misskey / pawoo

※発信する情報は、個人の見解・意見であり、所属する会社の見解・意見ではありません。


2009-05-04 まったり [長年日記]

_ [pc][gimp] ゲームパッドでキーボード入力

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 で指定できなくなる。まぁやろうと思えばどうとでもできるからいいや。