web-dev-qa-db-ja.com

Microsoft Sculpt Ergonomic Desktop仮想ジョイスティック:削除する方法?

私はMicrosoft Sculpt Ergonomic Desktop(キーボード+マウス)を使用していますが、ゲームパッドをサポートしていないゲームでは、存在しない仮想ジョイスティックが入力を狂わせるため、大きな問題が発生します。 rmmod joydev問題は解決しましたが、実際のゲームパッドと駆動輪があり、ゲームの入力コントローラーとして使用したいと考えています。では、ゲームコントローラのサポートを終了せずに仮想スカルプトジョイスティックのみを無効にするにはどうすればよいですか?

$ udevadm info/dev/input/js

$ udevadm info --attribute-walk/dev/input/js

http://i.imgur.com/sAiQXAR.png - jstest-gtk screenshot
2
wintermute
1
wintermute

一時的なブルートフォースソリューションは、デバイスファイルの名前を変更/削除することです。

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/に適用され、それらを作成するためのチュートリアルがネット上に散在していることがわかります。おそらくこれは役立つでしょう、それが最新かどうかはわかりません。

http://www.reactivated.net/writing_udev_rules.html

1
Grumbel