Джойстик действует как мышь; не остановится


14

Джойстик действует как мышь, даже когда я играю в игру, в которой используется джойстик, поэтому у меня происходят случайные события мыши.

Я подключил джойстик, чтобы играть в Spiral Knights, также установил джойстик и jcalibrate. Все работает хорошо, за исключением того, что по умолчанию джойстик перемещает мышь и кнопка активирует клавиши мыши.

Теперь обычно это было бы хорошим поведением, если я нахожусь в Myth-box или что-то в этом роде, к сожалению, когда я играю в Spiral Knights с помощью джойстика, я вижу, как мой курсор мыши движется на заднем плане, и когда я нажимаю кнопку, мне кажется, что я нажимаю щелкните правой кнопкой мыши, чтобы минимизировать все. Также он создает папки и, возможно, удаляет вещи.

Итак, в общем, как, черт возьми, я не могу заставить его действовать как мышь?


Можете ли вы показать, какой у вас компьютер и какой джойстик вы используете. Также какая версия Ubuntu.
Луис Альварадо

Я использую переходник PlayStation 2 на USB, под jscalibrate он указан как: USB-джойстик GreenAsia Inc. Я работаю в Ubuntu 10.10
Shazzner

Ответы:


15

Удалить xserver-xorg-input-joystick.

Это пакет для управления мышью с помощью джойстика. Я установил только один раз, чтобы проверить это, и это сводило меня с ума, так что, возможно, в этом проблема. Я думаю, что джойстик работал бы так же без него.


Ура, что сделал это! Я думаю, что это было решено, когда я добавил пакет джойстика в синаптике. Это прекрасно работает сейчас!
Шаззнер

У меня была эта проблема также, и это исправило ее. Большое спасибо за ответ, высоко ценится!
b1ackcrow

Есть ли способ выключить / включить эту функцию? Это здорово управлять мышью с помощью геймпада, но было бы неплохо включить ее, когда она мне понадобится
chepe263

спасибо, родитель, это работало и на Arch Linux! Пытался играть в Dustforce, и это меня очень раздражало.
Марко Сканнадинари

1
К вашему сведению, я должен был выйти и снова войти. А в Manjaro linux имя пакета было xf86-input-joystick.
Питер

4

поместите этот код в файл:

#!/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

сохранить его правой кнопкой в ​​правах и поставить галочку "пометить этот файл как программу"

выполните его, и вы получите джойстик «снова как джойстик» (и самое лучшее, вы можете снова использовать джойстик как мышь, если вы измените «0» в последних двух строках на «1»).


Похоже, формат строк «xinput list» изменился.
Фои,

Этот код требует изменений для работы под Ubuntu 18.04 LTS. Выход изменился.
Ханс Дерагон

2

У меня просто была такая же проблема, но с контроллером Playstation 3. Используя ответы в качестве шаблона, я расширил решение:

#!/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]}]

Эта версия скрипта будет включать или отключать контроллер, в зависимости от текущих настроек, например, переключения.


Потому что это новое решение для а) другого контроллера и б) отличается функциональностью от заданных сценариев. Я не вижу, как редактирование существующего ответа изменило бы это.
hochl

Достаточно хорошо для меня! Проголосовал, чтобы он поднялся на вершину! ;-)
Fabby

1

Возможно, вам следует использовать jscal для калибровки вашего джойстика - вы можете использовать опцию -u на странице руководства, чтобы настроить джойстик так, чтобы он не использовал кнопки мыши.

Также есть интересная информация о различных джойстиках и геймпадах на Ubuntuforums .


Есть ли способ настроить это без генерации и редактирования файла xorg.conf? (Я уже использую jscal для калибровки джойстика)
Shazzner

Я использую jstest-gtk, это в репозиториях, я думаю.
animaletdesequia

1

Попробуйте Qjoypad или (если вы не хотите использовать QT) легковесный режестик (GTK). Таким образом, вам не нужно редактировать / создавать xorg.conf.

Они оба доступны на playdeb

Понимание драйверов джойстика - беспорядок, все кажется устаревшим или незаконченным ... Удачи!


1
Это отличные программы, но, к сожалению, они не решили мою проблему, поскольку их повторное связывание не помогло решить проблему.
Шаззнер

1

Я использую Linux Mint 17.3, и у меня возникла такая же проблема. У меня была живая консоль, и я собирался выбросить контроллер. Я не знал, что это сработает, но он легко подключался через Bluetooth. Левый джойстик управлял мышью, и я искал и пробовал разные методы, но ни один из них не работал. Я публикую это, чтобы оно могло помочь другим людям. Я следил за исправлением со страницы настройки Ubuntu Sixaxis . Мне пришлось добавить эту конфигурацию в файл 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

Он отлично работает после выхода из системы. Единственная проблема в том, что если xorg.conf будет обновлен, как после установки нового графического драйвера, он потеряет его. Может кто-нибудь объяснить мне, как создать скрипт, который проверяет конфигурацию в файле, если нет, написать его после каждой перезагрузки? Заранее спасибо.


0

1- Сначала вы должны увидеть номер вашего джойстика ... так что запустите терминал и наберите xinpute list, найдите номер вашего джойстика и замените его номер вместо 10 в примере ниже.

#!/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- Создайте новый документ, затем поместите в него код, затем переименуйте его в name.sh. Формат 3 - Запустите терминал, а затем укажите путь для сохранения файла.

Пример: cd Desktop (потому что я сохранил мой на рабочем столе)

4- Введите bash name.sh (нажмите Enter, и все готово!)

Примечание 1: чтобы снова включить его, просто измените 0 на последних 2 строках на 1 Примечание 2: если это не сработает, обязательно удалите xserver-xorg-input-joystick и /usr/lib/X11/xorg.conf.d / 10-джойстик


0

Ответ Матиаса Пармиджани был ключевым для меня. Однако формат xinput listизменился, по крайней мере, в 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)]

В результате мне нужно было использовать следующее в моем скрипте отключения:

#!/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

Надеюсь это поможет!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.