가운데 마우스 버튼 비활성화


17

그래서 나는 다른 여러 가지 질문을 살펴 보았지만 대부분 마우스 페이스트를 비활성화하는 데 중점을 둡니다.

기본적으로 Logitech G500의 가운데 마우스 버튼이 손상되어 무작위로 "클릭"을 유지하므로 작업 할 가능성이 없어집니다.

비활성화하는 방법이 있습니까? 아니면 아무것도 매핑하지 않습니까?

이것이 중복이라면 감사하고 죄송합니다.

xinput list 산출:

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜   ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜   ↳ Turtle Beach Turtle Beach PX3 (XBOX) id=8 [slave pointer (2)]
⎜   ↳ Logitech G500s Laser Gaming Mouse id=9 [slave pointer (2)]
⎜   ↳ Logitech G500s Laser Gaming Mouse id=10 [slave pointer (2)]
⎜   ↳ Razer Razer DeathStalker id=12 [slave pointer (2)]
⎜   ↳ Razer Razer DeathStalker id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
    ↳ Power Button id=6 [slave keyboard (3)]
    ↳ Power Button id=7 [slave keyboard (3)]
    ↳ Razer Razer DeathStalker id=11 [slave keyboard (3)]

이 명령을 실행 xinput list | grep 'id='하고 출력을 게시하십시오.
Helio

이 마우스의 경우이 마우스에 대한 두 개의 장치 ID가 있습니다. xinput test 9를 실행 한 후 마우스 가운데 버튼의 ID는 2입니다.
Tom Hamilton Stubber

답변:


24

다음 명령을 실행하십시오 :

xinput set-button-map 9 1 0 3
xinput set-button-map 10 1 0 3

설명 ( @Yehosef 에 의해 기증 ) :

첫 번째 숫자는 포인터의 ID입니다 (이 경우에는 종종 하나만 있습니다.이 경우에는 2, 9 및 10이 있습니다).

다음 숫자는 첫 번째, 두 번째 및 세 번째 (즉, 왼쪽, 가운데, 오른쪽) 마우스 버튼으로 수행하는 작업입니다. "1 0 3"은 왼쪽 버튼이 왼쪽 클릭 (액션 1)을 수행하고 중간 버튼은 아무 것도 수행하지 않아야하며 오른쪽 버튼은 오른쪽 클릭 (액션 3)을 수행해야 함을 나타냅니다. 중간 버튼도 왼쪽 클릭을하려면 "1 1 3"을 사용할 수 있습니다. 오른쪽 및 왼쪽 동작을 전환하려면 "3 0 1"을 사용할 수 있습니다. 자세한 내용은 https://wiki.ubuntu.com/X/Config/Input 을 참조 하십시오 .


고마워요, 이것을 찾으려고 노력하는 것은 매우 좌절되었습니다.
Tom Hamilton Stubber 2016 년

1
감사! 궁금한 분들을 위해 9/10은 마우스의 입력 ID이고 1 0 3은 첫 번째, 두 번째 및 세 번째 마우스 버튼에 대한 매핑입니다. 모든 버튼이 동일한 작업을 수행하도록하려면 1 1 1을 사용하거나 오른쪽 및 왼쪽 버튼을 전환하려면 3 0 1을 사용할 수 있습니다.
Yehosef

@Yehosef : 감사합니다! OP가 명령을 실행할 때 무슨 일이 일어나고 있는지 설명하지 않았습니다. 핑 (Ping)하면 새 상세 답변을 작성하여 투표하겠습니다. 이것은 흥미로운 설명입니다.
Helio

@Helio 다른 답변이 없습니다. 관심있는 사람들을위한 더 자세한 설명입니다. 이 정보를 포함하도록 답변을 편집하고 싶을 수도 있습니다. 나는 당신의 대답을 편집에 대한 생각 -하지만 사람들이 내 답변을 추가 세부 사항을 추가 할 때 나는 일반적으로 그것을 좋아하지 않는다 - 나는 :) 자제 있도록
Yehosef

2
첫 번째 숫자를 어떻게 결정합니까? xinput list | grep 'id='마우스 / 터치 패드와 가장 유사한 것을 실행 하고 찾습니다. 그것이 올바른지 아닌지를 결정하는 확실한 방법은 무엇입니까?
Kvothe

2

다음 지침은 Ubuntu Wiki의 정보를 기반으로합니다 (예 : 스크롤 휠 마우스에서 마우스 가운데 단추 붙여 넣기 비활성화).

먼저 입력 장치를 나열하여 포인터의 ID를 결정하십시오.

xinput list | grep 'id='

그리고 포인터 이름을 포함하는 줄을 찾으십시오. "id ="바로 뒤에 장치의 ID도 있어야합니다. 예를 들어이 장치의 ID는 10입니다.

Lenovo ThinkPad Compact USB Keyboard with TrackPoint    id=10   [slave  pointer  (2)]

다음으로 해당 장치의 현재 버튼 맵을 가져옵니다 (10의 장치 ID를 사용합니다).

xinput get-button-map 10

산출:

1 2 3 4 5 6 7 8 9

이것은 포인터 버튼을 액션에 매핑하는데, ​​여기서 숫자는 액션 코드를 나타내고 위치는 버튼입니다.

우리는 두 번째 맵에 관심이 있습니다-숫자 2는 "중간 버튼 클릭"동작과 해당 위치-실제 중간 버튼에 해당합니다.

동작을 트리거하는 중간 버튼을 비활성화하려면 xinput set-button-map장치의 id와 명령 을 사용 하고 맵을 업데이트합니다 (새로운 동작 코드는 0입니다-동작 없음). 관심있는 버튼으로 충분할 때까지 전체지도를 넣을 필요가 없습니다 (나머지는 업데이트되지 않습니다).

 xinput set-button-map 10 1 0

그게 다야.


이것은 Ubuntu 18.04가 설치된 Lenovo Thinkpad T580의 터치 패드에서 작동했습니다.
Russell England

0

set-button-map가운데 클릭 기능을 비활성화합니다. 왼쪽 + 오른쪽 클릭을 사용하여 가운데 클릭을 에뮬레이션 (마우스를 사용하여 붙여 넣기 및 탭 열기 등)하고 마우스 휠 클릭을 비활성화하려면 libinput을 패치 할 수 있습니다.

--- a/src/evdev.c   2019-09-22 17:15:13.498880044 +0300
+++ a/src/evdev.c   2019-09-22 17:15:18.062860221 +0300
@@ -1861,6 +1861,8 @@
    /* Logitech Marble Mouse claims to have a middle button */
    if (device->model_flags & EVDEV_MODEL_LOGITECH_MARBLE_MOUSE)
        libevdev_disable_event_code(device->evdev, EV_KEY, BTN_MIDDLE);
+
+   libevdev_disable_event_code(device->evdev, EV_KEY, BTN_MIDDLE);
 }

 static void
  • mkdir deb; cd deb; apt source libinput; sudo apt build-dep libinput
  • 위 패치를 다음과 같이 저장하십시오 libinput-1.XX.Y/debian/patches/middle.diff
  • 추가 middle.diffdebian/patches/series
  • dpkg-buildpackage -us -uc -b
  • sudo dpkg -i ../libinput10_*.deb
  • Xorg를 재시작하거나 머신을 재시작하십시오

그리고 사용 xinput list하고 xinput set-prop 11 "libinput Middle Emulation Enabled" 1왼쪽 + 오른쪽 에뮬레이션을 활성화합니다. 11의 장치 번호 xinput list이며 set-prop 명령을에 추가 할 수 있습니다 ~/.xstartup.

또는 재 빌드를 피하려면 libinput .quirks 파일 (미정)을 사용하십시오.

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