让鼠标为左手使用,让触摸板为右手使用

让鼠标为左手使用,让触摸板为右手使用

我发现我可以在一个面板中配置鼠标和触摸板(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 13 2 1数字ID方式被使用。(替换3 2 11 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,它不仅可以单独跟踪设备配置,还可以作为服务运行,因此每次重新启动计算机时设置都会保留。详细答案在这里设置左手鼠标和右手触摸板

相关内容