클릭패드/터치패드 하단의 가운데 클릭 비활성화

클릭패드/터치패드 하단의 가운데 클릭 비활성화

Thinkpad T480s에는 "터치패드"가 있습니다. 즉, 물리적 전용 버튼이 아닌 터치패드(부품) 자체를 누를 수 있습니다.

X.org 7.7을 실행하면 터치패드 하단에 마우스 버튼 1, 2, 3(예: 왼쪽, 가운데, 오른쪽) 역할을 하는 가로 줄무늬가 있습니다.

+-----------------+
|                 |
|                 |
|                 |
|                 |
|11111 22222 33333|
|11111 22222 33333|
+-----------------+

버튼 2를 비활성화하고 버튼 1과 3 사이의 영역을 재분배하려면 어떻게 해야 합니까? 즉, 다음과 같은 레이아웃을 원합니다.

+-----------------+
|                 |
|                 |
|                 |
|                 |
|11111111 33333333|
|11111111 33333333|
+-----------------+

노트이 질문은 다음과 다릅니다.mtrack: 수직 버튼 영역을 얻는 방법은 무엇입니까?왜냐하면 저는 mtrack이 아닌 XInput의 맥락에서 이 작업을 수행하려고 하기 때문입니다. 또한 하드웨어는 Synaptics가 아닙니다.

문제의 하드웨어는 XInput에 의해 다음과 같이 식별됩니다.

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                  id=11   [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech TrackPoint                id=12   [slave  pointer  (2)]

답변1

다음을 입력하면:

$ xinput get-button-map 'DLL07BF:01 06CB:7A13 Touchpad'

나는 다음을 얻습니다: 1 2 3 4 5 6 7

나는 다음을 사용하려고합니다 :

$ xinput set-button-map 13 1 2 0 4 5 6 7

가운데 클릭과 오른쪽 클릭을 비활성화합니다.

답변2

어떤 숫자가 어떤 버튼에 해당하는지 파악한 후에는 가운데 클릭 대신 왼쪽 클릭을 사용할 수 있습니다.

제 경우에는 두 번째 숫자가 가운데 클릭에 매핑됩니다.

1 2 3 4 5 6 7
  ^

따라서 이것은 왼쪽 클릭으로 대체됩니다.

xinput set-button-map x 1 1 3 4 5 6 7

xxinput에서 얻은 ID는 어디에 있습니까?

답변3

다음과 같이 가운데 "버튼"을 사용하여 쉽게 등록을 중지할 수 있습니다.

xinput set-button-map 11 1 2 0 4 5 6 7 8 9 10 11 12

여기서 첫 번째 매개변수는 장치 ID(이 경우 위에 게시한 출력을 기준으로 11 xinput)를 지정하고 나머지 매개변수는 버튼을 기능에 매핑합니다. 처음 두 개는 왼쪽 및 오른쪽 버튼(1과 2는 일반 클릭 및 상황에 맞는 메뉴)이고, 세 번째는 가운데 버튼(보통 로 설정 3하지만 0xinput에 무엇이든 매핑하도록 지시함)이고 나머지는 다른 항목보다 우선합니다. (스크롤 등).

패드 바닥 전체를 덮도록 다른 두 개의 버튼을 조정하는 것은 약간 까다롭고 실제로 불가능할 수 있습니다. 이와 같은 트랙패드는 트랙패드 아래에 클릭을 유발하는 스위치가 있는 다음 트랙패드에서 손가락의 위치를 ​​관찰하여 어떤 버튼으로 등록되는지 결정하는 방식으로 작동합니다. 이 문제는 세 가지 방법으로 처리할 수 있습니다.

  1. 패드 자체의 펌웨어에는 구성 옵션이 없습니다.
  2. 패드 자체의 펌웨어에는 구성 옵션이 있습니다.
  3. 드라이버의 사용자 공간 부분에 있습니다.

두 번째 방법은 장치가 이전 PS/2 스타일 직렬 연결을 통해 연결되지 않은 경우에만 작동합니다(대부분의 Thinkpad가 이러한 방식으로 연결되어 있을 수 있습니다). Synaptics는 이를 달성하기 위해 방법 3을 사용하고 거의 모든 것에 대해 많은 구성 옵션을 제공합니다. Elantech가 어떻게 처리하는지 잘 모르겠지만 USB 또는 I2C 연결 장치가 아닌 한 아마도 첫 번째 경우일 것이라고 추측합니다. 이 경우 기술적으로 세 번째 경우입니다. X용 특수 입력 드라이버.

답변4

1. 신분증 찾기

터치패드의 경우 xinput list:

$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=11   [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=12   [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)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ Integrated Camera: Integrated C           id=9    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=10   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=13   [slave  keyboard (3)]

분명히 "...TouchPad"라는 것이 id=11...

2. 하단 이미지 가져오기

ID 카드 사용 시:

xinput get-button-map 11
1 2 3 4 5 6 7 

3. 새로운 버튼 매핑을 설정해 보세요

이제 시행착오를 통해 버튼 이미지가 무엇을 의미하는지 파악해야 합니다. 일반적으로 1이 왼쪽 클릭 동작이라고 가정할 수 있습니다. 가장 먼저 시도해 볼 것은 두 번째 위치가 하단 중앙 버튼이라고 추측하는 것입니다. 이것을 왼쪽 클릭 동작( 1)으로 바꾸십시오:

$ xinput set-button-map 11 1 1 3 4 5 6 7
                             ^

4. 작동하는지 확인하세요

감사해요아담의 대답(이로부터 영감을 얻었습니다.) 원하는 결과를 얻으려면 한 번만 시도하면 됩니다.

+-----------------+
|                 |
|                 |
|                 |
|                 |
|11111 11111 33333|
|11111 11111 33333|
+-----------------+

즉, 하단 스트립의 왼쪽 2/3가 왼쪽 버튼 역할을 하고 오른쪽 3분의 1이 오른쪽 버튼 역할을 합니다.

5. 작동하지 않으면 어떻게 되나요?

버튼 다이어그램의 다른 부분을 3단계와 유사한 키로 바꿔보세요. 1터치패드가 어떻게 반응하는지 확인하세요. 원하는 결과를 얻지 못한 경우 버튼 매핑을 1단계에서 얻은 값으로 재설정하여 원래 동작을 복원하세요.

노트

ThinkPad T570에서 실행했지만 대부분의 터치패드에서 작동합니다.

관련 정보