Джойстик діє як миша; не зупиниться


14

Джойстик працює як миша, навіть коли я граю в гру, яка використовує джойстик, тому я отримую випадкові події миші.

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

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

Отже, в основному, як, до біса, я не перешкоджаю йому виконувати роль миші?


Чи можете ви показати, який у вас є ПК та джойстик, який ви використовуєте. Також яка версія Ubuntu.
Луїс Альварадо

Я використовую адаптер для відтворення 2 для usb, під jscalibrate він вказаний як: GreenAsia Inc. USB джойстик. Я запускаю Ubuntu 10.10
Shazzner

Відповіді:


15

Видалити xserver-xorg-input-joystick.

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


Ура, що це вдалося! Я думаю, що це зачепилося, коли я додав пакет джойстика синаптично. Зараз це чудово працює!
Shazzner

У мене була і ця проблема, і вона її усунула. Велике спасибі за відповідь, дуже вдячний!
b1ackcrow

Чи є спосіб вимкнути / увімкнути цей феєр? Це kindda класно керує мишею за допомогою геймпада, але його слід приємно ввімкнути, коли мені це потрібно
chepe263

спасибі, сміливо, це теж працювало на Arch Linux! Намагався грати в Дастфорс, і це мене справді дратувало.
Марко Скеннадінарі

1
FYI Мені довелося також вийти та повернутися також. А в 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".
Фій

Цей код потребує змін для роботи під 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
Це чудові програми, але, на жаль, не вирішили мою проблему, оскільки їх перезавантаження не усунуло проблему.
Shazzner

1

Я використовую Linux Mint 17.3, і у мене була ця сама проблема. У мене була консоль onlive, і я збирався викинути контролер. Я не знав, що це буде працювати, але він легко з'єднався через 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, і подивіться на свій номер джойстика та замініть його на номер замість 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.