Skip to content
 
 

Repository files navigation

BetterTouchpad

原项目来源于:fasa70/BetterTouchpad,在原项目基础上针对欧系设备(ColorOS)优化,并使用 Miuix 组件库重写 UI。

让 Android 触控板像鼠标一样好用


背景

随着越来越多搭载触控板的 Android 设备(平板键盘套装、外接键盘等)出现, 触控板的使用体验问题也逐渐暴露出来。

Android 生态中,触控板的处理方式高度碎片化:

  • 不同厂商对触控板的驱动和事件上报方式各不相同
  • 触控板的输入链路与鼠标不同,系统底层对其处理方式存在差异,这导致在串流软件(如 Moonlight)、游戏软件等对输入设备有严格要求的应用中,触控板往往无法正常使用或行为异常,使用体验远远不及鼠标
  • 系统手势支持参差不齐,部分设备缺少多指手势支持

BetterTouchpad 正是为解决上述问题而生。


简介

BetterTouchpad 是一个运行在 Android 设备上的 Root 级 Native 守护进程,附带 Android 配置界面(APK)。

  • 核心:由 Native C 守护进程承担,直接在系统底层读取触控板原始事件、识别手势、并通过 uinput 注入标准鼠标事件,使触控板的行为更接近真实鼠标,以在串流软件(如 Moonlight)、游戏软件中拥有更好的表现,同时提供完整的系统级多指手势支持。
  • 配置界面:Android APK 负责参数配置与守护进程的启动 / 停止
  • 守护进程由 APK 通过 Root Shell 拉起,独立于 Android 应用框架运行

工作原理

  1. 事件拦截:应用通过 Root 权限直接读取触控板对应的 /dev/input/eventX 设备节点,获取原始触摸事件(支持可选的 EVIOCGRAB 独占模式,防止系统其他进程同时读取)
  2. 手势识别:对原始触摸数据进行多指手势识别,判断单指/双指/三指的动作类型
  3. 事件转换与注入
    • 使用 uinput(Linux 内核虚拟输入设备接口)创建一个虚拟鼠标设备,将识别到的手势转换为标准鼠标移动、点击、滚轮等事件注入系统
    • 多指手势通过模拟触摸注入系统,实现返回桌面、截图、分屏等操作
  4. 自动设备检测:通过 getevent -p 自动扫描触控板设备,获取设备路径和坐标范围,无需手动配置 (在小米平板上,触控板通常名为Xiaomi Touch。其他设备的触控板待适配)

功能

支持的手势

手势 行为 备注
单指划动 移动鼠标光标
单指单击 鼠标左键单击
按下触控板(物理按压) 鼠标左键单击
轻触两下以拖移 双击后拖动(拖移模式)
双指单击 鼠标右键单击
双指划动 鼠标滚轮滚动 支持自然滚动
双指边缘内划 返回上一级 通过触摸注入实现
三指单击 鼠标中键单击 新增稳定性优化
三指上划 底部手势条向上注入 支持横向跟手路径
三指左/右划 底部手势条横向注入 用于系统级应用切换动效
三指下划 保留三点触摸注入路径 兼容系统截图等行为

设置可进行高度自定义

功能开关

  • 单指划动 / 单指单击 / 物理按键单击
  • 轻触两下以拖移
  • 双指单击 / 双指滚动 / 自然滚动
  • 双指边缘内划返回
  • 三指手势
  • 三指单击(鼠标中键)

灵敏度设置

参数 说明
光标灵敏度 控制鼠标光标移动速度
滚轮灵敏度 控制双指滚动速度
触摸注入灵敏度 影响边缘内划和三指手势的注入速度

其他设置

参数 说明
边缘触发区域宽度 边缘内划的触发区域占 X 轴的比例
双击拖移间隔时间 两次点击间隔不超过此值时触发双击拖移(ms)

触摸注入方向校正

参数 说明
XY 轴对调 交换横纵方向
反转 X 轴 水平方向取反
反转 Y 轴 垂直方向取反(默认开启)

默认开启 XY 轴对调和反转 Y 轴,以适配小米设备。如手势方向异常,可在此调整。

兼容性设置

参数 说明 默认
独占设备 (EVIOCGRAB) 独占触控板输入事件 开启
自动匹配触控板设备路径和坐标值范围 启动时自动扫描并获取设备路径及坐标最大值 开启

关闭自动匹配时,可手动指定:

  • 设备路径,如 /dev/input/event5
  • X 轴坐标最大值,如 2879
  • Y 轴坐标最大值,如 1799

使用要求

  • Android 设备需已获取 Root 权限
  • 目前主要适配 小米平板O 系平板(ColorOS 系列,包含 OPPO 和 一加) 带触控板的设备,如其他设备无法使用,请在项目的 Issues 页面提交一个新的 Issue。

免责声明

本项目需要 Root 权限,请确保了解相关风险后再使用。 因使用本软件造成的任何问题,开发者不承担责任。

About

将安卓的触控板映射成虚拟鼠标,以解决各种兼容问题

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages