O joystick atua como mouse; não vai parar

14

O joystick funciona como um mouse, mesmo quando estou jogando um jogo que usa um joystick, para que ocorram eventos aleatórios do mouse.

Liguei um joystick para jogar Spiral Knights, também instalei o joystick e o jcalibrate. Tudo está funcionando bem, exceto por padrão o joystick move o mouse e o botão ativa as teclas do mouse.

Agora, normalmente, isso seria um bom comportamento se eu estivesse em uma caixa de mito ou algo assim, infelizmente, quando jogo Spiral Knights com entrada por joystick, vejo o cursor do mouse se movendo no fundo e, ao apertar um botão, acho que estou pressionando clique com o botão direito do mouse para minimizar tudo. Também cria pastas e provavelmente exclui coisas.

Então, basicamente, como diabos eu paro de agir como um mouse?

Shazzner
fonte
Você pode mostrar qual PC você possui e o joystick que está usando? Também qual versão do Ubuntu.
Luis Alvarado
Estou usando um playstation 2 para adaptador usb, sob o jscalibrate, é listado como: GreenAsia Inc. USB Joystick. Estou executando o Ubuntu 10.10
Shazzner 17/04/11

Respostas:

15

Desinstalar xserver-xorg-input-joystick.

É um pacote para controlar o mouse com o joystick. Eu instalei apenas uma vez para testá-lo e isso estava me deixando louco, então talvez esse seja o problema. Eu acho que o joystick funcionaria da mesma forma sem ele.

animaletdesequia
fonte
Viva que fez isso! Eu acho que isso foi resolvido quando adicionei o pacote do joystick no synaptic. Funciona muito bem agora!
Shazzner
Eu também tive esse problema e foi corrigido. Muito obrigado por responder, muito apreciado!
b1ackcrow
Existe uma maneira de desativar / ativar esta característica? É kindda arrefecer controlando o mouse com o gamepad, mas deve ser bom para ligá-la quando eu precisar fazer isso
chepe263
obrigada, isso também funcionou no Arch Linux! Estava tentando jogar Dustforce, e isso foi realmente me irritando.
Marco Scannadinari 17/10/2013
1
Para sua informação, tive que sair e voltar também. E no Manjaro linux, o nome do pacote era xf86-input-joystick.
Peter Peter
4

coloque este código em um arquivo:

#!/bin/bash
id=`xinput list | grep "↳ DragonRise Inc.   Generic   USB  Joystick     id=" | cut -c58-59`
props_mouse=`xinput list-props $id | grep "Generate Mouse Events (" | cut -c25-27`
props_teclado=`xinput list-props $id | grep "Generate Key Events (" | cut -c23-25`
xinput set-prop $id $props_mouse 0
xinput set-prop $id $props_teclado 0

salve-o, clique com o botão direito em rights e marque "marcar este arquivo como um programa"

execute-o e você terá seu joystick "como joystick novamente" (e o melhor, você pode ter seu joystick como mouse novamente se alterar o "0" nas duas últimas linhas com "1").

Matias Parmigiani
fonte
Parece que o formato das linhas da "lista xinput" foi alterado.
Phoeey 23/09
Este código precisa de alterações para funcionar no Ubuntu 18.04 LTS. A saída mudou.
Hans Deragon
2

Eu apenas tive o mesmo problema, mas com um controlador Playstation 3. Usando as respostas como modelo, expandi a solução:

#!/bin/bash
id=`xinput list | grep -P "PLAYSTATION.*pointer" | grep -oP "id=\d+" | grep -oP "\d+"`
props=`xinput list-props $id`
# echo "$props"
props_mouse=(`echo "$props" | grep "Generate Mouse Events" | grep -oP "\d+"`)
props_keyboard=(`echo "$props" | grep "Generate Key Events" | grep -oP "\d+"`)
xinput set-prop $id ${props_mouse[0]} $[1-${props_mouse[1]}]
xinput set-prop $id ${props_keyboard[0]} $[1-${props_mouse[1]}]

Esta versão do script ativará ou desativará o controlador, dependendo das configurações atuais, como uma alternância.

hochl
fonte
Porque esta é uma nova solução para a) um controlador diferente eb) tem uma funcionalidade diferente para os scripts fornecidos. Não vejo como editar uma resposta existente mudaria isso.
Hochl 6/11/16
Bom o suficiente para mim! Voto a favor, para que ele suba ao topo! ;-)
Fabby
1

Talvez você deva usar jscal para calibrar seu joystick - você pode usar a opção -u conforme a página do manual para configurar o joystick para não usar os botões do mouse.

Há algumas coisas interessantes sobre os vários joysticks e gamepads nos fóruns do ubuntu também.

liberdade de expressão
fonte
Existe uma maneira de configurar isso sem gerar e editar um arquivo xorg.conf? (Eu já estou usando jscal para calibrar o joystick)
Shazzner
Eu uso o jstest-gtk nos repositórios que eu acho.
precisa saber é o seguinte
1

Experimente o Qjoypad ou (se você não quiser usar o QT) o levemente menos recursos rejoystick (GTK). Dessa forma, você não precisa editar / criar o xorg.conf.

Ambos estão disponíveis no playdeb

Entender os drivers do joystick é uma bagunça, tudo parece estar desatualizado ou inacabado ... Boa sorte!

turbo
fonte
1
Esses são ótimos programas, mas infelizmente não resolveram o meu problema, uma vez que os religadores não fizeram com que o problema desaparecesse.
Shazzner
1

Estou usando o Linux Mint 17.3 e estava tendo o mesmo problema. Eu tinha o console onlive e ia jogar fora o controle. Eu não sabia que iria funcionar, mas ele se conectava facilmente através de bluetooth. O joystick esquerdo estava controlando o mouse e eu procuro e tento diferentes métodos, mas nenhum deles funcionou. Estou postando isso para ajudar outras pessoas. Eu segui a correção na página de configuração do Ubuntu Sixaxis . Eu tive que adicionar essa configuração ao arquivo xorg.conf:

Section "InputClass"
    Identifier "joystick catchall"
    MatchIsJoystick "on"
    MatchDevicePath "/dev/input/event*"
    Driver "joystick"
    Option "StartKeysEnabled" "False"       #Disable mouse
    Option "StartMouseEnabled" "False"      #support

EndSection

Funciona perfeitamente após o logout. O único problema é que, se o xorg.conf for atualizado, como após a instalação de um novo driver gráfico, ele será perdido. Alguém pode me explicar como criar um script que verifique se a configuração está no arquivo, caso contrário, escrevê-lo após cada reinicialização? Agradeço antecipadamente.

Mauricio Giraldo
fonte
0

1- Você deve ver o número do seu joystick primeiro ... então execute Terminal e digite xinpute list, procure o número do joystick e substitua o número em vez do número 10 no exemplo abaixo.

#!/bin/bash id=xinput list | grep "↳ DragonRise Inc. Generic USB Joystick id=10" | cut -c58-59 props_mouse=xinput list-props 10 | grep "Generate Mouse Events (" | cut -c25-27 props_teclado=xinput list-props 10 | grep "Generate Key Events (" | cut -c23-25 xinput set-prop 10 $props_mouse 0 xinput set-prop 10 $props_teclado 0

2- Crie um novo documento, insira o código e renomeie-o para name.sh Format 3- Execute o Terminal e, em seguida, coloque o caminho onde você salvou o arquivo.

Exemplo: cd Desktop (porque salvei o meu na área de trabalho)

4- Digite bash name.sh (clique em Enter e pronto!)

Nota1: para ativá-lo novamente, altere o 0 nas duas últimas linhas para 1 Nota2: se isso não funcionar, remova o xserver-xorg-input-joystick e /usr/lib/X11/xorg.conf.d / Joystick 10

AhmedAlkaabi
fonte
0

A resposta de Matias Parmigiani foi a chave para mim. No entanto, o formato do xinput listmudou, pelo menos no Ubuntu 13.04 LTS ...

⎜   ↳ DragonRise Inc.   Generic   USB  Joystick     id=12   [slave  pointer  (2)]
    ↳ DragonRise Inc.   Generic   USB  Joystick   (keys)    id=11   [slave  keyboard (3)]

Como resultado, eu precisava usar o seguinte no meu script de desativação:

#!/bin/bash
id=`xinput list | grep -P "DragonRise Inc.   Generic   USB  Joystick\s+id=" | grep -oP "id=\d+"| cut -c4-5`
props_mouse=`xinput list-props $id | grep "Generate Mouse Events" | grep -oP "\(\d+"| cut -c2-5`
props_teclado=`xinput list-props $id | grep "Generate Key Events" | grep -oP "\(\d+"| cut -c2-5`
xinput set-prop "$id" "$props_mouse" 0
xinput set-prop "$id" "$props_teclado" 0

Espero que isto ajude!

Phoeey
fonte