在Ubuntu 20.04 LTS中按设备单独调整触摸板滚动方向
在Ubuntu 20.04 LTS中按设备单独调整触摸板滚动方向
嗨,完全懂你这种纠结——系统把无线键盘上的触摸板误识别成鼠标,导致全局设置没法精准控制每个设备的滚动方向。别担心,咱们用xinput工具就能实现按设备单独配置,一步步来:
第一步:识别你的所有输入设备
先打开终端,输入这条命令列出所有输入设备:
xinput list
你会看到一堆设备条目,重点找三个触摸板:笔记本内置的(通常叫类似SynPS/2 Synaptics TouchPad)、两个无线键盘上的(可能名字带Touchpad或被标成Mouse,比如Wireless Keyboard Mouse)。把每个触摸板的名称或者设备ID(比如括号里的id=12这种)记下来。
第二步:查看目标设备的滚动属性
针对每个要设置的触摸板,输入命令查看它的滚动相关属性:
xinput list-props "你的设备名称" # 或者用ID:xinput list-props 12
找带Natural Scrolling Enabled的属性(不同设备前缀可能不同,比如libinput开头的),比如你可能会看到libinput Natural Scrolling Enabled (286): 0,这里的286是属性编号,0代表当前没开反向滚动。
第三步:单独开启该设备的反向滚动
对每个需要调整的触摸板,执行命令开启自然滚动(也就是反向滚动):
# 用设备名称的例子 xinput set-prop "SynPS/2 Synaptics TouchPad" "Natural Scrolling Enabled" 1 xinput set-prop "Wireless Keyboard Touchpad 1" "libinput Natural Scrolling Enabled" 1 xinput set-prop "Wireless Keyboard Touchpad 2" "libinput Natural Scrolling Enabled" 1 # 或者用属性编号的例子(更稳定,避免名称变化) xinput set-prop 12 286 1
这里的1代表开启反向滚动,改成0就是恢复默认方向。执行完立刻测试,对应的触摸板滚动方向变了、物理鼠标不受影响就对了。
第四步:设置开机自动生效
因为xinput的设置重启后会重置,咱们得把这些命令做成开机自启动脚本:
- 创建脚本文件:
touch ~/.config/autostart/set_scroll_direction.sh
- 打开脚本编辑:
nano ~/.config/autostart/set_scroll_direction.sh
- 把你刚才测试有效的命令粘贴进去,比如:
#!/bin/bash # 配置笔记本内置触摸板 xinput set-prop "SynPS/2 Synaptics TouchPad" "Natural Scrolling Enabled" 1 # 配置第一个无线键盘触摸板 xinput set-prop "Wireless Keyboard Touchpad 1" "libinput Natural Scrolling Enabled" 1 # 配置第二个无线键盘触摸板 xinput set-prop "Wireless Keyboard Touchpad 2" "libinput Natural Scrolling Enabled" 1
- 保存退出(按
Ctrl+O,回车,再Ctrl+X),然后给脚本加执行权限:
chmod +x ~/.config/autostart/set_scroll_direction.sh
- 创建自启动的桌面配置文件:
nano ~/.config/autostart/set_scroll_direction.desktop
- 粘贴以下内容(记得把
/home/你的用户名替换成你实际的用户目录):
[Desktop Entry] Type=Application Exec=/home/你的用户名/.config/autostart/set_scroll_direction.sh Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name=Set Scroll Direction Comment=Set per-device scroll direction on startup
- 保存退出后,重启系统测试一下,所有触摸板的反向滚动应该就自动生效了,物理鼠标还是保持原来的方向。
如果遇到设备ID偶尔变化的情况,建议用设备的完整名称来指定,或者把脚本里的固定ID换成xinput list --id-only "设备名称"的输出,这样更稳定。
备注:内容来源于stack exchange,提问作者jake
相关产品推荐
相关产品推荐

