Oyun çubuğu fare gibi davranır; durmayacak


14

Joystick, bir joystick kullanan bir oyun oynarken bile fare gibi davranıyor, böylece rastgele fare olayları oluyor.

Spiral Knights oynamak için bir joystick taktım, ayrıca joystick ve jcalibrate taktım. Her şey iyi çalışıyor, ancak varsayılan olarak joystick fareyi hareket ettiriyor ve düğme fare tuşlarını etkinleştiriyor.

Şimdi normalde bu bir Efsane kutusunda ya da başka bir şeydeysem iyi bir davranış olurdu, ne yazık ki joystick girişi ile Spiral Şövalyeler oynadığımda fare imlecimin arka planda hareket ettiğini ve bir düğmeye bastığımda bastığımı düşünüyor sağ tıklayın, böylece her şeyi en aza indirir. Ayrıca klasörler oluşturur ve muhtemelen bir şeyler siler.

Peki, temelde fare gibi davranmasını nasıl önleyebilirim?


Hangi PC'niz olduğunu ve kullandığınız joystick'i gösterebilir misiniz? Ayrıca ne Ubuntu sürümü.
Luis Alvarado

USB adaptör bir playstation 2 kullanıyorum, jscalibrate altında olarak listelenmiştir: GreenAsia Inc. USB Joystick. Ubuntu 10.10
Shazzner

Yanıtlar:


15

Kaldır xserver-xorg-input-joystick.

Fareyi joystick ile kontrol etmek için bir paket. Test etmek için sadece bir kez yükledim ve beni deli ediyordu, belki de sorun bu. Oyun çubuğunun onsuz da aynı şekilde çalışacağını düşünüyorum.


Yaşasın! Ben joystick paketini sinaptik olarak eklediğimde bunun çok zorlandığını düşünüyorum. Şimdi harika çalışıyor!
Shazzner

Bu sorunu da yaşadım ve düzeltti. Cevap için çok teşekkürler, çok takdir!
b1ackcrow

Bu özelliği kapatmanın / açmanın bir yolu var mı? Kindda cool fare gamepad ile kontrol ama ihtiyacım olduğunda açmak güzel olmalı
chepe263

Teşekkürler, bu Arch Linux üzerinde de çalıştı! Dustforce oynamaya çalışıyordu ve bu beni gerçekten sinirlendiriyordu.
Marco Scannadinari

1
FYI Ayrıca çıkış yapmam ve tekrar giriş yapmam gerekiyordu. Ve Manjaro linux'da paket adı xf86-input-joystick idi.
Peter

4

bu kodu bir dosyaya koy:

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

kaydedin, haklarda sağ düğme ve "bu dosyayı bir program olarak işaretle" seçeneğini işaretleyin

yürütmek ve "tekrar" son iki satırda "0" değiştirirseniz en iyi, en iyi, tekrar joystick fare gibi olabilir joystick sahip olacak).


Görünüşe göre "xinput list" satırlarının biçimi değişmiş.
Phoeey

Bu kodun Ubuntu 18.04 LTS altında çalışması için değişiklik yapılması gerekiyor. Çıktı değişti.
Hans Deragon

2

Aynı sorunu yaşadım, ancak bir Playstation 3 denetleyicisiyle. Cevapları şablon olarak kullanarak çözümü genişlettim:

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

Komut dosyasının bu sürümü, bir açma / kapatma gibi geçerli ayarlara bağlı olarak denetleyiciyi etkinleştirir veya devre dışı bırakır.


Bu, a) farklı bir denetleyici ve b) verilen komut dosyalarından farklı işlevlere sahip olduğundan yeni bir çözüm olduğundan. Mevcut bir cevabı düzenlemenin bunu nasıl değiştireceğini görmüyorum.
hochl

Benim için yeterince iyi! Oy verildi, böylece zirveye çıkacak! ;-)
Fabby

1

Joystick'inizi kalibre etmek için jscal kullanıyor olabilirsiniz ; joystick'i fare düğmelerini kullanmayacak şekilde yapılandırmak için manuel sayfaya göre -u seçeneğini kullanabilirsiniz.

Ubuntuforums'taki çeşitli oyun çubukları ve gamepad'ler hakkında bazı ilginç şeyler var .


Bunu bir xorg.conf dosyası oluşturmadan düzenlemeden yapılandırmanın bir yolu var mı? (Zaten joystick'i kalibre etmek için jscal kullanıyorum)
Shazzner 17:11

Bence depolarda jstest-gtk kullanıyorum.
animaletdesequia

1

Qjoypad'ı deneyin veya (QT kullanmak istemiyorsanız), daha az özellikli kayma çubuğu (GTK) deneyin . Bu şekilde xorg.conf dosyasını düzenlemeniz / oluşturmanız gerekmez.

Her ikisi de playdeb'de mevcut

Joystick sürücülerini anlamak biraz dağınık, her şey eski ya da bitmemiş görünüyor ... İyi şanslar!


1
Bunlar harika programlar ama maalesef sorunumu çözmediler çünkü onları yeniden hatırlamak sorunu ortadan kaldırmadı.
Shazzner

1

Linux Mint 17.3 kullanıyorum ve aynı sorunu yaşıyordum. Onlive konsolu vardı ve denetleyiciyi atacaktım. Çalışacağını bilmiyordum, ancak bluetooth ile kolayca bağlandı. Sol joystick fareyi kontrol ediyordu ve farklı yöntemler araştırıp deniyorum ama hiçbiri işe yaramadı. Bunu diğer insanlara yardımcı olması için gönderiyorum. Düzeltmeyi Ubuntu Sixaxis kurulum sayfasından takip ettim . Bu yapılandırmayı xorg.conf dosyasına eklemek zorunda kaldım:

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

EndSection

Oturumu kapattıktan sonra mükemmel çalışır. Tek sorun, xorg.conf yeni bir grafik sürücüsü yüklendikten sonra güncellenirse, kaybedecektir. Birisi bana yapılandırmanın dosyada olup olmadığını kontrol eden bir komut dosyasının nasıl oluşturulacağını açıklayabilir, eğer değilse, her yeniden başlatmanın ardından yazabilir mi? Şimdiden teşekkürler.


0

1- İlk önce joystick numaranızı görmelisiniz ... Bu yüzden Terminal'i çalıştırın ve xinpute listesini yazın ve joystick numaranıza bakın ve aşağıdaki Örnekte 10 yerine numarasını değiştirin.

#!/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- Yeni bir belge oluşturun ve kodu içine yerleştirin, sonra da name olarak adlandırın. Sh Format 3- Terminal'i çalıştırın ve dosyayı kaydettiğiniz yere koyun.

Örnek: cd Masaüstü (Benimkini masaüstüne kaydettiğim için)

4- bash name.sh yazın (Enter tuşuna basın ve Bitti!)

Not1: tekrar açmak için son 2 satırdaki 0 ​​değerini 1 olarak değiştirin Not2: Bu işe yaramazsa xserver-xorg-input-joystick'i ve /usr/lib/X11/xorg.conf.d dosyasını kaldırdığınızdan emin olun. / 10 Kumanda


0

Matias Parmigiani'nin cevabı benim için anahtardı. Ancak, formatı xinput listdeğişti, en azından Ubuntu 13.04 LTS'de ...

⎜   ↳ DragonRise Inc.   Generic   USB  Joystick     id=12   [slave  pointer  (2)]
    ↳ DragonRise Inc.   Generic   USB  Joystick   (keys)    id=11   [slave  keyboard (3)]

Sonuç olarak, devre dışı bırakma komut dosyamda aşağıdakileri kullanmam gerekiyordu:

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

Bu yardımcı olur umarım!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.