アーケードキャビネットに電力を供給するために、Raspbianを実行しているRaspberryPiを使用しています。 sudo poweroff
を使用してPiをシャットダウンしたい キーボードを使用せずにコマンドを実行します。コントローラーのボタン入力の組み合わせによって何らかの形でトリガーされる単純なスクリプトを作成するのが最善の方法だと思います。キーボードをスクリプトにバインドするのは簡単なようですが、代わりにジョイスティック入力を使用するのはそれほど簡単ではありません。
誰かアイデアはありますか?
編集#1
ジョイスティックとコントローラーのボタンはすべて正常に機能し、jstest
を使用して表示されます jstest-gtk
のツール パッケージとすべてがMame4allで正常に動作します。 xev
を試したことがありません しかし、それを調べます。
承認された回答:
xev
xev
を使用できるとは思いません ジョイスティックを検出します。 Fedora 19を使用していますが、joystick
というパッケージがあります。 このパッケージ、linuxconsoletools
をインストールします 。このプロジェクトはあなたが探しているものです。
linuxconsoleプロジェクト
ジョイスティックを接続して、その信号がLinuxカーネルで受信されるようにするためのツールが多数含まれています。
linuxconsoleウェブサイトからの抜粋
このプロジェクトは、ジョイスティックをテストおよび構成し、レガシーデバイスをカーネルの入力サブシステムに接続し(シリアルマウス、タッチスクリーンなどのサポートを提供)、入力イベントレイヤーをテストするユーティリティを含むLinuxコンソールツールを維持します。
パッケージには、これらのような実行可能ファイルが含まれています
$ rpm -ql linuxconsoletools.x86_64
/usr/bin/ffcfstress
/usr/bin/ffmvforce
/usr/bin/ffset
/usr/bin/fftest
/usr/bin/inputattach
/usr/bin/jscal
/usr/bin/jscal-restore
/usr/bin/jscal-store
/usr/bin/jstest
/usr/libexec/joystick/extract
/usr/libexec/joystick/filter
/usr/libexec/joystick/ident
Ubuntu
Debianのインストールは利用できませんが、Ubuntuにも同じパッケージjoystick
があります 。コマンドapt-file list joystick
を実行する 上記のRPMと同じファイルが表示されます。
他に何がありますか?
また、ArchLinuxWikiのトピック「ジョイスティック」も参照することをお勧めします。これはおそらく、Linuxに関連する、このトピックに関する最も網羅的なリソースです。
ジョイスティックをキーボードにマッピングする
上記は、ジョイスティックをLinuxで機能させるものですが、少なくとも簡単な方法ではなく、ジョイスティックをスクリプトにマッピングする方法を提供していません。そのようなことをするには、別のアプリケーションの助けを借りる必要があります。私がよく知っているjkeys
というものがあります 。
インストールするには、最初にいくつかの依存関係をインストールする必要があります。python-xlib
&python-pygame
。これらはほとんどのディストリビューションのリポジトリにあるはずです。
ただし、jkeys
をインストールするには プロジェクトのSubversionリポジトリからダウンロードする必要があります。 注: Pythonで書かれています。
$ svn checkout http://jkeys.googlecode.com/svn/trunk/ jkeys-read-only
ダウンロードした後、次のように実行できます:
$ ./jkeys
usage: jkeys joystick.conf application [params]
キーをマッピングするには、独自のjoystick.conf
を作成する必要があります ファイル:
<config>
<joystick id="0">
<axis number="0" low="Left" high="Right" />
<axis number="1" low="Down" high="Up" />
<button number="0" key="Space" />
<button number="1" key="Return" />
<button number="2" key="a" />
<button number="3" key="b" />
<button number="4" key="c" />
<button number="5" key="d" />
<button number="6" key="z" />
<button number="7" key="x" />
<button number="9" key="Escape" />
<button number="10" key="p" />
</joystick>
</config>
これで、ゲームを実行する準備ができたら、次のように実行します。
$ ./jkeys joystick.py <somegame>
オーバーライドされたジョイスティックボタンは、ジョイスティックボタンの代わりに、押したキーをアプリに送信します。
関連:シンボリックリンクを作成します–存在する場合は上書きしますか?QJoy
もう1つの方法は、アプリQJoyPadを使用することです。ジョイスティックがないため、これをテストできませんでした。 GUIは次のようになります。
このGUIから、ボタンの押下をキーの押下にかなり簡単にマッピングできます。
スクリプトの実行はどうですか?
上記のメソッドを使用すると、XBindKeysと呼ばれる別のアプリケーションを使用して、キーボードの押下をマップして実際のコマンドまたはスクリプトを実行できます。
注: 以下の私の例では、キーボードショートカットを作成して、特定のディレクトリを開いた状態でNautilusを起動できるようにします。
例
まず、パッケージがxbindkeys
であることを確認する必要があります がインストールされています。
次に、次のコマンドを1回だけ実行して、テンプレートxbindkeys
を作成する必要があります。 構成ファイル。
$ xbindkeys --defaults > /home/saml/.xbindkeysrc
作成したファイルを使用して、テキストエディタで開き、次のようなルールを追加できます。
"nautilus --browser /home/saml/projects/path/to/some/dir"
Mod4+shift + q
上記の変更により、xbindkeys
を強制終了する必要があります すでに実行されている場合は、再起動します。
$ killall xbindkeys
$ xbindkeys
これで、 Modと入力するたびにこれが実行されます +シフト + Q Nautilusは、対応するフォルダを開いた状態で開きます。
参考資料
- Jkeys –シンプルなジョイスティックからキーボードへのマッピング
- マウスボタンが押されたかどうかを検出してから、スクリプトまたはコマンドを呼び出します
- XBindKeys