tl; dr
방금 Logitech T630을 구입했습니다 . 제스처 를 통해 여러 키보드 이벤트를 지원하는 Bluetooth 마우스입니다 (PDF). 이 제스처는 훌륭하고 멋지지만 나는 거의 사용하지 않습니다. 나는 그들을 제거하는 끔찍한 시간을 보내고 있습니다.
우선 순위를 낮추는 순서로 다음을 수행하고 싶습니다.
- 이 제스처를 비활성화
- 제스처 재 맵핑 (펌웨어를 해킹하거나 Windows / OS X 장치 드라이버를 리버스 엔지니어링하지 않으면 불가능합니다)
나는 원하지 않는다 :
- 윈도우 사용
- 모든 제스처를 비활성화
자세한 내용은 다음을 참조하십시오.
버튼과 제스처
13 가지 가능한 마우스 이벤트는 다음과 같습니다.
- 왼쪽 클릭
- 가운데 클릭
- 마우스 오른쪽 버튼으로 클릭
- 스크롤
- 아래로 스크롤
- 왼쪽으로 스크롤
- 오른쪽으로 스크롤
- 왼쪽으로 스 와이프
- 오른쪽으로 스 와이프
- 두 손가락으로 왼쪽으로 스 와이프
- 두 손가락으로 오른쪽으로 스 와이프
- 더블 탭
- 두 손가락 더블 탭
처음 7 개는 OS가 어떻게 매핑하는 순서대로되어 있습니다.
처음 세 개만 기계식입니다. 다른 모든 것은 터치 표면을 사용합니다.
GUI 옵션
Kubuntu Trusty 에서 설정하는 것은 바람이 불었지만 이러한 다른 제스처 구성을 거의 지원하지 않습니다.
이 제스처는 다음과 관련이 없습니다.
- 터치 패드 (
synaptics
실행 중이 아님) - 접근성
- 핫 코너
- 표준 마우스 제스처
해당 설정과 관련된 모든 설정이 확인되었으며 모두 꺼져 있습니다.
명령 줄 설정
lomoco
lomoco
Logitech USB 마우스의 특수 기능을 구성하는 데 도움 이되는 유틸리티는 해당되지 않습니다.
xinput
xinput
도움이 될 수 있다고 생각했습니다 .
$ xinput --list | grep pointer
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Ultrathin Touch Mouse id=13 [slave pointer (2)]
$ xinput --list-props 13
Device 'Ultrathin Touch Mouse':
Device Enabled (144): 1
Coordinate Transformation Matrix (146): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (266): 0
Device Accel Constant Deceleration (267): 1.000000
Device Accel Adaptive Deceleration (268): 1.000000
Device Accel Velocity Scaling (269): 10.000000
Device Product ID (261): 1133, 45069
Device Node (262): "/dev/input/event11"
Evdev Axis Inversion (270): 0, 0
Evdev Axes Swap (272): 0
Axis Labels (273): "Rel X" (154), "Rel Y" (155), "Rel Horiz Wheel" (746), "Rel Vert Wheel" (265)
Button Labels (274): "Button Left" (147), "Button Middle" (148), "Button Right" (149), "Button Wheel Up" (150), "Button Wheel Down" (151), "Button Horiz Wheel Left" (152), "Button Horiz Wheel Right" (153), "Button Side" (1032), "Button Extra" (1033), "Button Unknown" (264), "Button Unknown" (264), "Button Unknown" (264), "Button Unknown" (264)
Evdev Middle Button Emulation (275): 0
Evdev Middle Button Timeout (276): 50
Evdev Third Button Emulation (277): 0
Evdev Third Button Emulation Timeout (278): 1000
Evdev Third Button Emulation Button (279): 3
Evdev Third Button Emulation Threshold (280): 20
Evdev Wheel Emulation (281): 0
Evdev Wheel Emulation Axes (282): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (283): 10
Evdev Wheel Emulation Timeout (284): 200
Evdev Wheel Emulation Button (285): 4
Evdev Drag Lock Buttons (286): 0
13 개의 버튼 레이블에 유의하십시오.
$ xinput --get-button-map "Ultrathin Touch Mouse"
1 2 3 4 5 6 7 8 9 10 11 12 13
그것들을 끄는 것은 도움이되지 않았습니다 :
$ xinput --set-button-map "Ultrathin Touch Mouse" 1 2 3 4 5 6 7 0 0 0 0 0 0
예를 들어 마우스 가운데 버튼을 왼쪽 클릭으로 바꿀 수 있습니다 .
$ xinput --set-button-map "Ultrathin Touch Mouse" 1 1 3 4 5 6 7 0 0 0 0 0 0
xmodmap
와 비슷한 xinput
결과 :
$ xmodmap -e "pointer = 1 2 3 4 5 6 7 0 0 0 0 0 0"
inputkbd
아래의 elmicha가 제안한 이것은 커널 수준에서 작동하며 제스처로 인해 키보드 이벤트가 발생하지 않도록합니다. 다음 프로세스로 작동하지만 운이 좋지는 않습니다.
$ sudo input-kbd 4 > keymap # note the 4 is from /dev/input/event4
# edit the keymap to map any combination of keys to either 0 or 240 (KEY_UNKNOWN)
# e.g. change this:
# 0x700e0 = 29 # KEY_LEFTCTRL
# to this:
# 0x700e0 = 0 # KEY_LEFTCTRL
# or this:
# 0x700e0 = 240 # KEY_LEFTCTRL
$ sudo input-kbd -f keymap 4
$ sudo input-kbd 4 # should return the updated keymap
이 작업을 수행 한 후 키맵에는 아무런 변화가 없습니다.
xkbcomp
이것은 X
입력 해커 Peter Hutterer 가 제안한 것입니다. 여전히 운이 없다 :
$ xkbcomp -xkb $DISPLAY t630.xkb
# edit the keyboard description and replace the definition of any key to NoSymbol or VoidSymbol
# e.g. change this:
# key <LCTL> { [ Control_L ] };
# to this:
# key <LCTL> { [ NoSymbol ] };
# or this:
# key <LCTL> { [ VoidSymbol ] };
$ sudo xkbcomp -i 8 t630.xkb $DISPLAY # here the 8 is the id in xinput, names don't work
$ xkbcomp -xkb -i 8 $DISPLAY - # should return the updated keyboard description
이렇게 한 후에 키보드 설명에는 아무런 변화가 없습니다.
베드로는이 사실 때문에 가능성 것을 느꼈다 X
가지처럼 키보드 나 마우스와 같은 장치의 특성으로 혼란 이 버그 반대의 문제가있다. 이것은 다른 모든 예상 항목이 작동하지 않는 이유를 설명 할 수 있습니다. 그러나 그는 또한 evdev
같은 이유로 사용 해서는 안된다고 말했다 .
evdev
처음에는 작동하는 것 같았지만 작동하지 않습니다. 이 시도에 대한 일반적인 입력 드라이버를 활용하기 X
에 다음을 추가하여 버튼 매핑을 설정하는 /usr/share/X11/xorg.conf.d/10-evdev.conf
또는 /etc/X11/xorg.conf.d/10-evdev.conf
:
# custom for Logitech Ultrathin Touch mouse
Section "InputDevice"
Identifier "Logitech bluetooth Touch Mouse"
Driver "evdev"
Option "Name" "Ultrathin Touch Mouse"
Option "ButtonMapping" "1 2 3 4 5 6 7 0 0 0 0 0 0"
EndSection
Section "InputClass"
Identifier "Ultrathin Touch Mouse"
Option "ButtonMapping" "1 2 3 4 5 6 7 0 0 0 0 0 0"
EndSection
이것은 /var/log/Xorg.0.log
(을 사용하여 grep EE
) 오류없이 작동하는 것으로 보이고 xinput
버튼 매핑을 확인하지만 욕구 효과는 발생하지 않습니다.
이것은 되고 있지만, T631를위한 작업에 알려져 있습니다.
키보드 이벤트
문제는 이러한 제스처가 키보드 이벤트를 생성한다는 사실에 있습니다.
$ sudo evemu-record /dev/input/event4 | grep "E: "
# swipe edge right
E: 0.000000 0004 0004 458976 # EV_MSC / MSC_SCAN 458976
E: 0.000000 0001 001d 0001 # EV_KEY / KEY_LEFTCTRL 1
E: 0.000000 0004 0004 458979 # EV_MSC / MSC_SCAN 458979
E: 0.000000 0001 007d 0001 # EV_KEY / KEY_LEFTMETA 1
E: 0.000000 0004 0004 458795 # EV_MSC / MSC_SCAN 458795
E: 0.000000 0001 000f 0001 # EV_KEY / KEY_TAB 1
E: 0.000000 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 0.002980 0004 0004 458976 # EV_MSC / MSC_SCAN 458976
E: 0.002980 0001 001d 0000 # EV_KEY / KEY_LEFTCTRL 0
E: 0.002980 0004 0004 458979 # EV_MSC / MSC_SCAN 458979
E: 0.002980 0001 007d 0000 # EV_KEY / KEY_LEFTMETA 0
E: 0.002980 0004 0004 458795 # EV_MSC / MSC_SCAN 458795
E: 0.002980 0001 000f 0000 # EV_KEY / KEY_TAB 0
E: 0.002980 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
# swipe edge left
E: 3.306977 0004 0004 458978 # EV_MSC / MSC_SCAN 458978
E: 3.306977 0001 0038 0001 # EV_KEY / KEY_LEFTALT 1
E: 3.306977 0004 0004 458979 # EV_MSC / MSC_SCAN 458979
E: 3.306977 0001 007d 0001 # EV_KEY / KEY_LEFTMETA 1
E: 3.306977 0004 0004 458866 # EV_MSC / MSC_SCAN 458866
E: 3.306977 0001 00c1 0001 # EV_KEY / KEY_F23 1
E: 3.306977 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 3.310979 0004 0004 458978 # EV_MSC / MSC_SCAN 458978
E: 3.310979 0001 0038 0000 # EV_KEY / KEY_LEFTALT 0
E: 3.310979 0004 0004 458979 # EV_MSC / MSC_SCAN 458979
E: 3.310979 0001 007d 0000 # EV_KEY / KEY_LEFTMETA 0
E: 3.310979 0004 0004 458866 # EV_MSC / MSC_SCAN 458866
E: 3.310979 0001 00c1 0000 # EV_KEY / KEY_F23 0
E: 3.310979 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
# two finger double tap
E: 10.225976 0004 0004 458983 # EV_MSC / MSC_SCAN 458983
E: 10.225976 0001 007e 0001 # EV_KEY / KEY_RIGHTMETA 1
E: 10.225976 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 10.229986 0004 0004 458983 # EV_MSC / MSC_SCAN 458983
E: 10.229986 0001 007e 0000 # EV_KEY / KEY_RIGHTMETA 0
E: 10.229986 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
# two finger swipe left
E: 27.934977 0004 0004 589828 # EV_MSC / MSC_SCAN 589828
E: 27.934977 0001 0113 0001 # EV_KEY / BTN_SIDE 1
E: 27.934977 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 27.937983 0004 0004 589828 # EV_MSC / MSC_SCAN 589828
E: 27.937983 0001 0113 0000 # EV_KEY / BTN_SIDE 0
E: 27.937983 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
# two finger swipe right
E: 32.513990 0004 0004 589829 # EV_MSC / MSC_SCAN 589829
E: 32.513990 0001 0114 0001 # EV_KEY / BTN_EXTRA 1
E: 32.513990 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 32.516994 0004 0004 589829 # EV_MSC / MSC_SCAN 589829
E: 32.516994 0001 0114 0000 # EV_KEY / BTN_EXTRA 0
E: 32.516994 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
지금까지 한 키 맵을 우려, 이들은 다음을 참조하십시오
$ sudo input-kbd 4 | grep -e KEY_LEFTCTL -e KEY_LEFTMETA -e KEY_TAB -e KEY_LEFTALT -e KEY_F23 -e KEY_RIGHTMETA -e BTN_SIDE -e BTN_EXTRA
0x700e2 = 56 # KEY_LEFTALT
0x700e3 = 125 # KEY_LEFTMETA
0x700e7 = 126 # KEY_RIGHTMETA
0x7002b = 15 # KEY_TAB
0x70072 = 193 # KEY_F23
0x700e2 = 56 # KEY_LEFTALT
0x700e3 = 125 # KEY_LEFTMETA
0x700e7 = 126 # KEY_RIGHTMETA
0x90004 = 275 # BTN_SIDE
0x90005 = 276 # BTN_EXTRA
더블 탭으로 아무것도하지 않는 것 같습니다.
다른 참조
또한 핀 코드 데이터베이스 에 언급되지 않은 마우스 의 버그 에서 유사한 문제에 대한 참조를 지적하는 데 도움이 될 수 있습니다 gnome-bluetooth
. 말할 필요도없이이 주제에 대한 추가 논평은 해당 버그 보고서에서 공식적으로 벗어난 주제이지만이 참조는이 문제의 성격에 대한 관점을 추가하는 데 도움이 될 수 있습니다.
evemu-describe /dev/input/event4
FWIW 의 결과는 다음과 같습니다 .
블루투스 어댑터
FWIW 두 가지 다른 USB Bluetooth 어댑터를 사용했습니다.
$ lsusb | grep Bluetooth
Bus 007 Device 010: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
$ lsusb | grep Bluetooth
Bus 007 Device 011: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0
vmmouse_detect
유틸리티를 참조해야한다고 생각 합니다. xmodmap
그리고 xinput
심지어 xorg.conf
윈도우 VM에서 당신의 쿠분투에서 유용하지만 것입니다. 따라서 WinVM에서는 Windows 용 표준 Logitech 유틸리티를 사용하여 마우스를 구성 할 수 있어야합니다.