wxl*_*wxl 9 mouse hardware bluetooth kubuntu logitech
我刚买了罗技 T630。这是一款蓝牙鼠标,通过手势支持多个键盘事件(PDF)。这些手势很好很花哨,但我对它们没什么用。我很难摆脱它们。
我想按照优先级递减的顺序执行以下操作:
我不想:
有关更多信息,请继续阅读……
十三个可能的鼠标事件是:
前七个按操作系统映射它们的顺序排列。
只有前三个是机械的——所有其他的都使用触摸表面:

在Kubuntu Trusty 中设置是轻而易举的,但它几乎不支持配置这些其他手势。
这些手势与以下内容无关:
synaptics未运行)与这些相关的所有设置都已检查,它们都已关闭。
lomocolomoco帮助配置 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
Run Code Online (Sandbox Code Playgroud)
请注意 13 个按钮标签:
$ xinput --get-button-map "Ultrathin Touch Mouse"
1 2 3 4 5 6 7 8 9 10 11 12 13
Run Code Online (Sandbox Code Playgroud)
关闭它们没有帮助:
$ xinput --set-button-map "Ultrathin Touch Mouse" 1 2 3 4 5 6 7 0 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
即使,例如,它可以将鼠标中键变成左键单击:
$ xinput --set-button-map "Ultrathin Touch Mouse" 1 1 3 4 5 6 7 0 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
xmodmap与 类似xinput,结果相同:
$ xmodmap -e "pointer = 1 2 3 4 5 6 7 0 0 0 0 0 0"
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
执行此操作后,键盘映射没有显示任何变化。
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
Run Code Online (Sandbox Code Playgroud)
执行此操作后,键盘描述显示没有变化。
彼得认为这可能是由于对X设备作为键盘或鼠标的性质感到困惑,有点像这个具有相反问题的错误。这可以解释为什么所有其他预期的项目都不起作用。但是,他也表示,evdev出于同样的原因,使用不应该起作用。
evdev乍一看似乎行得通,但也行不通。这试图X通过将以下内容附加到/usr/share/X11/xorg.conf.d/10-evdev.confor来利用通用输入驱动程序来设置按钮映射/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
Run Code Online (Sandbox Code Playgroud)
这似乎在/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) ----------
Run Code Online (Sandbox Code Playgroud)
就键盘映射而言,这些是指:
$ 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
Run Code Online (Sandbox Code Playgroud)
双击似乎没有任何作用。
指出上述鼠标不在pincode 数据库中的错误中对类似问题的引用也可能有所帮助gnome-bluetooth。毋庸置疑,关于该主题的进一步评论是该错误报告的正式离题,但参考资料可能有助于对该问题的性质增加一些看法。
这是evemu-describe /dev/input/event4FWIW的输出。
FWIW 我使用了两种不同的 USB 蓝牙适配器:
$ 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
Run Code Online (Sandbox Code Playgroud)
小智 2
要禁用手势,您可以使用evdev驱动程序更改按钮映射,以便最后 6 个“按钮”全部禁用,如下所示:
附加以下内容/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
Run Code Online (Sandbox Code Playgroud)重新启动X服务器sudo service lightdm restart
xinput --get-button-map "Ultrathin Touch Mouse"InputDevice Identifier如果需要,您可以更改 的值,但重要的是保留InputDevice Name和 的值InputClass Identifier作为“Ultrathin Touch Mouse”,因为这是xinput识别它的方式。
使用 Mac 版本 T631 进行测试。
如果您想了解有关 的更多信息evdev,Joe Shaw 的这篇博客文章特别深入地介绍了它如何融入整个输入堆栈。
您可以尝试使用包input-kbd中的input-utils:
$ apropos input-kbd
input-kbd (8) - print or modify keyboard maps for input devices
Run Code Online (Sandbox Code Playgroud)
使用输入设备索引(例如 4 /dev/input/event4,可以通过 which 找到lsinput,它必然与 中使用的 id 不同xinput),您可以通过向其提供带有开关的文件来重新配置键盘映射-f,例如
$ sudo input-kbd -f some-file 4
Run Code Online (Sandbox Code Playgroud)
其中some-file采取 的形式scancode = keycode|keyname,其中以下内容是等效的:
0x0001 = KEY_F9
0x0001 = 67
Run Code Online (Sandbox Code Playgroud)
您可以使用 找到当前地图sudo input-kbd 4。由于您需要从 中打开文件/dev,因此您确实需要使用超级用户来读取此文件。
另请注意,尽管它的名称显然具有误导性,但它也适用于小鼠。