You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在最新版Ubuntu桌面配置热键触发的全触摸板单指滚动功能?

如何在最新版Ubuntu桌面配置热键触发的全触摸板单指滚动功能?

嘿,这个需求太懂了!十指打字的时候,不管是挪手去摸触摸板边缘,还是抬手用双指滚动,都特别打断节奏对吧?我来分享几个在最新Ubuntu(比如22.04/24.04)上能实现的方法,亲测好用:

方法一:用自定义脚本+全局快捷键(灵活度高)

这种方法适合喜欢折腾、想要精准控制的用户:

  1. 先装必要工具:
    打开终端,运行这条命令安装依赖:

    sudo apt install libinput-tools xdotool
    
  2. 写个监听脚本:
    在你的主目录下新建一个脚本文件(比如叫touchpad-scroll-toggle.sh),把下面的内容复制进去——记得替换里面的触摸板名称,你可以先运行libinput list-devices找到自己的触摸板(比如常见的"SynPS/2 Synaptics TouchPad"):

    #!/bin/bash
    # 替换成你的触摸板设备名称
    TOUCHPAD_NAME="SynPS/2 Synaptics TouchPad"
    TOUCHPAD=$(libinput list-devices | grep -B 1 -A 10 "$TOUCHPAD_NAME" | grep "Device:" | awk '{print $2}')
    
    if [ "$1" = "start" ]; then
        # 监听触摸板的移动事件,转换成滚动操作
        libinput debug-events --device "$TOUCHPAD" | while read -r line; do
            # 处理垂直滚动
            if echo "$line" | grep -q "ABS_Y"; then
                Y_VAL=$(echo "$line" | awk '{print $NF}')
                # 数值正负对应上下,可根据触摸板灵敏度调整阈值
                if [ $Y_VAL -gt 5 ]; then
                    xdotool click 4  # 向上滚动
                elif [ $Y_VAL -lt -5 ]; then
                    xdotool click 5  # 向下滚动
                fi
            # 处理水平滚动
            elif echo "$line" | grep -q "ABS_X"; then
                X_VAL=$(echo "$line" | awk '{print $NF}')
                if [ $X_VAL -gt 5 ]; then
                    xdotool click 6  # 向右滚动
                elif [ $X_VAL -lt -5 ]; then
                    xdotool click 7  # 向左滚动
                fi
            fi
        done
    elif [ "$1" = "stop" ]; then
        # 停止监听脚本
        pkill -f "libinput debug-events --device $TOUCHPAD"
    fi
    
  3. 给脚本加执行权限:

    chmod +x ~/touchpad-scroll-toggle.sh
    
  4. 设置全局快捷键:
    打开「系统设置」→「键盘」→「快捷键」→「自定义快捷键」,添加两个条目:

    • 名称:启用单指滚动,命令:~/touchpad-scroll-toggle.sh start,绑定你想用的热键(比如Ctrl+Alt+S
    • 名称:禁用单指滚动,命令:~/touchpad-scroll-toggle.sh stop,绑定对应的停止热键(比如Ctrl+Alt+X

    如果你觉得手动按停止键麻烦,可以用xbindkeys来监听按键的按下/释放事件,实现按住热键时自动启用,松开就恢复——需要额外安装xbindkeys,然后配置~/.xbindkeysrc文件,感兴趣的话可以自己摸索下~

方法二:用Touchegg(图形化工具,新手友好)

如果你不想写脚本,这个图形化工具能帮你快速搞定:

  1. 安装Touchegg和配套的图形界面:
    sudo apt install touchegg touche
    
  2. 配置手势:
    打开应用列表里的「Touche」,点击右上角的「+」添加手势:
    • 选择「按键组合触发」,设置你想要的热键(比如左Ctrl)
    • 手势类型选「单指拖动」,动作设置为「滚动」
    • 还可以调整滚动的方向、速度,按需设置就行
  3. 重启服务生效:
    终端运行这条命令重启Touchegg服务:
    systemctl restart touchegg
    

注意事项

  • 为了避免冲突,建议先在「系统设置」→「鼠标和触摸板」里关闭默认的双指滚动/边缘滚动功能
  • 如果测试时滚动不灵敏,可以调整脚本里的阈值(比如把5改成更大或更小的数值),或者在Touche里调整滚动速度
  • 部分品牌的触摸板(比如ThinkPad)可能需要额外启用libinput的支持,不过最新Ubuntu一般都默认支持了

备注:内容来源于stack exchange,提问作者grigoryvp

火山引擎 最新活动