Joystick bertindak sebagai mouse; tidak akan berhenti

14

Joystick bertindak sebagai mouse, bahkan ketika saya sedang bermain game yang menggunakan joystick jadi saya mendapatkan kejadian mouse acak yang terjadi.

Saya memasang joystick untuk memainkan Spiral Knights, juga menginstal joystick dan jcalibrate. Semuanya berfungsi dengan baik, kecuali secara default joystick menggerakkan mouse dan tombol mengaktifkan tombol mouse.

Sekarang biasanya ini akan menjadi perilaku yang baik jika saya berada di kotak Mitos atau sesuatu, sayangnya ketika saya bermain Spiral Knights dengan input joystick saya melihat kursor mouse saya bergerak di tanah belakang dan ketika saya menekan tombol itu berpikir saya menekan klik kanan sehingga meminimalkan semuanya. Juga membuat folder dan mungkin menghapus barang.

Jadi, pada dasarnya bagaimana cara saya menghentikannya dari bertindak sebagai mouse?

Shazzner
sumber
Dapatkah Anda menunjukkan PC apa yang Anda miliki dan joystick yang Anda gunakan. Juga versi apa Ubuntu.
Luis Alvarado
Saya menggunakan adaptor playstation 2 ke usb, di bawah jscalibrate terdaftar sebagai: GreenAsia Inc. USB Joystick. Saya menjalankan Ubuntu 10.10
Shazzner

Jawaban:

15

Copot pemasangan xserver-xorg-input-joystick.

Ini adalah paket untuk mengendalikan mouse dengan joystick. Saya hanya menginstal sekali untuk mengujinya dan itu membuat saya marah, jadi mungkin itu masalahnya. Saya pikir joystick akan bekerja sama tanpa itu.

animaletdesequia
sumber
Hore yang berhasil! Saya pikir itu terpaku ketika saya menambahkan paket joystick di sinaptik. Ini bekerja dengan baik sekarang!
Shazzner
Saya juga memiliki masalah ini dan memperbaikinya. Terima kasih banyak untuk menjawab, sangat dihargai!
b1ackcrow
Apakah ada cara untuk mematikan / pada fitur ini? Kindda keren mengendalikan mouse dengan gamepad tetapi harus menyenangkan untuk menyalakannya ketika saya membutuhkannya
chepe263
Terima kasih, ini juga bekerja di Arch Linux! Sedang berusaha bermain Dustforce, dan ini benar-benar mengganggu saya.
Marco Scannadinari
1
FYI saya harus logout dan kembali juga. Dan di Manjaro linux, nama paketnya adalah xf86-input-joystick.
Peter
4

masukkan kode ini ke file:

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

simpan, tombol kanan di kanan dan centang "tandai file ini sebagai program"

jalankan itu dan Anda akan memiliki joystick "sebagai joystick lagi" (dan yang terbaik, Anda dapat memiliki joystick sebagai mouse lagi jika Anda mengubah "0" di dua baris terakhir dengan "1").

Matias Parmigiani
sumber
Sepertinya format baris "xinput list" telah berubah.
Phoeey
Kode ini perlu diubah agar berfungsi di bawah Ubuntu 18.04 LTS. Outputnya telah berubah.
Hans Deragon
2

Saya hanya punya masalah yang sama, tetapi dengan controller Playstation 3. Menggunakan jawaban sebagai templat, saya memperluas solusinya:

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

Versi skrip ini akan mengaktifkan atau menonaktifkan pengontrol, tergantung pada pengaturan saat ini, seperti toggle.

hochl
sumber
Karena ini adalah solusi baru untuk a) pengontrol yang berbeda dan b) memiliki fungsi yang berbeda dengan skrip yang diberikan. Saya tidak melihat bagaimana mengedit jawaban yang ada akan mengubah itu.
Hochl
Cukup baik untukku! Terpilih sehingga akan naik ke atas! ;-)
Fabby
1

Anda mungkin harus menggunakan jscal untuk mengkalibrasi joystick Anda - Anda dapat menggunakan opsi -u sesuai halaman manual untuk mengkonfigurasi joystick agar tidak menggunakan tombol mouse.

Ada beberapa hal menarik tentang berbagai joystick & gamepad di ubuntuforums juga.

kebebasan fosil
sumber
Apakah ada cara untuk mengkonfigurasi ini tanpa menghasilkan kemudian mengedit file xorg.conf? (Saya sudah menggunakan jscal untuk mengkalibrasi joystick)
Shazzner
Saya menggunakan jstest-gtk itu di repos saya pikir.
animaletdesequia
1

Coba Qjoypad atau (jika Anda tidak ingin menggunakan QT) sljoylty kurang unggulan rejoystick (GTK). Dengan cara ini Anda tidak perlu mengedit / membuat xorg.conf.

Keduanya tersedia di playdeb

Memahami driver joystick agak berantakan, semuanya tampaknya sudah usang atau belum selesai ... Semoga beruntung!

turbo
sumber
1
Ini adalah program yang bagus tetapi sayangnya tidak menyelesaikan masalah saya karena memutarnya tidak membuat masalah ini hilang.
Shazzner
1

Saya menggunakan Linux Mint 17.3 dan saya mengalami masalah yang sama. Saya memiliki konsol onlive dan saya akan membuang controller. Saya tidak tahu itu akan berhasil, tetapi terhubung dengan mudah melalui bluetooth. Joystick kiri mengendalikan mouse dan saya mencari dan mencoba metode yang berbeda tetapi tidak ada yang berhasil. Saya memposting ini sehingga dapat membantu orang lain. Saya mengikuti perbaikan dari halaman pengaturan Ubuntu Sixaxis . Saya harus menambahkan konfigurasi ini ke file xorg.conf:

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

Bagian Akhir

Ini berfungsi dengan baik setelah keluar. Satu-satunya masalah adalah jika xorg.conf diperbarui seperti setelah menginstal driver grafis baru, itu akan hilang. Dapatkah seseorang menjelaskan saya cara membuat skrip yang memeriksa konfigurasi ada di file, jika tidak, tulis setelah setiap reboot? Terima kasih sudah mahir.

Mauricio Giraldo
sumber
0

1- Anda harus melihat nomor joystick Anda terlebih dahulu ... jadi Jalankan Terminal dan ketik daftar xinpute, dan lihat nomor joystick Anda dan ganti nomornya daripada 10 pada Contoh di bawah ini.

#!/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- Buat Dokumen baru kemudian masukkan kode di dalamnya, lalu ganti namanya menjadi name.sh Format 3- Jalankan Terminal kemudian letakkan path tempat Anda menyimpan file.

Contoh: cd Desktop (Karena saya menyimpan milik saya di Desktop)

4- Ketikkan bash name.sh (Klik Enter dan Anda Selesai!)

Note1: untuk mengaktifkannya kembali, ubah 0 pada 2 baris terakhir menjadi 1 Note2: jika ini tidak berhasil pastikan untuk menghapus xserver-xorg-input-joystick dan /usr/lib/X11/xorg.conf.d / 10-joystick

AhmedAlkaabi
sumber
0

Jawaban Matias Parmigiani adalah kunci untuk saya. Namun, format xinput listtelah berubah, setidaknya di 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)]

Akibatnya saya perlu menggunakan yang berikut ini dalam skrip cacat saya:

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

Semoga ini membantu!

Phoeey
sumber