![让鼠标为左手使用,让触摸板为右手使用](https://linux22.com/image/845386/%E8%AE%A9%E9%BC%A0%E6%A0%87%E4%B8%BA%E5%B7%A6%E6%89%8B%E4%BD%BF%E7%94%A8%EF%BC%8C%E8%AE%A9%E8%A7%A6%E6%91%B8%E6%9D%BF%E4%B8%BA%E5%8F%B3%E6%89%8B%E4%BD%BF%E7%94%A8.png)
我发现我可以在一个面板中配置鼠标和触摸板(Ubuntu 13.10,默认,Gnome)。这在某种程度上是可以的。也就是说,我希望触摸板的配置与鼠标和触摸板的配置不同...
当我连接 (USB) 鼠标时,我通常用左手使用它。因此,我将按钮切换为左手按钮。但是当我使用触摸板时,我对这种配置感到有点不知所措。因此,我想用右手按钮。
有没有办法实现以下功能:当我插入鼠标(分别在检测到鼠标时)时自动切换到左手,当我拔下鼠标时,自动切换到右手?
答案1
我理解您的沮丧,但借助工具可以很简单地解决这个问题xinput
。
首先插入 USB 鼠标,然后运行以下命令:
xinput list
查看id
鼠标的。上述命令的输出可能类似于:
xin输入|猫 ⎡ 虚拟核心指针id=2[主指针(3)] ⎜ ↳ 虚拟核心 XTEST 指针 id=4 [从属指针 (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=14 [从属指针 (2)] ⎜ ↳ USB 鼠标 id=11 [从属指针 (2)] ⎣ 虚拟核心键盘id=3[主键盘(2)] ...
在上面的例子中,USB 鼠标有id=11
。我们将在以下命令中使用它id
,该命令将仅将 USB 鼠标的按钮交换为左手按钮(而不是 tauchpad 的按钮):
xinput set-button-map 11 3 2 1
一般来说:
xinput 设置按钮映射ID3 2 1
要恢复更改,请使用:
xinput 设置按钮映射ID1 2 3
要永久更改,请在以下位置添加以下命令启动应用程序(搜索短跑为了启动应用程序):
sh -c "xinput 设置按钮映射ID3 2 1”
更新:
自ID重启后可能会改变,但 USBmouse 的名称不会改变,您也可以 grep 鼠标的名称并应用它。要跳过选择名称的详细信息,最终解决方案如下:
对于 `/usr/bin/xinput 列表 | /bin/grep 中的 id'USB 鼠标' | /bin/grep -o [0-9][0-9]`; 执行 xinput set-button-map $id 3 2 1; 完成;
将其装入上述启动应用程序你最终会得到:
sh -c “在 `/usr/bin/xinput 列表 | /bin/grep 中查找 id”USB 鼠标' | /bin/grep -o [0-9][0-9]`; 执行 xinput set-button-map $id 3 2 1; 完成;”
答案2
还有一种比Radu Rădeanu 的回答.xinput
接受输入设备的名称作为其数字 ID 的替代。由于您的 USB 鼠标可能被通用处理,因此其名称很可能是USB Mouse
。因此您甚至可能不需要运行xinput list
。
因此xinput set-button-map
,用这个名称代替数字 ID 的 ,将变成:
xinput set-button-map "USB Mouse" 3 2 1
这可以代替并实现相同的效果,使它成为左手鼠标,就像xinput set-button-map id 3 2 1
3 2 1
数字ID方式被使用。(替换3 2 1
为1 2 3
仍可将其切换为右手鼠标。)
这样做的好处是,只要它最初能工作,它就会在重启后继续工作,而无需使用长而复杂的命令来获取设备的 ID 号。
答案3
我发现另一个答案中的启动命令仅在 id 为两位数时才有效。以下是我的修改,应该适用于一位数和两位数:
在启动应用程序
bash -c "for id in `/usr/bin/xinput list | /bin/grep 'USB Mouse' | /bin/grep -o id=[0-9][0-9]*`; do xinput set-button-map ${id:3} 3 2 1; done;"
答案4
这个问题充满了陈旧的答案。截至 2023 年,最好的方法是使用 input-remapper,它不仅可以单独跟踪设备配置,还可以作为服务运行,因此每次重新启动计算机时设置都会保留。详细答案在这里设置左手鼠标和右手触摸板