Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
ゲームパッドのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
ゲームパッド
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:入力デバイス]] [[Category:ゲーム]] [[en:Joystick]] ゲームパッドを Linux で使うのには少し手間がかかるかもしれません。サポートが薄いためではなく、あなたのゲームパッドを動かすのにロードすべきモジュールを見つける必要があり、そしてそれがわかりづらいことがあるからです。 == ゲームパッド入力システム == 実は Linux には異なる2つのゲームパッドの入力システムが存在します。オリジナルの 'Joystick' インターフェイスと新しい 'evdev' ベースのインターフェイスです。 {{ic|/dev/input/jsX}} は 'Joystick' API インターフェイスに {{ic|/dev/input/eventX}} は 'evdev' インターフェイス (こちらにはマウスやキーボードなど他の入力デバイスも含まれます) にそれぞれマップされています。 ほとんどの新しいゲームは 'evdev' インターフェイスをデフォルトで使います。しかしながらこのページで触れているツール (jscal, jstest, jstest-gtk) の多くは旧式の 'Joystick' でしか動作せず、これらのツールによる調整やマッピングがほとんど無駄になってしまうでしょう。'evdev' はリマッピングやキャリブレーションをサポートしておらず、サポートしているアプリケーションに任せっきりになっています。 {{ic|1=SDL_JOYSTICK_DEVICE=/dev/input/js0}} 環境変数を設定することで 'Joystick' API を使うように SDL を強制させることができます。これは X3 などのゲームで役に立ちます。 wine での確認とテストは基本的に {{ic|wine control joy.cpl}} で両方できます。 また、xorg ドライバー {{Pkg|xf86-input-joystick}} というのも存在します。これはゲームパッドを使って xorg のマウス・キーボードを操作できるようにするだけのもので、ほとんどの人にとっては望んでいたものではないとなるでしょう。ゲームでの調整やボタンマッピングのために {{ic|xorg.conf.d}} ファイルを編集するのは無意味ということです。 == 必要なモジュールの確認 == Linux における全てのゲームパッド関連のモジュールの広範な外観を見るには、Linux カーネルのソースを紐解く必要があります -- 特に Documentation セクションがそれです。残念ながら、pacman のカーネルパッケージには必要なドキュメントが含まれていません。カーネルソースをダウンロードした場合、{{ic|Documentation/input/joystick.txt}} を見て下さい。また、[https://kernel.org/ kernel.org] から使用しているカーネルの "cgit" (git フロントエンド) リンクをクリックして、上部の "tree" リンクをクリックすることでカーネルのソースツリーをブラウズすることができます。こちらは[https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/Documentation/input/joystick.txt?id=refs/tags/v3.12.6 カーネル 3.12.6 のドキュメント]のリンクです。 Microsoft Sidewinder コントローラー ({{ic|sidewinder}}) や Logitech デジタルコントローラー ({{ic|adi}}) など、特定のモジュールを必要とするゲームパッドも存在します。多くの古いゲームパッドはシンプルな {{ic|analog}} モジュールで動作します。サウンドカードによるゲームポートにゲームパッドを接続している場合、サウンドカードドライバーをロードする必要があります - しかしながら、カードによっては、Soundblaster Live など、特定のゲームポートドライバーを持っているものもあります ({{ic|emu10k1-gp}})。古い ISA サウンドカードは {{ic|ns558}} モジュールを必要とします。これは標準のゲームポートモジュールです。 Linux でゲームパッドを動作させるのに関連するモジュールは多々あるため、ここでは全てを説明することはできません。詳細については上記のドキュメントを見るようにしてください。 == モジュールのロード == ゲームポートのモジュール ({{ic|ns558}}, {{ic|emu10k1-gp}}, {{ic|cs461x}}, など)、ゲームパッドのモジュール ({{ic|analog}}, {{ic|sidewinder}}, {{ic|adi}}, など)、そしてカーネルジョイスティックデバイスドライバー ({{ic|joydev}}) をロードする必要があります。これらを {{ic|/etc/rc.conf}} に追加するか、[[カーネルモジュール|modprobe]] してください。{{ic|gameport}} モジュールは他のモジュールの依存モジュールとして、自動でロードされるはずです。 == 設定のテスト == モジュールがロードされたら、新しいデバイスが見つかるはずです: {{ic|/dev/input/js0}}。デバイスを {{ic|cat}} することで動作するか確認できます - スティックを動かして、全てのボタンを押して下さい。例えば Logitech Thunderpad Digital には2つのボタンが存在しますが {{ic|analog}} モジュールでは動作しません。ドキュメントには、このコントローラーのための固有の {{ic|adi}} モジュールが載っています。教訓として、最初に動作しなかったときも、諦めてはいけません。ドキュメントを隅々まで読んでみましょう。ドキュメントを見つけるまでは何も動かせないこともあります。 テストする他の方法は AUR の {{AUR|joyutils}} パッケージの {{ic|jstest}} を使うことです。このパッケージにはデバイスのキャリブレーションのための {{ic|jscal}} も入っています。一行では設定できないほどの多数のボタンや軸がある場合や、パッドに加速度センサが付いている場合は (何も起こってない時も新しいイベントを送り続けます) グラフィカルツールを使って下さい。AUR にはそのための {{AUR|jstest-gtk-git}} が存在します。sixaxis のテストとトラブルシューティングには必須です。 == USB ゲームパッド == USB を動作させて、ジョイスティックドライバーを modprobe する必要があります。{{ic|usbhid}} と {{ic|joydev}} です。 usb マウスやキーボードを使っている場合、{{ic|usbhid}} は既にロードされるので {{ic|joydev}} モジュールだけをロードしてください。 == PS3 コントローラー == Sixaxis ゲームパッドは USB で接続された時に設定なしで動作します (操作を開始するには PS ボタンを押さなくてはなりません)。振動機能はカーネル 3.14 からサポートされています。 Steam は PS3 パッドとして正しく認識し、PS ボタンで Big Picture を起動することが可能です。Big Picture やゲームによっては 360 コントローラーのように振る舞うことができます。ゲームパッドによるマウス操作はデフォルトでオンになっています。ゲームをプレイする前にオフにしたいときは、下を見て下さい。 == Xbox 360 コントローラー == このコントローラーはパッケージを別にインストールしなくても動作しますが、無線コントローラーには無線レシーバーが必要です (charge-and-play ケーブルはコントローラとの通信に使えません)。有線コントローラーと無線レシーバーはどちらも {{ic|xpad}} カーネルモジュールによってサポートされています。 デフォルトで、コントローラーと関連付けられたデバイス (例: {{ic|/dev/input/event14}}) は {{ic|root}} に所有されます。これは {{ic|root}} グループに入っており、所有者にしかデバイスを読み書きすることが許可されません ({{ic|600}})。結果として、アプリケーションはスーパーユーザー権限で実行しないかぎりコントローラーを使用できなくなります。これを修正するため、以下の {{ic|udev}} ルールを作成してください。 {{hc|/etc/udev/rules.d/50-event.rules|<nowiki> KERNEL=="event*", GROUP="games", MODE="660" </nowiki>}} この {{ic|udev}} ルールは {{ic|games}} グループのメンバーであるユーザーがコントローラーを使えるようにします。 残念ながら xpad には新しい無線コントローラーで問題が起こります: * ボタンマッピングがおかしい ([https://github.com/ValveSoftware/steam-for-linux/issues/95#issuecomment-14009081 discussion in Steam bugtracker])。 * 同期が動作しない。4つの赤い LED が点滅しますが、コントローラーは動作します ([https://bbs.archlinux.org/viewtopic.php?id=156028 discussion in Arch Forum])。 解決方法は {{AUR|xboxdrv}} を使うことです。これはユーザースペースで動作するもうひとつのドライバーです。システムサービスとして起動することができます。もしくは [[Wikipedia:ja:SteamOS|SteamOS]] のパッチがあたった xpad ({{AUR|steamos-xpad-dkms}}) も以上の問題を修正しています。 コントローラーを使ってマウスの制御や、ボタンのキーへのマッピングなどをしたい場合、{{ic|xf86-input-joystick}} パッケージを使う必要があります (設定のヘルプは {{ic|man joystick}} で見れます)。マウスが隅で固まってしまうときは、{{ic|/etc/X11/xorg.conf.d/50-joystick.conf}} の {{ic|MatchDevicePath}} を {{ic|/dev/input/event*}} から {{ic|/dev/input/js*}} に変更すれば直るでしょう。 {{Tip|[[TLP]] 電源管理デーモンを使っている場合、Microsoft の無線アダプタの接続に問題が発生することがあります (例: インジケータ LED がアダプタを接続した数秒後に消えてしまい、コントローラーの接続が失敗する)。これは TLP の USB 自動サスペンド機能が原因です。この機能を完全に無効化するか、Microsoft の無線アダプタのデバイス ID を機能のブラックリストに追加することで問題は解決します (詳しくは [http://linrunner.de/en/tlp/docs/tlp-configuration.html#usb TLP configuration] をチェック)。}} === SteamOS の xpad === デフォルトの {{ic|xpad}} カーネルモジュールで問題がおこる場合、[[AUR]] の {{AUR|steamos-xpad-dkms}} でインストールできる SteamOS バージョンを使うことができます。 インストールする前に、[[DKMS]] をインストールして実行してください。 それから修正版のカーネルモジュール {{AUR|steamos-xpad-dkms}} を [[AUR]] からインストールして下さい。インストール中に新しい xpad カーネルモジュールがカーネルに結び付けられるのが確認できると思います: Creating symlink /var/lib/dkms/steamos-xpad-dkms/0.1/source -> /usr/src/steamos-xpad-dkms-0.1 DKMS: add completed. Kernel preparation unnecessary for this kernel. Skipping... Building module: cleaning build area.... make KERNELRELEASE=3.12.8-1-ARCH KVERSION=3.12.8-1-ARCH.... cleaning build area.... 再起動すれば動作するようになります。 === xboxdrv で2つのコントローラーを使う === xboxdrv は多数のコントローラーをサポートしていますが、[http://pingus.seul.org/~grumbel/xboxdrv/xboxdrv.html#idp147464 デーモンモード] でしか動作しません。 一番シンプルな方法はサービスとして xboxdrv をデーモンモードで起動して: ExecStart = /usr/bin/xboxdrv -D -c /etc/conf.d/xboxdrv 設定ファイルに2番目のコントローラーのサポートを追加することです: {{bc|<nowiki> [xboxdrv] silent = true next-controller = true [xboxdrv-daemon] dbus = disabled </nowiki>}} === Xbox 360 コントローラーに偽装する === xboxdrv を使うことで {{ic|--mimic-xpad}} スイッチによってあらゆるコントローラーを Xbox 360 コントローラーとして登録することができます。Xbox 360 コントローラーをサポートしていて、他のゲームパッドでは問題がおこるゲームでありがたい機能です。 まず、コントローラーのボタンやスティックの名前を確認する必要があります。{{Pkg|evtest}} を使えば確認できます。{{ic|evtest}} を実行してコントローラーに対応するデバイスのイベント ID 番号 ({{ic|/dev/input/event*}}) を選択してください。コントローラーのボタンを押したりスティックを動かしてボタンやスティックの名前を調べます。 以下は出力の例です: {{bc|<nowiki> Event: time 1380985017.964843, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90003 Event: time 1380985017.964843, type 1 (EV_KEY), code 290 (BTN_THUMB2), value 1 Event: time 1380985017.964843, -------------- SYN_REPORT ------------ Event: time 1380985018.076843, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90003 Event: time 1380985018.076843, type 1 (EV_KEY), code 290 (BTN_THUMB2), value 0 Event: time 1380985018.076843, -------------- SYN_REPORT ------------ Event: time 1380985018.460841, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90002 Event: time 1380985018.460841, type 1 (EV_KEY), code 289 (BTN_THUMB), value 1 Event: time 1380985018.460841, -------------- SYN_REPORT ------------ Event: time 1380985018.572835, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90002 Event: time 1380985018.572835, type 1 (EV_KEY), code 289 (BTN_THUMB), value 0 Event: time 1380985018.572835, -------------- SYN_REPORT ------------ Event: time 1380985019.980824, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90006 Event: time 1380985019.980824, type 1 (EV_KEY), code 293 (BTN_PINKIE), value 1 Event: time 1380985019.980824, -------------- SYN_REPORT ------------ Event: time 1380985020.092835, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90006 Event: time 1380985020.092835, type 1 (EV_KEY), code 293 (BTN_PINKIE), value 0 Event: time 1380985020.092835, -------------- SYN_REPORT ------------ Event: time 1380985023.596806, type 3 (EV_ABS), code 3 (ABS_RX), value 18 Event: time 1380985023.596806, -------------- SYN_REPORT ------------ Event: time 1380985023.612811, type 3 (EV_ABS), code 3 (ABS_RX), value 0 Event: time 1380985023.612811, -------------- SYN_REPORT ------------ Event: time 1380985023.708768, type 3 (EV_ABS), code 3 (ABS_RX), value 14 Event: time 1380985023.708768, -------------- SYN_REPORT ------------ Event: time 1380985023.724772, type 3 (EV_ABS), code 3 (ABS_RX), value 128 Event: time 1380985023.724772, -------------- SYN_REPORT ------------ </nowiki>}} 上記の場合 {{ic|BTN_THUMB}}, {{ic|BTN_THUMB2}}, {{ic|BTN_PINKIE}} がボタンで、{{ic|ABS_RX}} が右アナログスティックの X 軸になります。 そしてこの名前を使って次のようなコマンドで Xbox 360 コントローラーにみせかけることができます: $ xboxdrv --evdev /dev/input/event* --evdev-absmap ABS_RX=X2 --evdev-keymap BTN_THUMB2=a,BTN_THUMB=b,BTN_PINKIE=rt --mimic-xpad 上の例は不完全です。デモンストレーション用に1つの軸と3つのボタンしかマップしません。{{ic|xboxdrv --help-button}} を使って Xbox コントローラーのボタンと軸を見て、上のコマンドに拡充してそれぞれ割り当てて下さい。軸のマッピングは {{ic|--evdev--absmap}} の後に、ボタンのマッピングは {{ic|--evdev-keymap}} の後に記述します (カンマで区切り、スペースは使いません)。 デフォルトで、xboxdrv は全てのイベントをターミナルに出力します。これによってマッピングが正しいかどうかテストすることが可能です。{{ic|--silent}} オプションを追加すると出力がされなくなります。 ====USB による Playstation 3 コントローラー==== PS3 コントローラーを使っていて USB で接続している場合、xboxdrv には初めから組み込まれたマッピングが存在します。次のプログラムを実行 (して動作中のドライバを取外) すれば動作するようになります。 # xboxdrv --silent --detach-kernel-driver ====Bluetooth による Playstation 3 コントローラー==== bluetooth を通してプレイステーション3のコントローラーを使うには {{AUR|sixpair}} ユーティリティをインストールする必要があります。 sixpair をインストールした後はコントローラーを USB ケーブルで接続して sixpair を実行してください: # sixpair USB からコントローラーを切断して5分間待機してください (本当に待機する必要があるのかは定かでない)。 そして bluez でペアリングを行います。{{Pkg|bluez-utils}} と {{Pkg|bluez-plugins}} パッケージが必要です。 全ての bluetooth ユーティリティ (bluedevil や bluemon) を無効にしてください。 bluetoothctl ユーティリティを実行します: # bluetoothctl bluetooth のプロンプトが表示されます。 プレイステーションボタンを押して、接続・切断のメッセージを見てデバイスのアドレスをコピーしてください (例: 38:C0:96:56:4D:AA)。 ランプの点滅が止まるまで待って下さい。 そして、以下を入力してください: agent on default-agent discoverable on pairable on もう一度プレイステーションボタンを押して、点滅している間に次を入力します: connect <device_addr> デバイスが利用可能にならない場合 (接続と切断を繰り返します) 以下のような表示がされるまで上のコマンドを試し続けてください: [CHG] Device <device_addr> Modalias: usb:v054Cp0268d0100 [CHG] Device <device_addr> UUIDs: 00001124-0000-1000-8000-00805f9b34fb 00001200-0000-1000-8000-00805f9b34fb そしてデバイスを認証してください: trust <device_addr> これで完了です。 次からはプレイステーションボタンを押せば自動的に接続されます。 また、無効にした bluetooth アプレット・モニターをもう一度有効にすることができます。. コントローラーを使わないときは切断するのを忘れないで下さい。接続したままにしておくと、バッテリーを消費します。 xboxdrv を使って xbox360 コントローラーをエミュレートする場合は udev ルールを作成するのが良いでしょう。 =====udev ルールを作成する===== 以下の内容で新しい udev ルールを作成してください (例えば 99 または 98-dualshock.rules を /etc/udev/rules.d/ に配置): KERNEL=="event*", SUBSYSTEM=="input", ATTRS{uniq}=="<device_addr_you_got_on_pairing>", SYMLINK+="input/dualshock3" xboxdrv を新しいデバイスで実行します: xboxdrv --evdev /dev/input/dualshock3 --mimic-xpad mimic-xpad が動作しない場合は、xboxdrv [https://github.com/Grumbel/xboxdrv/blob/master/examples/playstation3.xboxdrv] による設定ファイルを使用して xboxdrv セクションに以下を追加してください: mimic-xpad = true そして evdev 行を以下のように置き換えてください: evdev = /dev/input/dualshock3 (or whatever other name you gave in the udev_rule) 設定したら、xboxdrv を実行します: # xboxdrv -c config_file 楽しい時間をお過ごしください。 ====Playstation 2 アダプタ==== PS2 デュアルアダプターのボタンマッピングを修正して Xbox コントローラーに見せかけるために、以下のコマンドを使うことができます: sudo xboxdrv --evdev /dev/input/event* \ --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RZ=x2,ABS_Z=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \ --axismap -Y1=Y1,-Y2=Y2 \ --evdev-keymap BTN_TOP=x,BTN_TRIGGER=y,BTN_THUMB2=a,BTN_THUMB=b,BTN_BASE3=back,BTN_BASE4=start,BTN_BASE=lb,BTN_BASE2=rb,BTN_TOP2=lt,BTN_PINKIE=rt,BTN_BASE5=tl,BTN_BASE6=tr \ --mimic-xpad --silent ====Logitech Dual Action==== Logitech Dual Action ゲームパッドは PS2 のパッドと似ているマッピングを持っていますが、Xbox コントローラーのように使うにはいくつかのボタンとトリガーを交換する必要があります: sudo xboxdrv --evdev /dev/input/event* \ --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RZ=x2,ABS_Z=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \ --axismap -Y1=Y1,-Y2=Y2 \ --evdev-keymap BTN_TRIGGER=x,BTN_TOP=y,BTN_THUMB=a,BTN_THUMB2=b,BTN_BASE3=back,BTN_BASE4=start,BTN_BASE=lt,BTN_BASE2=rt,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE5=tl,BTN_BASE6=tr \ --mimic-xpad --silent ====Playstation 4 コントローラー==== PS4 コントローラーのボタンマッピングを修正するために、xboxdrv で以下のスクリプトを使用するか、または [https://github.com/chrippa/ds4drv ds4drv] プログラムを試すことができます: #!/bin/bash sudo xboxdrv \ --evdev /dev/input/by-id/usb-Sony_Computer_Entertainment_Wireless_Controller-event-joys> --evdev-absmap ABS_X=x1,ABS_Y=y1 \ --evdev-absmap ABS_Z=x2,ABS_RZ=y2 \ --evdev-absmap ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \ --evdev-keymap BTN_A=x,BTN_B=a \ --evdev-keymap BTN_C=b,BTN_X=y \ --evdev-keymap BTN_Y=lb,BTN_Z=rb \ --evdev-keymap BTN_TL=lt,BTN_TR=rt \ --evdev-keymap BTN_SELECT=tl,BTN_START=tr \ --evdev-keymap BTN_TL2=back,BTN_TR2=start \ --evdev-keymap BTN_MODE=guide \ --axismap -y1=y1,-y2=y2 \ --mimic-xpad \ --silent \ "$@" ==デッドゾーンの設定== アナログ入力のデッドゾーンを設定したいときは、xorg (マウス・キーボードエミュレート用) とカーネルドライバー (ゲーム用) で別に設定する必要があります。 ===Xorg でデッドゾーン=== {{ic|/etc/X11/xorg.conf.d/50-joystick.conf}} の {{ic|EndSection}} の前に以下のような行を追加してください: Option "MapAxis1" "deadzone=1000" 1000 はデフォルトの値で、0 から 30000 の間で設定できます。軸番号を取得する方法はこの記事の [[#設定のテスト]] セクションを参照。 問題の軸で既にオプションを設定している場合は、スペースで区切ったパラメータの最後に {{ic|1=deadzone=value}} を入力してください。 ===カーネルドライバーでデッドゾーン=== 一番簡単な方法は {{AUR|jstest-gtk-git}} を使うことです。編集したいコントローラーを選択して、ダイアログの下にあるキャリブレーションボタンをクリックしてください。ジョイスティックやアナログスティックには CenterMin と CenterMax の値を、トリガーには RangeMin を設定します。設定したら {{ic|jscal}} を使って新しい値をシェルスクリプトに出力してください: jscal -p /dev/input/jsX > jscal.sh # replace X with your joystick's number chmod +x jscal.sh そして [[udev]] ルールを作成して (例えば {{ic|/etc/udev/rules.d/85-jscal.rules}}) コントローラーを接続した時に自動的にスクリプトが実行されるようにします: SUBSYSTEM=="input", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="c268", ACTION=="add", RUN+="/usr/bin/jscal.sh" idVendor と idProduct を取得するには {{ic|udevadm info --attribute-walk --name /dev/input/jsX}} を使って下さい。 最後に SDL にジョイスティックデバイスを知らせるようにしてください。そうしないと無視されて固有の設定が使われるようになってしまいます。 以下を {{ic|~/.bashrc}} に追加してください: export SDL_JOYSTICK_DEVICE=/dev/input/jsX (X はデバイスの番号に置き換えてください。) == ゲームパッドのマウス操作を無効にする == コントローラーを使ってゲームを遊びたいとき、ゲームパッドによるマウスカーソルの操作を無効にすると良いかもしれません。無効にするには、以下のように {{ic|/etc/X11/xorg.conf.d/50-joystick.conf}} を編集してください: {{hc|/etc/X11/xorg.conf.d/50-joystick.conf | Section "InputClass" Identifier "joystick catchall" MatchIsJoystick "on" MatchDevicePath "/dev/input/event*" Driver "joystick" Option "StartKeysEnabled" "False" #Disable mouse Option "StartMouseEnabled" "False" #support EndSection}} == トラブルシューティング == === ゲームパッドでマウスが動く === ときどき USB ゲームパッドが HID マウスとして認識されることがあります (X 内のみで、{{ic|/dev/input/js0}} としてもインストールされる)。カーソルがゲームパッドによって動いたり、接続した後に画面の右端に逃げていくのは既知の問題です。アプリケーションが自力でゲームパッドを検出できる場合は、xf86-input-joystick パッケージを削除することができます。 もっと平和的な解決方法は[[#ゲームパッドのマウス操作を無効にする|ゲームパッドのマウス操作を無効にする]]ことです。 === ゲームパッドでキーストロークを送る === {{AUR|rejoystick}} と {{AUR|qjoypad}} という2つのゲームパッドでキー操作するプログラムがあり、どちらも X.org の設定をせずとも問題なく動作します。 ==== X.org で ==== This is a good solution for systems where restarting Xorg is a rare event because it's a static configuration loaded only on X startup. I use it on my media PC running XBMC controlled with Logitech Cordless RumblePad 2. Due to a problem with the d-pad (a.k.a. "hat") being recognized as another axis, I used to run [[Joy2key]] as a workaround. Since I upgraded to XBMC 11.0 and joy2key 1.6.3-1, this setup no longer worked for me. I ended up taking a more direct approach and let Xorg handle joystick events. First, make sure you have {{Pkg|xf86-input-joystick}} installed. Then, create {{ic|/etc/X11/xorg.conf.d/51-joystick.conf}} like so: {{bc|<nowiki> Section "InputClass" Identifier "Joystick hat mapping" Option "StartKeysEnabled" "True" #MatchIsJoystick "on" Option "MapAxis5" "keylow=113 keyhigh=114" Option "MapAxis6" "keylow=111 keyhigh=116" EndSection </nowiki>}} {{Note|The ''MatchIsJoystick "on"'' line doesn't seem to be required for this to work but you may want to uncomment it.}} === ゲームパッドがどのプログラムからも認識されない === Steam など、ソフトウェアによっては最初に接続されたゲームパッドしか認識しないことがあります。Microsoft の無線周辺機器デバイスのドライバーにバグが存在するため、bluetooth ドングルでもこの問題が起こることがあります。{{ic|/dev/input/js*}} や {{ic|/dev/input/event*}} がキーボードの bluetooth トランシーバーに属していることが確認できたら {{ic|/etc/udev/rules.d/99-btcleanup.rules}} を作成することで自動的に排除することができます: {{hc|/etc/udev/rules.d/99-btcleanup.rules|<nowiki> ACTION=="add", KERNEL=="js[0-9]*", SUBSYSTEM=="input", KERNELS=="...", ATTRS{bInterfaceSubClass}=="00", ATTRS{bInterfaceProtocol}=="00", ATTRS{bInterfaceNumber}=="02", RUN+="/usr/bin/rm /dev/input/js%n" ACTION=="add", KERNEL=="event*", SUBSYSTEM=="input", KERNELS=="...", ATTRS{bInterfaceSubClass}=="00", ATTRS{bInterfaceProtocol}=="00", ATTRS{bInterfaceNumber}=="02", RUN+="/usr/bin/rm /dev/input/event%n" </nowiki>}} {{ic|<nowiki>KERNELS=="..."</nowiki>}} はあなたのデバイスに合わせて置き換えてください。次を実行することで正しい値が確認できます: # udevadm info -an /dev/input/js0 問題のデバイスは {{ic|/dev/input/js0}} と仮定しています。ルールを記述したらルールをリロードしてください: # udevadm control --reload そして問題のデバイスを再接続します。joystick や event デバイスが外されても、番号は予約されています。ただしファイルは扱われます。
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Broken package link
(
ソースを閲覧
)
テンプレート:Bug
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Tip
(
ソースを閲覧
)
ゲームパッド
に戻る。
検索
検索
ゲームパッドのソースを表示
話題を追加