使用左手鼠标的用户往往习惯交换鼠标的左右键功能。然而,系统设置并不能针对某个具体的鼠标单独设置按键的功能,交换左右键会对所有的鼠标都生效。对于台式机而言,绝大部分情况下一台电脑只会接一个鼠标,因此这个限制并不会带来什么不方便。但对于笔记本电脑而言,本身已经带有一个内置鼠标,如果再插上一个
USB 外置鼠标,就同时有两个鼠标可以工作了。
滇狐使用外接鼠标的时候,一般习惯左手习惯,会交换鼠标的左右键功能。但在使用笔记本内置的“小红点”的时候,更习惯使用右手,因此不希望交换鼠标左右键的功能。通过系统设置我们是无法只针对某个鼠标交换左右键的,但通过命令行,我们可以实现这一点。
首先,我们需要使用一个命令行工具
xinput
,在 Debian 下可以通过
apt install xinput
安装。
然后,我们运行这个命令,列出系统里的所有输入设备。正常情况下,这里会包含已连接的所有鼠标和键盘:
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)]
⎜ ↳ TPPS/2 Elan TrackPoint id=12 [slave pointer (2)]
⎜ ↳ Logitech T400 id=14 [slave pointer (2)]
⎜ ↳ Logitech USB Optical Mouse id=15 [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)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Integrated Camera: Integrated C id=9 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=13 [slave keyboard (3)]
↳ Logitech T400 id=16 [slave keyboard (3)]
如果想要交换某个鼠标的左右键,只要在上表中找到鼠标对应的
ID,然后运行
xinput set-button-map <id> 3 2 1
就可以了。譬如,如果我们想交换 Logitech USB
鼠标的左右键,我们可以运行:
$ xinput set-button-map 15 3 2 1
为了方便地交换外接鼠标的左右键,滇狐写了以下脚本,自动查找所有名称中包含“USB”的设备,并交换左右键: