K napájení své arkádové skříně používám Raspberry Pi s Raspbianem. Chci vypnout Pi pomocí sudo poweroff
příkaz bez použití klávesnice. Myslím, že nejlepším způsobem by bylo vytvořit jednoduchý skript, který by se nějak spouštěl kombinací vstupů tlačítek ovladače. Zdá se snadné svázat klávesnici se skriptem, ale není tak snadné místo toho použít vstup z joysticku.
Má někdo nějaké nápady?
UPRAVIT #1
Joystick a tlačítka ovladače fungují dobře a zobrazují se pomocí jstest
nástroj z jstest-gtk
balíček a vše funguje dobře v Mame4all. xev
jsem nezkoušel ale podívám se na to.
Přijatá odpověď:
xev
Nevěřím, že můžete použít xev
k detekci joysticků. Používám Fedoru 19 a existuje balíček nazvaný joystick
který nainstaluje tento balíček, linuxconsoletools
. Tento projekt je to, co hledáte.
projekt linuxconsole
Obsahuje řadu nástrojů pro připojení joysticků tak, aby jejich signály byly přijímány linuxovým jádrem.
výňatek z webu linuxconsole
Tento projekt spravuje nástroje Linux Console, které zahrnují nástroje pro testování a konfiguraci joysticků, připojení starších zařízení ke vstupnímu subsystému jádra (poskytování podpory pro sériové myši, dotykové obrazovky atd.) a testování vrstvy vstupních událostí.
Balíček obsahuje spustitelné soubory, jako jsou tyto
$ 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
Nemám k dispozici instalaci Debianu, ale Ubuntu má také stejný balíček, joystick
. Spusťte příkaz apt-file list joystick
zobrazuje stejné soubory jako RPM, které jsem zmínil výše.
Co ještě?
Také bych doporučil podívat se na téma ArchLinux Wiki s názvem:Joystick. Je to pravděpodobně nejvyčerpávající zdroj na toto téma související s Linuxem.
Mapování joysticku na klávesnici
Výše uvedené zprovozní váš joystick v Linuxu, ale nenabízí žádnou metodu pro mapování joysticku na skript, alespoň ne jednoduchým způsobem. Chcete-li něco takového provést, budete muset požádat o pomoc jinou aplikaci. Existuje jeden, který znám, a nazývá se jkeys
.
Chcete-li jej nainstalovat, musíte nejprve nainstalovat některé závislosti, python-xlib
&python-pygame
. Ty by měly být ve většině repozitářů distribucí.
Chcete-li však nainstalovat jkeys
budete si ho muset stáhnout z úložiště subversion projektu. POZNÁMKA: Je napsán v Pythonu.
$ svn checkout http://jkeys.googlecode.com/svn/trunk/ jkeys-read-only
Po stažení jej můžete spustit takto:
$ ./jkeys
usage: jkeys joystick.conf application [params]
Chcete-li namapovat klíč, budete si muset vytvořit svůj vlastní joystick.conf
soubor:
<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>
Nyní, když jste připraveni spustit hru, udělejte to takto:
$ ./jkeys joystick.py <somegame>
Přepsaná tlačítka joysticku odešlou do aplikace jakoukoli klávesu, kterou stisknete místo tlačítek joysticku.
Související:Vytvořit symbolický odkaz – přepsat, pokud existuje?QJoy
Další alternativou je použití aplikace QJoyPad. Nemohl jsem to otestovat, protože nemám joystick. GUI by mělo vypadat takto.
Z tohoto grafického uživatelského rozhraní můžete poměrně snadno mapovat stisknutí libovolného tlačítka na stisk klávesy.
A co spuštění skriptu?
S výše uvedenými metodami byste mohli využít další aplikaci nazvanou XBindKeys k mapování libovolného stisknutí klávesnice ke spuštění skutečného příkazu nebo skriptu.
POZNÁMKA: Můj příklad níže vytváří klávesovou zkratku, aby se Nautilus spustil s otevřenými určitými adresáři.
Příklad
Nejprve se musíte ujistit, že balíčky xbindkeys
je nainstalován.
Poté budete muset spustit následující příkaz, pouze jednou, k vytvoření šablony xbindkeys
konfigurační soubor.
$ xbindkeys --defaults > /home/saml/.xbindkeysrc
Vytvořený soubor můžete otevřít v textovém editoru a přidat pravidlo, jako je toto:
"nautilus --browser /home/saml/projects/path/to/some/dir"
Mod4+shift + q
S výše uvedenou změnou musíme zabít xbindkeys
pokud již běží, a poté jej restartujte.
$ killall xbindkeys
$ xbindkeys
Nyní, když toto běží, kdykoli napíšu Mod +Shift +Q Nautilus se otevře s otevřenou odpovídající složkou.
Odkazy
- Jkeys – jednoduché mapování joysticku na klávesnici
- Zjistěte, zda bylo stisknuto tlačítko myši, a poté vyvolejte skript nebo příkaz
- XBindKeys