ゲームコントローラーをタブレットの操作に使う

先日，Fujitsu ARROWS Tab Q508/SE というWindows タブレットを入手してLinux を導入して使っています．

モバイル向けLinuxディストリビューションのMobianをWidownsタブレットで試す (鹿児島Linux勉強会 2023.08(オンライン開催) で発表)

タブレットLinuxで暗号化ファイルシステム(dm-crypt)をアンロック (東海道らぐ名古屋 2023年10月オフな集まり で発表)

主にビュワーとして使っていますが，スタンドに置いて使うときなどHID デバイスが欲しくなります．ビュワーとして使う場合はそんなに昨日は必要ないのでゲームコントローラーを試してみました．

今回は昔ハードオフで500円くらいで買ったXbox 360 コントローラーを使いました．いつもはSteam などでゲームをするのに使っています．これをQJoyPad 4 を利用してマウス，キーボードに割り当ててみました．

panzi/qjoypad: fork of qjoypad http://qjoypad.sourceforge.net/

QJoyPad 4 を導入

$ sudo apt install qjoypad
$ dpkg -L qjoypad
/.
/usr
/usr/bin
/usr/bin/qjoypad
/usr/share
/usr/share/applications
/usr/share/applications/qjoypad.desktop
/usr/share/doc
/usr/share/doc/qjoypad
/usr/share/doc/qjoypad/changelog.Debian.amd64.gz
/usr/share/doc/qjoypad/changelog.Debian.gz
/usr/share/doc/qjoypad/copyright
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/24x24
/usr/share/icons/hicolor/24x24/apps
/usr/share/icons/hicolor/24x24/apps/qjoypad.png
/usr/share/icons/hicolor/64x64
/usr/share/icons/hicolor/64x64/apps
/usr/share/icons/hicolor/64x64/apps/qjoypad.png
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/qjoypad.1.gz
/usr/share/qjoypad
/usr/share/qjoypad/translations
/usr/share/qjoypad/translations/qjoypad_de.qm
$ dpkg-query -W qjoypad
qjoypad 4.3.1-3+b1

インストールすると以下のようなアイコンで登録されました．起動するとタスクトレイにアイコンが現れます．

Note

Gnome Shell 環境だとタスクトレイにアイコンが表示されないので， gnome-shell-extension-top-icons-plus 等の拡張機能を導入&有効にする必要がありそうです．

コントローラーを接続していない状態でアイコンをクリックすると以下のようなメッセージが表示されます．

Xbox 360 コントローラーの接続

[ +8.425835] usb 1-4.2: new full-speed USB device number 6 using xhci_hcd
[ +0.108186] usb 1-4.2: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.14
[ +0.000049] usb 1-4.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ +0.000026] usb 1-4.2: Product: Controller
[ +0.000019] usb 1-4.2: Manufacturer: ©Microsoft Corporation
[ +0.000017] usb 1-4.2: SerialNumber: 00A????
[ +0.024350] input: Microsoft X-Box 360 pad as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.2/1-4.2:1.0/input/input31

コントローラーを接続してからタスクトレイのQJoyPad アイコンをクリックすると以下のような画面が表示されます．

この状態でコントローラーを操作すると操作したボタンに対応した場所が青く点灯します．

該当部分をクリックするとキーの割当画面になります．ここで [NO KEY] ボタンを押すと割当キー画面になります．

ここでコントローラーのボタンに割り当てたいキーを入力することで割りあてられます．

アナログスティックは少し画面が違います．自分の現在以下のような設定にしてマウス移動に利用しています．

QJoyPad のウィンドウからフォーカスを外すと利用できるようになるようです．
あとは設定を保存して次回以降すぐ使えるようにしておくといいです．用途別に設定を作っておくこともできそうです．

今回使ったコントローラーはUSB 接続の有線のもの．出来ればBluetooth 接続のものを使いたいところです．ゲームをする場合 Xbox ワイヤレス コントローラー がサードパーティーのものとそう変わらない値段だし乾電池使えるし有線でも使えるということで良さそう．でもごろ寝で漫画を呼んだりと言った場合は 8bitdo の小さなコントローラー なんかが便利そうです．
(今のコントローラーアナログスティックがガタついていて勝手に動いたりするし……)

Amazon.co.jp: 【純正品】Xbox ワイヤレス コントローラー + USB-C ケーブル : ゲーム

Amazon.co.jp: 8bitdo Zero 2 ゲームコントローラー Bluetooth ワイヤレス Windows Android macOS RaspberryPi Steam ターコイズ Edition : ゲーム

環境

$ dpkg-query -W qjoypad
qjoypad 4.3.1-3+b1
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12