外接鼠标上的主按钮恢复为默认设置

外接鼠标上的主按钮恢复为默认设置

我是左撇子,所以我将鼠标主按钮设置为右键。这在我的触摸板按钮上工作正常,以前在我的外接蓝牙鼠标上也工作正常。但现在突然间,每次我连接外接鼠标时,鼠标上的主按钮都是左键,而触摸板主按钮仍然是右键。我可以通过转到“设置”>“鼠标和触摸板”>“主按钮”,将其设置为“左”,然后设置为“右”,来解决这个问题。当然,我不想每次重新连接鼠标时都这样做。有什么建议吗?

答案1

我使用 KVM 切换器盒,因此自升级以来,每次切换时都会遇到同样的问题。

目前我有这个快速而粗糙的脚本。以登录用户身份在终端中运行它;

xinput list | grep Mouse | sed -nre 's/^.*\sid=([0-9]+)\s.*$/\1/p' | xargs -r -I '{}' echo xinput set-button-map {} 3 2 1

希望得到更好的东西但现在应该是有用的。

为了完整性,值得注意的是,您还可以使用鼠标设置 UI 工具,将主按钮更改为右手,然后再改回左手。

更新/编辑如下

我现在有一个更方便的解决方案,可以自动化每个 kvm 切换器,但它仍然是一个肮脏的解决方案,我在登录后运行一个脚本......

根据 的输出,为您的供应商 ID 和产品 ID 自定义以下内容lsusb。中间带有冒号的十六进制数字是鼠标的 {idvendor}:{idproduct}。此外,正如 flipjacob 所补充的,在 grep 语句中自定义“Mouse”字符串以匹配您从 获得的内容xinput

创建一个文件(以 root 身份),/etc/udev/rules.d/80-force-left-handed-mouse-on-plugin-event.rules内容如下

ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0047", ACTION=="bind", RUN+="/root/notify-mouse-plugged.sh"

创建将以 root 身份运行的脚本/root/notify-mouse-plugged.sh

#!/bin/bash

umask 0000
echo $ACTION >> /tmp/mouse-flag
date >> /tmp/mouse-flag

最后创建脚本以在登录用户的上下文中获取“通知”。我在终端登录后运行此脚本并让它在那里运行。

监听器脚本$HOME/listen-for-mouse-plugged.sh

#!/bin/bash

echo "" > /tmp/mouse-flag

tail -qfn 0 /tmp/mouse-flag 2>/dev/null | while read s
do
  #inotifywait -e create /tmp/mouse-flag
  echo reset mouse $s
  xinput list | grep Mouse | sed -nre 's/^.*\sid=([0-9]+)\s.*$/\1/p' | xargs -I '{}' xinput set-button-map {} 3 2 1

  #sleep 5
done

它为我触发了 3 次监听器循环,但这对于我希望很快扔掉的东西来说无关紧要。

答案2

我遇到了同样的问题,经过大量搜索后,这个对我有用:打开启动应用程序偏好设置并添加以下命令

xmodmap -e "pointer = 3 2 1"

它立即起作用并在重新启动后仍然存在,并且当蓝牙鼠标从不活动状态重新唤醒时仍然存在。

运行 20.10 - 希望这个错误能尽快修复。

答案3

有人在 Launchad 上提出了问题吗?

只有https://bugs.launchpad.net/ubuntu/+source/lxqt-config/+bug/1860918据我所知。

谢谢。

相关内容