私はMicrosoft Sculpt Ergonomic Desktop(キーボード+マウス)を使用していますが、ゲームパッドをサポートしていないゲームでは、存在しない仮想ジョイスティックが入力を狂わせるため、大きな問題が発生します。 rmmod joydev
問題は解決しましたが、実際のゲームパッドと駆動輪があり、ゲームの入力コントローラーとして使用したいと考えています。では、ゲームコントローラのサポートを終了せずに仮想スカルプトジョイスティックのみを無効にするにはどうすればよいですか?
$ udevadm info --attribute-walk/dev/input/js
http://i.imgur.com/sAiQXAR.png - jstest-gtk screenshot
一時的なブルートフォースソリューションは、デバイスファイルの名前を変更/削除することです。
rm /dev/input/js0
mv /dev/input/js1 /dev/input/js0
ただし、最近のほとんどのゲームは/dev/input/js0
インターフェースをまったく使用していないため、/dev/input/eventX
ファイルにも注意する必要があります。 evtest
を使用して、キーボードとジョイスティックがどのデバイスかを確認できます。次の再起動時に、デバイスは元の順序に戻ります。
もう少しブルートフォースの方法としては、環境変数を使用する方法があります。
SDL_JOYSTICK_DEVICE="/dev/input/js1"
export SDL_JOYSTICK_DEVICE
これにより、SDLベースのゲームはjs0ではなくjs1を使用するようになります。これは最新のSDL2ベースのゲームでは機能せず、1つのジョイスティック/ゲームパッドでしか機能しないため、用途は限られています。
SDL2にはジョイスティックと再マップボタンを構成するオプションが用意されていますが、現時点ではデバイスを並べ替える機能はないと思います。
そして最後に、udevルールを記述する「クリーン」メソッドもあります。これは基本的にrm
/mv
ハックと同じですが、永続的です。これらのルールは/etc/udev/rules.d/
に適用され、それらを作成するためのチュートリアルがネット上に散在していることがわかります。おそらくこれは役立つでしょう、それが最新かどうかはわかりません。