조이스틱은 마우스 역할을합니다. 멈추지 않을 것이다


14

조이스틱은 조이스틱을 사용하는 게임을 할 때도 마우스 역할을하므로 임의의 마우스 이벤트가 발생합니다.

Spiral Knights를 플레이하기 위해 조이스틱을 꽂았으며 조이스틱과 jcalibrate도 설치했습니다. 기본적으로 조이스틱이 마우스를 움직이고 버튼이 마우스 키를 활성화하는 것을 제외하고는 모든 것이 잘 작동합니다.

이제는 Myth-box 또는 다른 것에 있으면 불행히도 조이스틱 입력으로 Spiral Knights를 재생할 때 마우스 커서가 뒤에서 움직이고 버튼을 누르면 버튼을 누르면 생각합니다. 마우스 오른쪽 버튼을 클릭하면 모든 것이 최소화됩니다. 또한 폴더를 만들고 아마도 물건을 삭제합니다.

기본적으로 어떻게 마우스 역할을하지 못하게합니까?


가지고있는 PC와 사용중인 조이스틱을 보여줄 수 있습니까? 또한 우분투 버전.
루이스 알바라도

나는 jscalibrate 아래에 플레이 스테이션 2-USB 어댑터를 사용하고 있습니다 : GreenAsia Inc. USB 조이스틱. 우분투 10.10을 실행 중입니다
Shazzner

답변:


15

제거 xserver-xorg-input-joystick.

조이스틱으로 마우스를 제어하는 ​​패키지입니다. 나는 그것을 테스트하기 위해 한 번만 설치했고 그것이 나를 화나게 했으므로 아마도 문제 일 것입니다. 조이스틱이 없으면 조이스틱이 동일하게 작동한다고 생각합니다.


그것을 한 만세! 조이스틱 패키지를 시냅틱으로 추가했을 때 그 점에 착수했다고 생각합니다. 그것은 지금 잘 작동합니다!
Shazzner

나는 또한이 문제가 있었고 그것을 고쳤다. 답변 해 주셔서 감사합니다.
b1ackcrow

이 기능을 켜거나 끄는 방법이 있습니까? 게임 패드로 마우스를 제어하는 ​​것이 멋지지만 필요할 때 켜면 좋을 것입니다.
chepe263

고마워요, 이것은 아치 리눅스에서도 작동했습니다! Dustforce를 재생하려고했는데 정말 귀찮았습니다.
Marco Scannadinari

1
참고로 로그 아웃했다가 다시 로그인해야했습니다. 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 list"줄의 형식이 변경된 것 같습니다.
Phoeey

이 코드는 Ubuntu 18.04 LTS에서 작동하도록 변경해야합니다. 출력이 변경되었습니다.
Hans Deragon

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]}]

이 버전의 스크립트는 토글과 같은 현재 설정에 따라 컨트롤러를 활성화 또는 비활성화합니다.


이것은 a) 다른 컨트롤러와 b) 주어진 스크립트와 다른 기능을 갖는 새로운 솔루션이기 때문입니다. 기존 답변을 수정하면 어떻게 변경되는지 알 수 없습니다.
hochl

나를 위해 충분하다! 상단으로 올라갑니다! ;-)
Fabby

1

조이스틱을 보정하기 위해 jscal을 사용해야 할 것입니다. 매뉴얼 페이지 에 따라 -u 옵션을 사용하여 마우스 버튼을 사용하지 않도록 조이스틱을 구성 할 수 있습니다 .

우분투 포럼 의 다양한 조이스틱 및 게임 패드에 대한 흥미로운 것들이 있습니다.


xorg.conf 파일을 생성 한 후 편집하지 않고이를 구성 할 수있는 방법이 있습니까? (나는 이미 jscal을 사용하여 조이스틱을 보정하고 있습니다)
Shazzner

나는 그것이 생각하는 repos에있는 jstest-gtk를 사용합니다.
animaletdesequia

1

Qjoypad 또는 (QT를 사용하지 않으려는 경우) 덜 특징적인 rejoystick (GTK)을 사용해보십시오 . 이 방법으로 xorg.conf를 편집 / 생성 할 필요가 없습니다.

둘 다 playdeb에서 사용할 수 있습니다

조이스틱 드라이버를 이해하는 것은 엉망입니다. 모든 것이 오래되었거나 완료되지 않은 것 같습니다 ... 행운을 빌어 요!


1
이들은 훌륭한 프로그램이지만 안타깝게도 리 바인드하여도 문제가 해결되지 않아 내 문제를 해결하지 못했습니다.
Shazzner

1

Linux Mint 17.3을 사용하고 있으며 동일한 문제가 발생했습니다. 나는 콘솔을 가지고 있었고 컨트롤러를 버릴 예정이었습니다. 나는 그것이 작동한다는 것을 몰랐지만 블루투스를 통해 쉽게 연결되었습니다. 왼쪽 조이스틱은 마우스를 제어하고 있었고 다른 방법을 검색하고 시도했지만 그중 아무것도 작동하지 않았습니다. 다른 사람들을 도울 수 있도록 이것을 게시하고 있습니다. 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

끝 섹션

로그 아웃 한 후 완벽하게 작동합니다. 유일한 문제는 xorg.conf가 새 그래픽 드라이버를 설치 한 후와 같이 업데이트되면 손실됩니다. 구성 파일이 파일에 있는지 확인하는 스크립트를 작성하는 방법을 설명해 주시겠습니까? 고급 감사합니다.


0

1- 조이스틱 번호가 먼저 표시되어야합니다. 따라서 터미널을 실행하고 xinpute list를 입력하고 조이스틱 번호를 찾아 아래 예에서 10 대신 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 : 다시 켜려면 마지막 2 줄의 0을 1로 변경하십시오. 참고 2 : 그래도 작동하지 않으면 xserver-xorg-input-joystick 및 /usr/lib/X11/xorg.conf.d를 제거하십시오 / 10 조이스틱


0

Matias Parmigiani의 대답은 저에게 핵심이었습니다. 그러나 xinput list적어도 우분투 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

도움이 되었기를 바랍니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.