当前位置: 首页 > article >正文

archlinux 触摸板手势配置

文章目录

    • @[toc]
    • libinput-gestures
      • 安装 libinput-gestures
      • 加入 input 组
      • 创建配置文件
        • 可用手势
      • 启动 libinput-gestures
      • 停止 libinput-gestures
      • 自启动 libinput-gestures

  • Touchpad Synaptics
  • synaptics.4

/etc/X11/xorg.conf.d/ 目录下会有默认的触摸板配置文件,如果用的 libinput,配置文件是 40-libinput.conf

下面是一些常用的选项

Section "InputClass"
    Identifier "touchpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
        Option "TapButton1" "1"
        Option "TapButton2" "3"
        Option "TapButton3" "2"
        Option "VertEdgeScroll" "on"
        Option "VertTwoFingerScroll" "on"
        Option "HorizEdgeScroll" "on"
        Option "HorizTwoFingerScroll" "on"
        Option "CircularScrolling" "on"
        Option "CircScrollTrigger" "2"
        Option "EmulateTwoFingerMinZ" "40"
        Option "EmulateTwoFingerMinW" "8"
        Option "CoastingSpeed" "0"
        Option "FingerLow" "30"
        Option "FingerHigh" "50"
        Option "MaxTapTime" "125"
        ...
EndSection
  • TapButton1
    • (整数)配置在非角点单指点击时报告哪个鼠标按钮。
  • TapButton2
    • (整数)配置在非角点双指点击时报告哪个鼠标按钮
  • TapButton3
    • (整数)配置在非角点三指点击时报告哪个鼠标按钮
  • RBCornerButton
    • (整数)配置在右下角报告哪个鼠标按钮,单指点击(使用 Option “RBCornerButton” “3” 实现右下角鼠标右键的 Ubuntu 样式点击行为
  • RTCornerButton
    • (整数),但对于右上角,请用一根手指点击。
  • VertEdgeScroll
    • (布尔值)允许在触摸板的右边缘拖动时进行垂直滚动。
  • HorizEdgeScroll
    • (布尔值)在触摸板的底部边缘拖动时启用水平滚动。
  • VertTwoFingerScroll
    • (布尔值)启用使用两根手指进行垂直滚动。
  • HorizTwoFingerScroll
    • (布尔值)启用使用两个手指进行水平滚动。
  • EmulateTwoFingerMinZ/W
    • (整数)播放此值以设置双指滚动的精度。
  • FingerLow
    • (整数)当手指压力低于此值时,驱动程序会将其计为释放。
  • FingerHigh
    • (整数)当手指压力超过此值时,驱动程序会将其计为一次触摸。
  • MaxTapTime
    • 确定拍子的 “清脆” 程度才能被视为真正的拍子。减小该值以需要更清脆的点击。正确调整此参数可以减少手悬停或轻轻触摸 pad 时的误报。
  • VertScrollDelta and HorizScrollDelta
    • (integer) 配置滚动速度,这有点违反直觉,因为较高的值会产生更高的精度,因此滚动速度会变慢。负值会导致自然滚动,就像在 macOS 中一样。
  • 如果您的触摸板过于敏感,请为 FingerLowFingerHigh 使用较高的值,反之亦然。请记住 FingerLow 应小于 FingerHigh

libinput-gestures

虽然 libinput 驱动程序已经包含用于处理高级多点触控事件(如滑动和捏合手势)的逻辑,但桌面环境或窗口管理器可能尚未为所有这些事件实施操作

于符合 EWMH (另见 wm-spec) 的窗口管理器,可以同时使用 libinput-gestures 工具。程序从触摸板读取 libinput 手势(通过 libinput debug-events),并根据配置文件将它们映射到手势。因此,它在 libinput 的内置识别范围内提供了一些灵活性

  • libinput-gestures
    • 您需要 python 3.7 或更高版本,不支持 python2。您还需要 libinput 版本 1.0 或更高版本。

安装 libinput-gestures

安装 libinput-gestures 需要用到 aur 源,需要提前安装好 yay 命令

yay -S libinput-gestures

安装其他依赖

sudo pacman -S wmctrl xdotool

加入 input 组

必须是 input 组的成员才能获得读取触摸板设备的权限

sudo gpasswd -a $USER input

创建配置文件

  • 默认手势在 /etc/libinput-gestures.conf 中。
    • 如果要创建自己的自定义手势,请将该文件复制到 ~/.config/libinput-gestures.conf 并对其进行编辑
    • 该文件中描述了许多示例和选项
cp /etc/libinput-gestures.conf ~/.config/

一些常用的配置,其他玩法,可以看配置文件

  • 这里的 key 对应的是 i3-wm 的快捷键,具体的快捷键,需要查看自己的 i3 配置文件 grep mod+ ~/.config/i3config
# 四指上划切换悬浮模式
gesture swipe up        4 xdotool key super+Shift+space
# 四指下划关闭窗口
gesture swipe down      4 xdotool key super+Shift+q
# 四指左划切换到左侧工作区
gesture swipe left      4 xdotool key super+Shift+Left
# 四指右划切换到右侧工作区
gesture swipe right     4 xdotool key super+Shift+Right
# 双指缩放
gesture pinch in        2 xdotool key ctrl+minus
gesture pinch out       2 xdotool key ctrl+plus

官方默认开启的配置

gesture swipe up        _internal ws_up
gesture swipe down      _internal ws_down
gesture swipe left      xdotool key alt+Right
gesture swipe right     xdotool key alt+Left
gesture pinch in        xdotool key super+s
gesture pinch out       xdotool key super+s
可用手势
Gesture 手势Example Mapping 示例映射
swipe up向上滑动
swipe down向下滑动
swipe left向左滑动
swipe right向右滑动
swipe left_up向左上滑动
swipe left_down向左下滑动
swipe right_up向右上滑动
swipe right_down向右下滑动
pinch in捏合缩小
pinch out捏合放大
pinch clockwise
pinch anticlockwise
hold on请参阅按住手势的说明。
hold on+NN 秒,例如 1.5)按住时长。请参阅按住手势的说明。

启动 libinput-gestures

libinput-gestures-setup start

停止 libinput-gestures

libinput-gestures-setup stop

自启动 libinput-gestures

libinput-gestures-setup autostart

http://www.kler.cn/a/410461.html

相关文章:

  • 《用Python画蔡徐坤:艺术与编程的结合》
  • leetcode hot100【LeetCode 238.除自身以外数组的乘积】java实现
  • 正则表达式灾难:重新认识“KISS原则”的意义
  • [ubuntu]编译共享内存读取出现read.c:(.text+0x1a): undefined reference to `shm_open‘问题解决方案
  • 如何在WPF中嵌入其它程序
  • 使用ChatGPT生成和优化电子商务用户需求规格说明书
  • crmeb 分享商品 邀请码 bug 修复 记录
  • java学习记录12
  • Ubuntu24虚拟机-gnome-boxes
  • PPT分享 | IBM集团业务流程架构顶层规划-订单到交付-销售到回款方案
  • 【强化学习的数学原理】第02课-贝尔曼公式-笔记
  • 大数据新视界 -- Hive 数据仓库:构建高效数据存储的基石(下)(2/ 30)
  • 卷积神经网络各层介绍
  • Long类型实体对象返给前端精度丢失问题
  • 《用Python画蔡徐坤:艺术与编程的结合》
  • 【MySQL】 穿透学习数据库理论与知识剖析
  • 深度学习创新之如何引入先验知识
  • 价格分类(神经网络)
  • Android解包super.img查看其文件信息
  • React表单联动
  • 【小白学机器学习33】 大数定律python的 pandas.Dataframe 和 pandas.Series基础内容
  • react 中解决 类型“never”上不存在属性“value”。
  • 电脑开启虚拟化的方法
  • TCL嵌入式面试题及参考答案
  • kafka学习-02
  • Elmentui实现订单拆单功能