우리 아이의 acer v5 오른쪽 버튼이 고장났습니다. 우유에 젖어 있었는데 갑자기 눌려진 것처럼 보였습니다.
터치패드만 사용하려면 버튼을 완전히 비활성화하려면 어떻게 해야 하나요?
OpenSUSE 13.1과 KDE가 있습니다.
답변1
대부분의 터치패드는 명령줄 도구 synclient
및 xinput
.
이 두 가지 도구 중에서 비활성화 uttons 을 사용할 수 있다고 생각하지 않습니다 synclient
. 를 사용하여 이 작업을 수행할 수 있습니다 xinput
. 두 가지 도구 중에서 이것이 사용하기가 더 번거롭지만 그리 어렵지는 않습니다.
스위치를 사용하여 실행 하면 -h
다음과 같은 사용 정보를 얻을 수 있습니다.
$ xinput -h
usage :
xinput get-feedbacks <device name>
xinput set-ptr-feedback <device name> <threshold> <num> <denom>
xinput set-integer-feedback <device name> <feedback id> <value>
xinput get-button-map <device name>
xinput set-button-map <device name> <map button 1> [<map button 2> [...]]
xinput set-pointer <device name> [<x index> <y index>]
xinput set-mode <device name> ABSOLUTE|RELATIVE
xinput list [--short || --long || --name-only || --id-only] [<device name>...]
xinput query-state <device name>
xinput test [-proximity] <device name>
xinput create-master <id> [<sendCore (dflt:1)>] [<enable (dflt:1)>]
xinput remove-master <id> [Floating|AttachToMaster (dflt:Floating)] [<returnPointer>] [<returnKeyboard>]
xinput reattach <id> <master>
xinput float <id>
xinput set-cp <window> <device>
xinput test-xi2 <device>
xinput map-to-output <device> <output name>
xinput list-props <device> [<device> ...]
xinput set-int-prop <device> <property> <format (8, 16, 32)> <val> [<val> ...]
xinput set-float-prop <device> <property> <val> [<val> ...]
xinput set-atom-prop <device> <property> <val> [<val> ...]
xinput watch-props <device>
xinput delete-prop <device> <property>
xinput set-prop <device> [--type=atom|float|int] [--format=8|16|32] <property> <val> [<val> ...]
xinput disable <device>
xinput enable <device>
이름에 "Button"이라는 텍스트가 포함된 옵션부터 시작하겠습니다.
$ xinput -h 2>&1 | grep button
xinput get-button-map <device name>
xinput set-button-map <device name> <map button 1> [<map button 2> [...]]
쿼리하려면 장치 이름이 필요합니다. 이렇게 하려면 를 사용합니다 xinput list
.
예
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech Unifying Device. Wireless PID:4013 id=9 [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)]
↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=13 [slave keyboard (3)]
장치 핸들은 일반적으로 "SynPS/2 Synaptics TouchPad"이지만 특정 하드웨어에 따라 다를 수 있습니다.
$ xinput get-button-map "SynPS/2 Synaptics TouchPad"
1 2 3 4 5 6 7 8 9 10 11 12
이것은 내 Thinkpad T410 노트북의 터치패드에 할당된 모든 "버튼"입니다. 터치패드의 모든 모서리 등도 "버튼"으로 간주되므로 위 출력에 버튼이 너무 많습니다. 스위치를 사용하면 위 목록에서 어떤 버튼이 어떤 숫자인지 자세히 알아볼 수 있습니다 --long
.
예
$ xinput list --long "SynPS/2 Synaptics TouchPad"
...
⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)]
Reporting 8 classes:
Class originated from: 11. Type: XIButtonClass
Buttons supported: 12
Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" None None None None None
Button state:
Class originated from: 11. Type: XIValuatorClass
Detail for Valuator 0:
Label: Rel X
Range: 1472.000000 - 5888.000000
Resolution: 75000 units/m
Mode: relative
Class originated from: 11. Type: XIValuatorClass
Detail for Valuator 1:
Label: Rel Y
Range: 1408.000000 - 4820.000000
Resolution: 105000 units/m
Mode: relative
Class originated from: 11. Type: XIValuatorClass
Detail for Valuator 2:
Label: Rel Horiz Scroll
Range: 0.000000 - -1.000000
Resolution: 0 units/m
Mode: relative
Class originated from: 11. Type: XIValuatorClass
Detail for Valuator 3:
Label: Rel Vert Scroll
Range: 0.000000 - -1.000000
Resolution: 0 units/m
Mode: relative
...
좋습니다. 그런데 버튼을 어떻게 비활성화합니까?
매뉴얼 페이지를 보면 xinput
다음과 같은 단서를 볼 수 있습니다.
$ man xinput
...
--set-button-map device map_button_1 [map_button_2 [...]]
Change the button mapping of device. The buttons are specified
in physical order (starting with button 1) and are mapped to
the logical button provided. 0 disables a button. The default
button mapping for a device is 1 2 3 4 5 6 etc.
...
따라서 비활성화하려는 버튼을 기록하는 경우 xinput list --long "SynPS/2 Synaptics TouchPad"
다음을 수행할 수 있습니다(버튼 #5를 비활성화하려는 경우).
$ xinput set-button-map "SynPS/2 Synaptics TouchPad" 1 2 3 4 0 6 7 8 9 10 11 12
노트:위의 예에서 "SynPS/2 Synaptics TouchPad"
이는 로 대체될 수도 있습니다 11
. 이는 특정 입력의 ID이므로 위와 동일합니다.
$ xinput set-button-map 11 1 2 3 4 0 6 7 8 9 10 11 12
장치 이름에 대한 팁
출력에서 xinput list
strings 가 포함된 열이 있음을 알 수 있습니다 id=#
.
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech Unifying Device. Wireless PID:4013 id=9 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=12 [slave pointer (2)]
귀찮은 긴 문자열 대신 "SynPS/2 Synaptics TouchPad"라는 ID를 사용할 수 있습니다.
$ xinput list-props 11