GNU/Linux >> Belajar Linux >  >> Linux

Linux – Bagaimana Cara Menjalankan Script yang Dipicu oleh Input Joystick?

Saya menggunakan Raspberry Pi yang menjalankan Raspbian untuk memberi daya pada kabinet arcade saya. Saya ingin mematikan Pi menggunakan sudo poweroff perintah tanpa menggunakan keyboard. Saya pikir cara terbaik adalah membuat skrip sederhana yang entah bagaimana akan dipicu oleh kombinasi input tombol pengontrol. Tampaknya mudah untuk mengikat keyboard ke skrip, tetapi tidak begitu mudah untuk menggunakan input joystick sebagai gantinya.

Ada yang punya ide?

EDIT #1

Tombol joystick dan pengontrol semuanya berfungsi dengan baik dan muncul menggunakan jstest alat dari jstest-gtk paket dan semuanya berfungsi dengan baik di Mame4all. Saya belum mencoba xev tapi akan melihat ke dalamnya.

Jawaban yang Diterima:

xev

Saya tidak percaya Anda dapat menggunakan xev untuk mendeteksi joystick. Saya menggunakan Fedora 19 dan ada paket bernama joystick yang menginstal paket ini, linuxconsoletools . Proyek ini adalah apa yang Anda cari.

proyek konsol linux

Ini berisi sejumlah alat untuk menghubungkan joystick sehingga sinyalnya diterima oleh Kernel Linux.

kutipan dari situs web linuxconsole

Proyek ini memelihara alat Konsol Linux, yang mencakup utilitas untuk menguji dan mengonfigurasi joystick, menghubungkan perangkat lama ke subsistem input kernel (menyediakan dukungan untuk mouse serial, layar sentuh, dll.), dan menguji lapisan peristiwa input.

Paket termasuk executable seperti ini

$ 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

Saya tidak memiliki instalasi Debian yang tersedia tetapi Ubuntu juga memiliki paket yang sama, joystick . Menjalankan perintah apt-file list joystick menunjukkan file yang sama dengan RPM yang saya sebutkan di atas.

Apa lagi?

Saya juga menyarankan untuk melihat topik Wiki ArchLinux berjudul:Joystick. Ini mungkin sumber yang paling lengkap tentang topik ini, terkait dengan Linux.

Memetakan joystick ke keyboard

Di atas akan membuat joystick Anda berfungsi di Linux, tetapi tidak menawarkan metode apa pun untuk memetakan joystick ke skrip, setidaknya tidak dengan cara yang mudah. Untuk melakukan sesuatu seperti itu, Anda harus meminta bantuan aplikasi lain. Ada satu yang saya kenal bernama jkeys .

Anda harus menginstal beberapa dependensi terlebih dahulu untuk menginstalnya, python-xlib &python-pygame . Ini harus ada di sebagian besar repo distro.

Namun untuk menginstal jkeys Anda harus mengunduhnya dari repositori Subversion proyek. CATATAN: Itu ditulis dengan Python.

$ svn checkout http://jkeys.googlecode.com/svn/trunk/ jkeys-read-only

Setelah mengunduhnya, Anda dapat menjalankannya seperti ini:

$ ./jkeys 
usage: jkeys joystick.conf application [params]

Untuk memetakan kunci, Anda harus membuat joystick.conf Anda sendiri berkas:

<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>

Sekarang ketika Anda siap untuk menjalankan game Anda, lakukan seperti ini:

$ ./jkeys joystick.py <somegame>

Tombol joystick yang diganti akan mengirimkan tombol apa pun yang Anda tekan alih-alih tombol joystick ke aplikasi.

Terkait:Buat symlink – timpa jika ada?

QJoy

Alternatif lain adalah dengan menggunakan aplikasi QJoyPad. Saya tidak dapat menguji ini karena saya tidak memiliki joystick. GUI akan terlihat seperti ini.

Dari GUI ini Anda dapat memetakan penekanan tombol apa pun ke penekanan tombol dengan cukup mudah.

Bagaimana dengan menjalankan skrip?

Nah dengan metode di atas, Anda dapat menggunakan aplikasi lain yang disebut XBindKeys untuk memetakan penekanan keyboard apa pun untuk menjalankan perintah atau skrip yang sebenarnya.

CATATAN: Contoh saya di bawah ini membuat pintasan keyboard sehingga Nautilus akan diluncurkan dengan direktori tertentu dibuka.

Contoh

Anda harus terlebih dahulu memastikan paket xbindkeys sudah terpasang.

Kemudian Anda harus menjalankan perintah berikut, satu kali saja, untuk membuat template xbindkeys file konfigurasi.

$ xbindkeys --defaults > /home/saml/.xbindkeysrc

Dengan file yang dibuat, Anda dapat membukanya di editor teks dan menambahkan aturan seperti ini:

"nautilus --browser /home/saml/projects/path/to/some/dir"
  Mod4+shift + q

Dengan perubahan di atas, kita perlu mematikan xbindkeys jika sudah berjalan lalu restart.

$ killall xbindkeys
$ xbindkeys

Sekarang dengan ini berjalan kapan saja saya mengetik Mod +Bergeser +T Nautilus akan terbuka dengan folder yang sesuai dibuka.

Referensi

  • Jkeys – joystick sederhana untuk pemetaan keyboard
  • Deteksi jika tombol mouse ditekan, lalu jalankan skrip atau perintah
  • XBindKeys

Linux
  1. Linux – Bagaimana Cara Menjalankan Bootloader Dari Linux?

  2. Bagaimana Menjalankan Skrip??

  3. Cara membuat skrip Python berjalan seperti layanan atau daemon di Linux

  1. Bagaimana menjalankan perintah bash Linux dalam skrip PERL?

  2. Bagaimana cara menjalankan skrip di latar belakang (linux openwrt)?

  3. Bagaimana cara menjalankan linux di PS3?

  1. Linux – Bagaimana Cara Menjalankan Script Pada Layar Lock/unlock?

  2. Bagaimana Anda menjalankan skrip saat login di * nix?

  3. Bagaimana saya bisa menjalankan skrip Perl sebagai daemon sistem di linux?