在Linux系统中调整鼠标左右键功能,其实比想象中更为便捷。尤其适合左撇子用户或需要临时切换操作习惯的场景,一个小脚本即可快速解决。下面介绍两种实用方法:一种偏向自动化脚本,另一种偏向命令行临时切换。
一键切换脚本(基于 xinput 的鼠标左右键切换)
该脚本的核心思路是遍历所有识别为“pointer”的输入设备,并通过 xinput --set-button-map 命令修改按键映射。脚本中使用变量 lr 记录当前左右键状态,每次运行都会自动判断并反转按键。更巧妙的是,脚本末尾通过 sed 命令修改自身第一行的 lr 变量值,实现状态持久化——下次运行时,脚本能自动识别需要切换的方向。
lr="l" for id in `xinput list | grep "pointer" | sed -r 's/.*id=([0-9]+).*/\1/'`;do if [[ $lr == "r" ]] then xinput --set-button-map $id 1 2 3 2>/dev/null else xinput --set-button-map $id 3 2 1 2>/dev/null fi done filepath=$0 if [[ $lr == "r" ]] then echo "now is right hand." sed -i '1s/lr="r"/lr="l"/' $filepath else echo "now is left hand." sed -i '1s/lr="l"/lr="r"/' $filepath fi
将上述脚本保存为可执行文件后,每次双击或通过终端运行,左右键状态便会自动翻转,同时终端会显示当前处于“左手模式”还是“右手模式”。
Ubuntu下使用xmodmap快速切换鼠标左右键
如果只是临时切换,或者不想编写脚本,xmodmap 命令是最直接的选择。无需赘述,直接进入反手模式(左撇子习惯:将右键设为主键):
xmodmap -e 'pointer = 3 2 1'
此时移动鼠标测试,左右键功能已经互换。恢复原状同样简单:
xmodmap -e 'pointer = 1 2 3'
每次手动输入这么长的命令略显繁琐。一个便捷方法是将其设置为别名,添加到 .bashrc 文件中:
# filename .bashrc
alias mr="xmodmap -e 'pointer = 3 2 1'"
alias ml="xmodmap -e 'pointer = 1 2 3'"
此后在终端输入 mr 即可切换为反手模式,输入 ml 则恢复默认。无论是编写脚本还是使用别名,本质上都是修改X输入设备的按钮映射,选择最适合自己的方式即可。
