xev
Eu não acredito que você possa usar xev
para detectar joysticks. Estou usando o Fedora 19 e existe um pacote chamado joystick
que instala este pacote, linuxconsoletools
. Este projeto é o que você está procurando.
projeto do linuxconsole
Ele contém várias ferramentas para ligar os joysticks de modo que seus sinais sejam recebidos pelo kernel do Linux.
excerto do site do linuxconsole
This project maintains the Linux Console tools, which include utilities to test and configure joysticks, connect legacy devices to the kernel's input subsystem (providing support for serial mice, touchscreens etc.), and test the input event layer.
O pacote inclui executáveis como estes
$ 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
Eu não tenho uma instalação Debian disponível, mas o Ubuntu também tem o mesmo pacote, joystick
. A execução do comando apt-file list joystick
mostra os mesmos arquivos que o RPM que mencionei acima.
O que mais?
Eu também sugiro dar uma olhada no tópico Wiki do ArchLinux, intitulado: Joystick . É provavelmente o recurso mais exaustivo do tópico, relacionado ao Linux.
Mapeando o joystick para o teclado
O exemplo acima fará com que seu joystick funcione no Linux, mas não oferece nenhum método para mapear o joystick para um script, pelo menos não de maneira fácil. Para fazer algo assim, você precisará solicitar a ajuda de outro aplicativo. Há um que eu conheço chamado jkeys
.
Você precisará instalar algumas dependências primeiro para instalá-lo, python-xlib
& %código%. Estes devem estar no repositório da maioria das distros.
No entanto, para instalar o python-pygame
você terá que baixá-lo do repositório do subversion do projeto. NOTA: Está escrito em Python.
$ svn checkout http://jkeys.googlecode.com/svn/trunk/ jkeys-read-only
Depois de baixá-lo, você pode executá-lo da seguinte forma:
$ ./jkeys
usage: jkeys joystick.conf application [params]
Para mapear uma chave, você precisará criar seu próprio arquivo jkeys
:
<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>
Agora, quando você estiver pronto para executar seu jogo, faça o seguinte:
$ ./jkeys joystick.py <somegame>
Os botões do joystick substituídos enviarão qualquer tecla que você pressionar em vez dos botões do joystick para o aplicativo.
QJoy
Outra alternativa é usar o aplicativo QJoyPad . Eu não pude testar isso, pois não tenho joystick. A GUI deve ficar assim.
ApartirdestaGUI,vocêpodemapearqualquerpressionamentodebotãoparapressionarasteclascombastantefacilidade.
Quetalexecutarumscript?
Bem,comosmétodosacima,vocêpoderiafazerusodeoutroaplicativochamado
OBSERVAÇÃO: Meu exemplo abaixo cria um atalho de teclado para que o Nautilus seja iniciado com determinados diretórios abertos.
Exemplo
Você precisará primeiro certificar-se de que os pacotes joystick.conf
estejam instalados.
Em seguida, você precisará executar o seguinte comando, apenas uma vez, para criar um arquivo de configuração xbindkeys
do modelo.
$ xbindkeys --defaults > /home/saml/.xbindkeysrc
Com o arquivo criado, você pode abri-lo em um editor de texto e adicionar uma regra como esta:
"nautilus --browser /home/saml/projects/path/to/some/dir"
Mod4+shift + q
Com a alteração acima feita, precisamos matar xbindkeys
se ela já estiver em execução e, em seguida, reiniciá-la.
$ killall xbindkeys
$ xbindkeys
Agora com isto em execução sempre que eu digitar Mod + Deslocamento + Q O Nautilus abrirá com a pasta correspondente aberta.