'터치패드'에 해당되는 글 1건
- 2011.01.11 :: 우분투 리눅스에서 USB 키보드에 달린 터치패드를 disable 하고 싶을 때 (2)
기술을 얘기한다
2011. 1. 11. 16:58
우분투 리눅스에 포함되어 있는 X 윈도는 워낙 훌륭해서 USB 키브드와 잘 연동된다. 예를 들어, 내가 현재 사용하고 있는 IBM Ultranav 키보드의 경우 키보드에 빨콩이라고 불리는 스틱 형태의 포인터와 터치패드가 동시에 내장되어 있다. 따라서, 이 키보드를 연결하면 이들 모두가 인식되어 빨콩으로든 터치패드로든 모두 마우스 포인터 옮기기와 클릭 등을 할 수 있다.
그런데, 가끔 키보드를 치다가 터치패드를 건드려서 엉뚱한 윈도가 활성화 된다든지 하는 맘에 안드는 경우가 생겨서 나는 항상 터치패드는 disable 시켜놓고 쓴다. 윈도의 경우 Ultranav 용 드라이버를 설치하면 선택적으로 enable/disable 할 수 있지만 우분투에서는 어떻게 할까?
물론 항상 그렇지만 여러가지 방법이 있다. 그리고 그 방법은 현재 사용하고 있는 X 윈도의 버전 등과도 관련이 있다. 어쨌든 최신판의 우분투를 기준으로 하면 다음과 같이 해결된다.
우선, 입력 장치가 뭐가 달려 있는지 본다.
그렇다면 내가 disable 하고 싶은 터치패드가 11번인지 12번인지 어떻게 알 수 있을까? 다행히도 해당 장치가 발생시키는 이벤트를 볼 수 있는 기능도 xinput 이 제공한다.
그런데, 가끔 키보드를 치다가 터치패드를 건드려서 엉뚱한 윈도가 활성화 된다든지 하는 맘에 안드는 경우가 생겨서 나는 항상 터치패드는 disable 시켜놓고 쓴다. 윈도의 경우 Ultranav 용 드라이버를 설치하면 선택적으로 enable/disable 할 수 있지만 우분투에서는 어떻게 할까?
물론 항상 그렇지만 여러가지 방법이 있다. 그리고 그 방법은 현재 사용하고 있는 X 윈도의 버전 등과도 관련이 있다. 어쨌든 최신판의 우분투를 기준으로 하면 다음과 같이 해결된다.
우선, 입력 장치가 뭐가 달려 있는지 본다.
포인터로는 시냅틱 터치패드/트랙포인트가 두개 (id 11번과 12번) 그리고 TPPS/2 IBM 트랙포인트가 하나 보인다. (후자의 경우 현재 사용하는 노트북에 내장된 빨콩인 듯) 키보드로는 울트라나브 키브드가 두개 보이는데 하나는 외장 USB이고 하나는 IBM ThinkPad 노트북에 내장된 키보드인 것으로 추정된다.
newcat@newcat:~$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=12 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=14 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=16 [slave pointer (2)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=11 [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)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=9 [slave keyboard (3)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=15 [slave keyboard (3)]
그렇다면 내가 disable 하고 싶은 터치패드가 11번인지 12번인지 어떻게 알 수 있을까? 다행히도 해당 장치가 발생시키는 이벤트를 볼 수 있는 기능도 xinput 이 제공한다.
newcat@newcat:~$ xinput test 11이런 식으로 각 장치 id 를 바꿔가면서 해보면 어느 장치가 몇 번인지를 알게 된다. 나의 경우는 11번을 disable 해야 한다는 걸 알게되었고 이제는 disable 시키려고 한다. 그럼 각 장치가 제공하는 기능이 무엇이 있는지 검사한다.
motion a[0]=2316 a[1]=549
motion a[0]=2320 a[1]=545
motion a[0]=2325 a[1]=541
...
newcat@newcat:~$ xinput list-props 11옳지. 첫 줄에 있는 "Device Enabled" 가 눈에 번쩍! 이걸 1 -> 0 으로 바꿔주면 되겠다.
Device 'Synaptics Inc. Composite TouchPad / TrackPoint':
Device Enabled (135): 1
Device Accel Profile (265): 0
Device Accel Constant Deceleration (266): 1.000000
Device Accel Adaptive Deceleration (268): 1.000000
Device Accel Velocity Scaling (269): 10.000000
Evdev Reopen Attempts (250): 10
Evdev Axis Inversion (270): 0, 0
Evdev Axes Swap (272): 0
Axis Labels (273): "Rel X" (143), "Rel Y" (144)
Button Labels (274): "Button Left" (136), "Button Middle" (137), "Button Right" (138), "Button Wheel Up" (139), "Button Wheel Down" (140)
Evdev Middle Button Emulation (257): 2
Evdev Middle Button Timeout (258): 50
Evdev Wheel Emulation (259): 0
Evdev Wheel Emulation Axes (260): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (261): 10
Evdev Wheel Emulation Timeout (262): 200
Evdev Wheel Emulation Button (263): 4
Evdev Drag Lock Buttons (264): 0
newcat@newcat:~$ xinput set-int-prop 11 "Device Enabled" 8 00 앞에 있는 8은 8 비트짜리 데이터라는 뜻.
댓글을 달아 주세요
리눅스 사용할 때는 많이 건드리고 수정하고 했었는데 오랜만에 신묘군님 글에서 다시 보니 많이 낯서네요^^
2011.01.11 17:08 신고좋은 하루되세요~!
윈도나 맥오에스를 쓰게 되면 이런 걸 볼 일이 별로 없겠지요. ^^
2011.01.12 09:49 신고