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


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.