我在 Gentoo 上的鼠标有问题。普通按钮(左/右/滚轮和上一个/下一个)可以工作,但 x 无法识别其他按钮。我尝试了一下xev
,使用它们没有任何作用。
我正在运行 Gnome Shell 3.6。
我尝试配置 /etc/X11/xorg.conf.d/10-evdev.conf 来添加设备:
Section "InputDevice"
Identifier "GamingMouse"
Driver "evdev"
Option "Name" "SteelSeries World of Warcraft: Cataclysm MMO Gaming Mouse"
Option "Protocol" "ExplorerPS/2"
Option "Buttons" "16"
Option "ZAxisMapping" "4 5"
Option "ButtonMapping" "1 2 3 6 7 8 9 10 11 12 13 14 15 16"
EndSection
但这并没有改变什么。我还尝试在输入类中添加这些选项:
Section "InputClass"
Identifier "evdev pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "Protocol" "ExplorerPS/2"
Option "Buttons" "16"
Option "ZAxisMapping" "4 5"
Option "ButtonMapping" "1 2 3 6 7 8 9 10 11 12 13 14 15 16"
EndSection
但同样,它没有奏效。
有人有办法让这些按钮起作用吗?
编辑#1
一些更多信息与xinput
.我曾经xinput
收集过一些更多信息:
$ xinput -list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SteelSeries World of Warcraft: Cataclysm MMO Gaming Mouse id=8 [slave pointer (2)]
⎜ ↳ SteelSeries World of Warcraft: Cataclysm MMO Gaming Mouse id=10 [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)]
↳ Power Button id=7 [slave keyboard (3)]
↳ SteelSeries World of Warcraft: Cataclysm MMO Gaming Mouse id=9 [slave keyboard (3)]
↳ G15 Gaming Keyboard id=11 [slave keyboard (3)]
↳ G15 Gaming Keyboard id=12 [slave keyboard (3)]
↳ G15 GamePanel LCD id=13 [slave keyboard (3)]
↳ Logitech Logitech G930 Headset id=14 [slave keyboard (3)]
获取按钮映射
$ xinput get-button-map 8
1 2 3 4 5 6 7 8 9 10 11 12 13
$ xinput get-button-map 10
1 2 3 4 5 6 7
$ xinput get-button-map 4
1 2 3 4 5 6 7 8 9 10
$ xinput get-button-map 9
device has no buttons
列表道具
$ xinput list-props 8
Device 'SteelSeries World of Warcraft: Cataclysm MMO Gaming Mouse':
Device Enabled (139): 1
Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (263): 0
Device Accel Constant Deceleration (264): 1.000000
Device Accel Adaptive Deceleration (265): 1.000000
Device Accel Velocity Scaling (266): 10.000000
Device Product ID (256): 4152, 4896
Device Node (257): "/dev/input/event2"
Evdev Axis Inversion (267): 0, 0
Evdev Axes Swap (269): 0
Axis Labels (270): "Rel X" (149), "Rel Y" (150), "Rel Vert Wheel" (262)
Button Labels (271): "Button Left" (142), "Button Middle" (143), "Button Right" (144), "Button Wheel Up" (145), "Button Wheel Down" (146), "Button Horiz Wheel Left" (147), "Button Horiz Wheel Right" (148), "Button Side" (260), "Button Extra" (261), "Button Unknown" (259), "Button Unknown" (259), "Button Unknown" (259), "Button Unknown" (259)
Evdev Middle Button Emulation (272): 0
Evdev Middle Button Timeout (273): 50
Evdev Third Button Emulation (274): 0
Evdev Third Button Emulation Timeout (275): 1000
Evdev Third Button Emulation Button (276): 3
Evdev Third Button Emulation Threshold (277): 20
Evdev Wheel Emulation (278): 0
Evdev Wheel Emulation Axes (279): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (280): 10
Evdev Wheel Emulation Timeout (281): 200
Evdev Wheel Emulation Button (282): 4
Evdev Drag Lock Buttons (283): 0
$ xinput list-props 10
Device 'SteelSeries World of Warcraft: Cataclysm MMO Gaming Mouse':
Device Enabled (139): 1
Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (263): 0
Device Accel Constant Deceleration (264): 1.000000
Device Accel Adaptive Deceleration (265): 1.000000
Device Accel Velocity Scaling (266): 10.000000
Device Product ID (256): 4152, 4896
Device Node (257): "/dev/input/event4"
Evdev Axis Inversion (267): 0, 0
Evdev Axes Swap (269): 0
Axis Labels (270): "Rel X" (149), "Rel Y" (150), "Rel Horiz Wheel" (285)
Button Labels (271): "Button 0" (284), "Button Unknown" (259), "Button Unknown" (259), "Button Wheel Up" (145), "Button Wheel Down" (146), "Button Horiz Wheel Left" (147), "Button Horiz Wheel Right" (148)
Evdev Middle Button Emulation (272): 0
Evdev Middle Button Timeout (273): 50
Evdev Third Button Emulation (274): 0
Evdev Third Button Emulation Timeout (275): 1000
Evdev Third Button Emulation Button (276): 3
Evdev Third Button Emulation Threshold (277): 20
Evdev Wheel Emulation (278): 0
Evdev Wheel Emulation Axes (279): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (280): 10
Evdev Wheel Emulation Timeout (281): 200
Evdev Wheel Emulation Button (282): 4
Evdev Drag Lock Buttons (283): 0
看起来 id 8 中可以识别超过 7 个按钮,这似乎是一个好兆头,不是吗?那么我怎样才能只使用这个并过滤另一个呢?
答案1
问题不在于 X 级别 - 即使 USB 鼠标规格也只允许左右滚轮。
Catclysm 游戏鼠标具有用于鼠标和键盘的 USB 接口 - 您基本上需要告诉鼠标您希望哪些按钮与哪些击键相匹配。
唯一官方支持的方法是运行 Windows 虚拟机,使用 SteelSeries 官方支持的驱动程序上传并将您的配置加载到鼠标的板载内存中。
在花了一些时间对他们使用的协议进行逆向工程后,我编写了自己的驱动程序。它没有涵盖很多功能,但我想玩电脑游戏并管理我的窗口系统 - 它可以正常工作。看https://github.com/owenRiddy/cataclysm-mouse
答案2
我不是 100% 确定,但我在这个上找到了这个SteelSeries 网站的常见问题解答之一:
问:
在哪里可以获得适用于 Linux 平台的《魔兽世界》MMO 驱动程序。
A:
不幸的是,我们没有任何计划很快为 WoW 鼠标开发专有的 Linux 驱动程序,但我们很乐意协助任何社区驱动的努力,为 Linux 开发开源解决方案。
我不确定这是否是您的硬件,但它属于常见问题解答中的这一类别:“类别 » SteelSeries WoW:大灾变 MMO 游戏鼠标”。
调试鼠标
您可以使用以下工具来更深入地研究该鼠标,而不是仅使用xev
.我正在使用笔记本电脑的指点设备,但您可以将此字符串替换为鼠标“SteelSeries World of Warcraft MMO Gaming Mouse”:
xinput-列表
$ xinput -list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=13 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=9 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=10 [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=11 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=14 [slave keyboard (3)]
xinput 获取按钮映射
$ xinput get-button-map ""SynPS/2 Synaptics TouchPad"
1 2 3 4 5 6 7 8 9 10 11 12
xinput 列表属性
$ xinput list-props "SynPS/2 Synaptics TouchPad"
Device 'SynPS/2 Synaptics TouchPad':
Device Enabled (124): 1
Coordinate Transformation Matrix (126): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (249): 1
Device Accel Constant Deceleration (250): 2.500000
Device Accel Adaptive Deceleration (251): 1.000000
Device Accel Velocity Scaling (252): 12.500000
Synaptics Edges (268): 1781, 5579, 1646, 4582
Synaptics Finger (269): 24, 29, 255
Synaptics Tap Time (270): 180
Synaptics Tap Move (271): 245
Synaptics Tap Durations (272): 180, 180, 100
Synaptics Tap FastTap (273): 0
Synaptics Middle Button Timeout (274): 75
Synaptics Two-Finger Pressure (275): 29
Synaptics Two-Finger Width (276): 7
Synaptics Scrolling Distance (277): 111, 111
Synaptics Edge Scrolling (278): 1, 1, 0
Synaptics Two-Finger Scrolling (279): 0, 0
Synaptics Move Speed (280): 1.000000, 1.750000, 0.035842, 40.000000
Synaptics Edge Motion Pressure (281): 29, 159
Synaptics Edge Motion Speed (282): 1, 446
Synaptics Edge Motion Always (283): 0
Synaptics Off (284): 0
Synaptics Locked Drags (285): 0
Synaptics Locked Drags Timeout (286): 5000
Synaptics Tap Action (287): 0, 0, 0, 0, 1, 3, 2
Synaptics Click Action (288): 1, 1, 1
Synaptics Circular Scrolling (289): 0
Synaptics Circular Scrolling Distance (290): 0.100000
Synaptics Circular Scrolling Trigger (291): 0
Synaptics Circular Pad (292): 0
Synaptics Palm Detection (293): 0
Synaptics Palm Dimensions (294): 10, 199
Synaptics Coasting Speed (295): 20.000000, 50.000000
Synaptics Pressure Motion (296): 29, 159
Synaptics Pressure Motion Factor (297): 1.000000, 1.000000
Synaptics Grab Event Device (298): 1
Synaptics Gestures (299): 1
Synaptics Capabilities (300): 1, 0, 1, 0, 0, 1, 1
Synaptics Pad Resolution (301): 105, 75
Synaptics Area (302): 0, 0, 0, 0
xinput 查询状态
$ xinput query-state "SynPS/2 Synaptics TouchPad"
2 classes :
ButtonClass
button[1]=up
button[2]=up
button[3]=up
button[4]=up
button[5]=up
button[6]=up
button[7]=up
button[8]=up
button[9]=up
button[10]=up
button[11]=up
button[12]=up
ValuatorClass Mode=Relative Proximity=In
valuator[0]=2267
valuator[1]=4290
怎么办?
我确实找到了这个 Ubuntu 社区文档,标题为:许多按钮鼠标如何可能还有一些额外的事情需要尝试,但我认为如果您找不到支持它们的兼容驱动程序,那么您就无法让其余按钮正常工作。我在这里可能是错的(我希望我是为了你的缘故),但我不认为你能够在 Linux 下访问这些按钮。