场景是,将我的 Wacom Bamboo 绑定到第二台显示器,将鼠标绑定到第一台显示器。Wacom Bamboo 的装订与数位板的设置完美搭配。但是如何将鼠标绑定到另一台显示器?
我目前的步骤:
将 Wacom Bamboo 绑定到我的第二台显示器
配置两个独立的指针
使用插入的 Wacom Bamboo 和我的鼠标,
xinput --list
显示~ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Logitech G9x Laser Mouse id=8 [slave pointer (2)] ⎜ ↳ Logitech G9x Laser Mouse id=9 [slave pointer (2)] ⎜ ↳ Razer Razer BlackWidow Ultimate id=13 [slave pointer (2)] ⎜ ↳ Razer Razer BlackWidow Ultimate id=14 [slave pointer (2)] ⎜ ↳ Wacom Bamboo Pen stylus id=10 [slave pointer (2)] ⎜ ↳ Wacom Bamboo Pen eraser id=11 [slave pointer (2)] ⎜ ↳ Wacom Bamboo Pen cursor id=15 [slave pointer (2)] ⎜ ↳ Wacom Bamboo Pad pad id=16 [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)] ↳ Razer Razer BlackWidow Ultimate id=12 [slave keyboard (3)]
创建一个新设备
xinput create-master Bamboo
~ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Logitech G9x Laser Mouse id=8 [slave pointer (2)] ⎜ ↳ Logitech G9x Laser Mouse id=9 [slave pointer (2)] ⎜ ↳ Razer Razer BlackWidow Ultimate id=13 [slave pointer (2)] ⎜ ↳ Razer Razer BlackWidow Ultimate id=14 [slave pointer (2)] ⎜ ↳ Wacom Bamboo Pen stylus id=10 [slave pointer (2)] ⎜ ↳ Wacom Bamboo Pen eraser id=11 [slave pointer (2)] ⎜ ↳ Wacom Bamboo Pen cursor id=15 [slave pointer (2)] ⎜ ↳ Wacom Bamboo Pad pad id=16 [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)] ↳ Razer Razer BlackWidow Ultimate id=12 [slave keyboard (3)] ⎡ Bamboo pointer id=17 [master pointer (18)] ⎜ ↳ Bamboo XTEST pointer id=19 [slave pointer (17)] ⎣ Bamboo keyboard id=18 [master keyboard (17)] ↳ Bamboo XTEST keyboard id=20 [slave keyboard (18)]
重新附加 Wacom Bamboo id
xinput reattach 10 "Bamboo pointer" xinput reattach 11 "Bamboo pointer" xinput reattach 15 "Bamboo pointer" xinput reattach 16 "Bamboo pointer"
~ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Logitech G9x Laser Mouse id=8 [slave pointer (2)] ⎜ ↳ Logitech G9x Laser Mouse id=9 [slave pointer (2)] ⎜ ↳ Razer Razer BlackWidow Ultimate id=13 [slave pointer (2)] ⎜ ↳ Razer Razer BlackWidow Ultimate id=14 [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)] ↳ Razer Razer BlackWidow Ultimate id=12 [slave keyboard (3)] ⎡ Bamboo pointer id=17 [master pointer (18)] ⎜ ↳ Wacom Bamboo Pen stylus id=10 [slave pointer (17)] ⎜ ↳ Wacom Bamboo Pen eraser id=11 [slave pointer (17)] ⎜ ↳ Wacom Bamboo Pen cursor id=15 [slave pointer (17)] ⎜ ↳ Wacom Bamboo Pad pad id=16 [slave pointer (17)] ⎜ ↳ Bamboo XTEST pointer id=19 [slave pointer (17)] ⎣ Bamboo keyboard id=18 [master keyboard (17)] ↳ Bamboo XTEST keyboard id=20 [slave keyboard (18)]
关于答案
下面的答案可能需要一些额外的编辑。要创建两个单独的鼠标,我按照您的问题中提到的步骤进行操作。它确实有效,但我的“普通”鼠标之后出现了一些问题。在某些情况下,左键单击不起作用。
由于您没有在问题中提及副作用,我认为这与我连接的两只鼠标的硬件特定冲突功能有关。
好消息是,
xdotool
显然只“看到”了“主”鼠标的坐标,这使得将光标锁定在其中一个屏幕上成为可能。两个脚本
下面两个脚本:
1.在双显示器设置中将光标锁定在一个屏幕上的脚本
使用
该脚本使用
xdotool
:将脚本复制到一个空文件中,另存为
lock_cursor.py
使用屏幕 (
left
或right
) 作为参数运行它,方法是:或者
2. 自动设置两个独立鼠标的脚本
这可能是一个棘手的问题,因为我没有 Wacom Bamboo,而且我无法在现场情况下进行“最终测试”。但是,使用我的普通第二只鼠标,它工作得很好(无论是使用不同的 ID 字符串)。
如果它在您的情况下也可以正常工作,则可以合并两个脚本以在一次调用中运行;以下脚本仅在尚未执行双鼠标设置时才会执行。
使用
只需将脚本复制到一个空文件中,将其另存为
setup_bamboo.py
,然后通过以下命令运行它:笔记
我找不到另一种将鼠标锁定在一个屏幕上的方法,只能使用
xdotool
. 因此,(第一个)脚本在xdotool
. 由于它以周期性循环运行,因此如果鼠标位置超出屏幕的限制,则会更正鼠标位置。结果是,尽管它实际上工作得很好,但您仍然会注意到“硬”栅栏的外观差异。我花了一些时间试图减少效果,每当鼠标接近屏幕的极限时“聪明地”增加循环速度,甚至让它取决于鼠标移动的方向。然而,最后我得出的结论是,所获得的改进是最小的,应该优先考虑编码的简单性。