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

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

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

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

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

14
задан 17 April 2011 в 10:26

9 ответов

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

#!/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»).

0
ответ дан 17 April 2011 в 10:26

У меня просто была та же проблема, но с контроллером 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]}]

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

2
ответ дан 17 April 2011 в 10:26

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

Есть несколько интересных вещей о различных джойстиках и усилителях. геймпады на убунтуфорумах .

0
ответ дан 17 April 2011 в 10:26

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

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

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

0
ответ дан 17 April 2011 в 10:26

Я использую 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
ответ дан 17 April 2011 в 10:26

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 Рабочий стол (потому что я сохранил мой на рабочем столе)

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

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

0
ответ дан 17 April 2011 в 10:26

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

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

0
ответ дан 17 April 2011 в 10:26

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

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

0
ответ дан 17 April 2011 в 10:26

У меня Linuxlite версии 4.8, и решение, которое я нашел, было очень простым. Настройки-> Мышь и сенсорная панель-> Устройства-> Выберите свой джойстик и затем отключите его. Никаких навороченных сценариев и прочего. В моем случае это был USB-преобразователь SNES-контроллера. Надеюсь, это кому-то поможет!

0
ответ дан 9 March 2020 в 23:09

Другие вопросы по тегам:

Похожие вопросы: