A solução alternativa está aqui: link
Os erros estão aqui:
Tenho o Microsoft Sculpt Ergonomic Desktop (teclado + mouse) e ele cria grandes problemas em alguns jogos com o suporte gamepad, já que o joystick virtual inexistente deixa a entrada maluca. Se eu executar rmmod joydev
, o problema está resolvido, mas eu tenho o verdadeiro gamepad e volante e quero usá-los como controladores de entrada em jogos. Então, como posso desabilitar apenas o joystick Sculpt virtual sem matar o suporte ao controlador de jogo?
$ udevadm info / dev / input / js0
$ udevadm info --attribute-walk / dev / input / js0
http://i.imgur.com/sAiQXAR.png - jstest-gtk screenshot
A solução de força bruta temporária é apenas renomear / excluir os arquivos do dispositivo, por exemplo:
rm /dev/input/js0
mv /dev/input/js1 /dev/input/js0
Note, no entanto, que a maioria dos jogos modernos não usa a interface /dev/input/js0
, então você também precisará cuidar dos arquivos /dev/input/eventX
. Você pode usar evtest
para descobrir qual dispositivo é o seu teclado e joystick. Na próxima reinicialização, os dispositivos retornarão ao seu antigo pedido.
Outro método de força bruta é através da variável de ambiente:
SDL_JOYSTICK_DEVICE="/dev/input/js1"
export SDL_JOYSTICK_DEVICE
Isso força os jogos baseados em SDL a usar js1 em vez de js0. Eu não acho que isso funcionará com jogos modernos baseados em SDL2 e só funcionará para um único joystick / gamepad, então é de uso limitado.
O SDL2 fornece uma opção para configurar um joystick e botões de remapeamento, mas não acho que seja possível reordenar dispositivos no momento.
E finalmente, há também o método "clean", escrevendo uma regra do udev, que basicamente fará o mesmo que o rm
/ mv
hack, mas permanentemente. Essas regras vão para /etc/udev/rules.d/
e tutoriais para escrevê-los podem ser encontrados espalhados pela rede, talvez isso ajude, não tenho certeza se está atualizado: