Releases: qpst4/XGesture
Releases · qpst4/XGesture
Release list
v1.33.0
新增
- 新增智能截图手势:选区裁剪(矩形 / 椭圆 / 1:1)、内置画笔标注与撤销,支持保存相册、复制、分享、原位 1:1 钉图与取词 OCR
- 新增截图防残影:触发时压制全部浮层并隐藏手势动画指示器
- 新增边角轮盘「显示快捷编辑按钮」开关,可隐藏轮盘外侧的编辑入口
- 新增圆环启动器设置页:横 / 竖轴分别配置圈数、半径、工具栏与图标形状,支持两轴外观 / 槽位联动,并可调起悬浮窗就地编辑
- 新增圆环启动器「显示操作工具栏」开关
变更
- 调整自由窗口适配:自由窗口 3 更名为「HarmonyOS / MagicOS」并支持华为鸿蒙自由窗口;OriginOS 改用分享代理启动;小米设备标准模式按屏幕方向补偿窗口尺寸
- 将屏幕翻译动作标注为实验性(需先安装翻译引擎与语言模型)
- 移除单击 / 双击槽位的「触发模式」选项(两类固定为松手触发)
修复
- 修复侧边默认设为「即时触发」时双击手势无效
- 修复快捷启动器拖拽换位被误判为建文件夹(合并悬停时长改为 900ms)
- 修复智能截图的复制与分享失败
v1.32.0
修复
- 剪贴板白名单:白名单中的应用此前无法在后台读取剪贴板——模块侧生效名单始终停留在仅含本应用的旧状态;现随设置变更同步下发,重启或覆盖安装后不再回退
- 暂存夹 / 扩展 tab 的剪贴板状态:LSPosed 模式下曾被误判为「监听未就绪」(判定错误地依赖 Shizuku 授权);现按实际运行的通道显示,两个入口结果一致
- LSPosed 接管:手指抬起/取消时模块发来的「会话结束」不再被当作「取消手势」——此前快速启动器这类驻留面板刚打开就会被拆掉(表现为「松手触发弹不出来」);真丢 UP/CANCEL 时由 10 秒看门狗兜底
- 接管开关:切换后一度只有两三秒生效、随后回落到系统手势——模块侧不再被机器上遗留的旧配置顶掉
- 悬浮球 / 双贴边线条接管:球线换位、拖动、切换线条后接管区域立即重新下发;此前不重发,且球的新位置恰好落在两侧触钮手柄之间的空隙(无矩形覆盖),表现为只出系统返回手势
新增
- 诊断:LSPosed 状态行新增「模块白名单已同步:N 个包(本地 M 个)」,数量不一致时提示「白名单未同步」
- 诊断:新增边缘与接管链路的环形缓冲埋点及「扩展 → 诊断与日志」一键导出,报告中包含包名、进程、无障碍/宿主/接管状态与关键埋点
变更
- Weblate:修正 weblate.yml 中项目 slug 注释的笔误(仅配置注释,不影响翻译流程)
v1.31.0
[1.31.0] - 2026-09-30
Added
- 小窗尺寸与位置可横竖屏分开配置:原先只有一套比例,现在竖屏、横屏各存一套(新增
free_window_land_*偏好键,横屏默认 68% × 40%,竖屏维持原默认 80% × 55%),运行时按当前显示方向取用,横屏不再沿用竖屏比例;老用户原来的竖屏参数原样保留,横屏走自己的一套默认值 - 小窗尺寸编辑改为全屏蒙层:挂在 App 根部的半透明全屏编辑层,顶部「竖屏 / 横屏」分段切换;拖动窗口改位置、拖右下角手柄改尺寸(宽 35%–95%、高 35%–90%、左 / 上 0–65%,越界自动收进屏幕内),窗口中央实时显示当前百分比;切到横屏标签会把宿主 Activity 真的转到横屏,画布就是该方向的真实屏幕;点「完成预览并保存」一次性写回两套参数。此前的独立「小窗预览」导航页已移除,设置页入口改为直接拉起该蒙层
- 横竖屏尺寸摘要:设置页「调节小窗尺寸与位置」一行的副标题改为「竖屏 %d%% × %d%% · 横屏 %d%% × %d%%」,不进编辑层也能看到两套当前值
Changed
- 编辑期间冻结外壳布局:小窗编辑层打开时,导航壳不再随宽度断点在底栏 / 侧栏之间切换,避免转屏时整壳重建导致编辑状态丢失;关闭编辑层后方向才延迟还原(延迟 300ms,期间重新打开会取消还原),编辑层的「竖屏 / 横屏」标签也缩短为单词以便单行显示
- 快捷启动器添加流程支持指定文件夹:在文件夹内点「+」时,添加的条目直接写进该文件夹(App、快捷方式、Shell 命令、打开链接、模拟按键、应用内直达等各选择页都会带上当前层级),添加页在文件夹内不再显示「新建文件夹」(文件夹只有一层,不允许嵌套)
- 设置页预览网格按真实配置解析图标:预览改用真实的 Shell 命令与应用内直达列表,不再退化成通用矢量图标,图标角标也与运行时一致;同时删掉预览里没人消费的那套位图解析流程,图标只走单一管道
- 日文与阿拉伯文各补 96 / 129 条翻译:覆盖设置里的语言标签、自动填充失败原因、搜索卡片标题、翻译目标语言名,以及剪贴板后台监控与 LSPosed 白名单 / 诊断状态文案
- 关于页链接清理:移除 Telegram 发版频道入口(
@cebian_channel),Weblate 链接与徽章地址由cebian改为XGesture,Telegram 讨论群与 QQ 群入口保持不变;文档同步修正 Weblate 项目 slug 与docs/ui-guidelines.md标题里遗留的旧名
Fixed
- 快捷启动器可进入文件夹编辑:编辑面板时点文件夹即原地进入子层级,顶部出现返回箭头与文件夹名,可删除、拖拽换位、翻页,也能重命名或解散(解散后子项按原顺序摊回面板);文件夹内禁用拖拽合并,避免嵌套子项被静默丢弃;面板被改写导致索引失效时自动回退到根层级
- 触钮横屏方向锁改为计数式释放:集合页与各子页分别登记在场数量,只有离开整个触钮编辑流时才延迟释放方向锁,手势返回 / 系统返回这类不走回调的退出路径也能正确还原,转屏或外壳换布局引起的销毁重建不再误释放
- 仅手动指定横屏时才锁方向:系统自动旋转进入横屏不再下发
SENSOR_LANDSCAPE,此前被锁死后转回竖屏仍停留在横屏触钮布局 - 阿拉伯文补全与复数修正:补上缺失的搜索面板历史条数复数(此前直接回退英文)
v1.30.0
[1.30.0] - 2026-09-30
⚠️ Breaking
- 外部协议改名:调起协议由
cebian://换成xgesture://,旧 scheme 不再注册、不再解析。用 Tasker / MacroDroid 等按 deeplink 唤起面板的自动化,需要把链接前缀改成xgesture://;host、路径与?q=参数完全不变。走 Intent Action(com.slideindex.app.action.*)的自动化不受影响 - 应用与仓库改名:
边栏 / Cebian→X手势 / XGesture;仓库迁移到github.com/qpst4/XGesture(旧地址仍重定向),Release 资产名由cebian-<版本>-*.apk改为xgesture-<版本>-*.apk。应用包名com.slideindex.app保持不变,可直接覆盖安装、配置与数据保留 - 用 Obtainium 自动更新的用户:需要在应用里把「APK 资产匹配规则」由
cebian-*改成xgesture-*;旧规则匹配不到时会静默停更(不报错),改用应用内更新的用户不受影响
Changed
- 默认语言改为英语:
values/由中文换成英语、中文迁至values-zh/,因此没有对应翻译的语言现在回退到英语而不是中文;同时把英文补齐到与源 100% 对齐(新增 166 条英文串),并把 Weblate 的源语言从简体中文改为英语 - 对外协议收敛为单一真源:新增
AppLinks(scheme / host / 路径 / 查询参数),原先散落在 4 个 Kotlin 常量、4 处 Manifest 与多语言 UI 文案里的字面量收敛为单点;解析入口统一走AppLinks.isAppLink(),避免「改了一侧、漏改另一侧」这类不崩溃也不报错的静默故障 - 快捷方式随新协议迁移:
LauncherShortcutsApplier在setDynamicShortcuts之后补调一次updateShortcuts,让用户已固定到桌面的快捷方式一并迁移,避免旧的「剪贴板」快捷方式落到收纳夹 - 全量品牌词替换:中文
边栏→X手势、英文/日文Cebian→XGesture、阿拉伯语改用拉丁品牌XGesture;无障碍服务名保留#…👈的排序前缀。通用词「侧边栏」与已持久化的cebianshell:协议前缀保持不变
v1.25.5
[1.25.5] - 2026-09-28
Changed
- 架构:交互面由
:overlay/:clipboard多进程回退为单进程——无障碍服务、触钮/悬浮球/边角轮盘、全部浮层窗口(含小组件宿主与实时预览)、剪贴板监听、录屏截屏、模块桥、媒体监听全部合并回主进程,只保留:engine做 OCR/翻译的内存隔离;AppProcess去掉isOverlay/isClipboardMonitor/isOther,清理 8 处恒真恒假分支、Shizuku binder 死链路与OverlayStatePort空桩 - 设置页浮层预览:由 Intent +
startService改为同进程静态直连,删掉 11 个ACTION_PREVIEW_*与约 40 个 extra 常量及onStartCommand分发 - 经典底栏:毛玻璃着色改用容器色(
surfaceContainer50%)并加 0.08 细噪点抑制色带,默认模糊半径 24dp → 16dp(仅影响新装与恢复默认),修掉浅色主题下比页面背景还暗的灰蒙带 - 添加搜索引擎:sheet 改走 Miuix 列表规范(
settingsCardItems+SettingNavigationRow),消除外层 Card 与行内 inset 叠加出来的双重水平内边距 - 性能:jieba 词典由「每节点一个
unordered_map」换成紧凑双数组 trie,并取消启动期预热、改首次分词时懒加载(实测 native 堆 301 → 202 MB);交互浮层空闲时不再逐帧重绘(此前退到后台无人操作 40 秒仍渲染约 1200 帧、主线程与 RenderThread 各占 7.4%);启动图标缓存改按字节限容(24 MB + 16 MB)并把图标栅格化到 ≤192px(BitmapDrawable 256 张/81 MB → 87 张/28 MB);悬浮球 GIF 帧改按 (uri, 目标尺寸) 共享解码结果 + 引用计数(GIF 帧 1297 → 55 张,进程位图 263 → 138 MB)
Fixed
- 引擎包:尊重用户删除——
packsRoot下新增<packId>.user-removed标记,用户显式删包后不再被内置资产自动装回,取词自动回落到 ICU 分词;显式安装成功时清除标记 - OCR:删除引擎包时真正作废已加载的会话(
deleteOcrEngine传入的是当前选中模型,被invalidateIfModelChanged判为「无需释放」,留下包已删、内存仍在用旧 PaddleOCR 会话的脏状态);新增挂起版invalidateEngine()无条件释放,且不再在主线程runBlocking - 设置页预览:修复松手回弹与延迟回放——索引高度滑条改松手提交、提交值顶住到设置落盘再撤;悬浮球 Y 补合并守卫与待确认值
- 浮层:行程范围预览改双层描边提升对比度;小组件面板删除单项不再整页重建
v1.25.1
[1.25.1] - 2026-09-28
Fixed
- OCR:修 Android 17(
targetSdk 37)上取词报「OCR 运行库未就绪」——引擎包解压后立刻把 native 库置为只读,否则System.load()会因「加载可写文件」(compat changeTHROW_ERROR_FOR_WRITABLE_DCL= 463348571)直接抛UnsatisfiedLinkError;加载失败现在会把真实异常写进日志,不再只是一句「运行库未就绪」
v1.25.0
[1.25.0] - 2026-09-27
Added
- 多进程:常驻交互切到
:overlay进程(触钮/悬浮球/边角轮盘/浮层窗口/无障碍/录屏/截屏),OCR 推理搬入:engine(AIDL + 本地回退),剪贴板监听拆:clipboard独立进程 + 常驻守护互拉;新增AppProcess、CrossProcessStore、OverlayStatePort、TrampolineResultPort、OverlayHostLease、StuckGestureWatchdog与进程边界测试 - 验证码:页面重构为一页四入口(自动填充/提取/记录/规则/短信黑名单),新增规则推理、短信黑名单、提醒策略与分通道回执
- 剪贴板:监听通道与采集方式拆分,恢复 LSPosed 白名单模式,进应用/开面板时补读最新一条
- 悬浮球/触钮:触钮长度两端放开,悬浮球支持长按调节,钉文自适应
- 圆环启动器:圆环槽位选「快速启动器」先挑面板,删面板时同步改写引用;从圆环/蜂窝/面板点开的条目让面板跟随当前侧
Changed
- 小组件面板设置页:移除预览分区(跨进程后主进程拿不到
:overlay的真实例),正式面板不受影响 - 图片编辑器:独立任务栈,返回时回到原应用;跨进程传图
- 打开方式:「每次都询问」改走系统弹窗,不再自画列表
- 剪贴板监听状态:改单槽双写(推送 + 轮询),只保留订阅 + 主动要帧
- 取词:拾取十字与指针手感参数从悬浮球页迁到取词页;布局与行为/拾取与手感合并为一张卡
- 工具链:声明 WorkManager 编号范围并移除默认初始化器,清掉 lint error 级告警
Fixed
- 无障碍:掉线自愈、掉线提示只发一次;覆盖安装先等系统重绑,失败才兜底,常驻服务提前拉起;覆盖安装后自动重绑
- 悬浮层回归:收纳把手/实时通知/悬浮球消失、搜索面板幽灵窗口与「窗口在但永远不可见」、首帧校验重建、Shizuku binder 惰性获取避免连带杀进程
- 圆环启动器:进外部编辑页瞬间不误恢复圆环,外部编辑页让位归还悬浮球、返回后跨进程恢复圆环 + 球 + 轮盘
- 验证码:填充请求不再发空、卡住的「填充中」超时兜底、记录页强制读盘、注入改 ASYNC + 失败回退 Ctrl+V
- 剪贴板:用户服务断连退避重绑、残留子进程清理、通道解析修「勾 Root 却按 Shizuku 跑」、抢焦点读取失败重试;修后台状态显示未在监听、键盘剪贴板小窗开关下发、LSPosed 白名单返回连退两级
- 权限/杂项:TaskManagerUtil 每进程无条件初始化、Trampoline 结果改 token + 广播、文件锁按路径加进程内锁、跟随特权模式等 Shizuku 就绪再判
v1.23.0
[1.23.0] - 2026-09-24
Added
- 搜索面板:面板改为分卡毛玻璃,引擎 Dock 独立成块;引擎 Dock 与搜索框改用真悬浮,不再随候选列表滚走
- 无障碍:服务掉线时弹出可点通知,点一下直达系统无障碍设置;重连后自动撤回,同一次掉线只提示一次
Changed
- 搜索面板:呼出时更早拉起输入法,过渡时长 320 → 140 毫秒
- 无障碍:「辅助功能防被杀」补做真正的重绑抖动(此前只把「已开启」写回系统设置,条目本就在列表里等于白写),并加 60 秒节流避免打断系统还没完成的重绑
Fixed
- 手势:修复点击穿透被幽灵触钮窗吞掉导致的失效与自持抽搐——触钮捕获窗同步时只清管理表却不摘窗口,留下仍可触摸的残窗,它吞掉穿透注入的那一拍(点击到不了下层应用)并再次触发同一个放行动作;同步路径改为真正摘窗,并在
applyToWindowManager=false时保持管理表不动(否则reattachCaptureWindows无从回贴、触钮会消失) - 手势:点击穿透补上注入回声抑制,触钮与角轮盘也补上与边缘路径一致的输入层接管门闸
- 剪贴板:拖拽镜像随投放回收,分享兜底不再依赖镜像(此前拖一次相册就多一张图)
- 搜索面板:点击面板内空白退出、滑动候选列表自动收键盘;修复 lint IncorrectConstant,弹输入法改用平台常量
v1.20.0
[1.20.0] - 2026-09-23
Added
- 手势屏蔽(LSPosed):可选在系统输入层接管边缘手势;快照 v2 支持
extra_rects,边角轮盘两角竖条/横条按「贴哪条边归哪个开关」下发;悬浮球与双贴边线条纳入同一套接管(停靠、自定义位置、键盘与横屏时重算矩形);三键导航下边角轮盘豁免 - 手势:触钮新增「沿边首段」组合槽位——先上滑/下滑(顶底触钮为向左/向右滑)后再向内侧滑,以及先上滑/下滑后原路折返;与现有「内滑→上/下」「内滑折返」并列,短距/长距与折返各自可独立配置。斜滑与自然弧线不会被这些组合抢走(首段需明确落在沿边扇区、第二段需以向内为主)
- 应用选择:应用内直达、按应用禁用、上一应用黑名单等「选应用」页面顶栏新增「显示系统应用」,候选集扩到带 Activity 的全量已安装包,可直达无启动器图标的系统应用(Aicy Engine、App Ops 等)内部页面;Activity 枚举放开
MATCH_DISABLED_COMPONENTS,厂商默认关闭/隐藏的页面也能列出 - 取词:默认搜索引擎支持隐藏引擎并统一两处入口;搜索按钮支持长按滑选直搜;来源标签文案回到「无障碍」表述(英文 A11y、日文用户辅助)
- 剪贴板:统一拖拽与分享链路(含文件镜像与拖放回退)
- Overlay:钉到屏幕图片支持长按跨应用拖拽投放
- Overlay:任务切换器列表支持惯性滚动与触边回弹
Changed
- 手势:触钮组合手势(内滑后转向的 L 形、内滑后回缩的折返)不再要求「短滑后悬停」:第一段以向内方向越过短滑距离即就绪,第二段以沿边为主转向(或回缩)即可触发;未配置组合槽位时方向判定照旧。折返回缩门槛 16dp → 28dp;「短滑后悬停」槽位与悬停时长滑条保持不变
- 手势:折返手势新增撤销区——手指回到起手位置附近(含一路滑到屏幕边缘)抬手即取消;「短滑后悬停」时长默认 250 → 500 毫秒、范围 0–1000 毫秒并改用 MIUIX Custom Key Points(0 毫秒=越过短滑距离即算悬停),悬停静止容差 12dp → 6dp
- 手势屏蔽:模块「已就绪」与接管开关解耦——hook/配置/控制器装齐即显示就绪,三开关全关时不再误报未就绪;设置项标题标注「(可能无效)」
- 清理:删除早已失效的「向内复合模式」配置(
inward_hover_compound_enabled) - 本地化:补齐应用选择页与相关文案的日语、阿语更新;删除未注册的空的
values-arz
Fixed
- 手势:设置组合手势的短滑档不再连带写入配对的长滑档;侧栏手势槽位子页返回后停留原来的 tab
- 手势:修复「短滑后悬停」在持续滑动中被误判成立(固定锚点 + 6dp 重锚)
- 手势:修正触钮组合/折返的提示与判定不一致
- 手势桥接:将 UID 校验移入 Binder 方法,修复 lint/安全校验路径
- 应用选择:空列表按
letter → pinyinKey排序;已选系统应用在禁用/黑名单列表中按包名解析标签 - 剪贴板浮窗:拖拽投放后丢失「点窗外关闭」的窗口标志
v1.13.0
[1.13.0] - 2026-09-21
Changed
- 工具链与依赖:Miuix
0.9.4(自0.9.4-rc01)、Kotlin2.4.20、AGP9.4.1、KSP2.3.12、compose-bom2026.09.00(material31.5.0-alpha28)、appcompat1.8.0、colorpicker1.3.0、Robolectric4.17、benchmark1.5.0、onnxruntime1.30.0;compileSdk 提升到37.1,NDK 默认29.0.13599879 - 导航:entry 内的
viewModel()/hiltViewModel()/SavedStateHandle改用 miuix-nav 自带作用域,删除手工补齐 SavedState 的NavEntryHiltScope - 主界面分页:横滑切页改由 miuix
pagerGestureOverride(Cross-Axis)接管,竖列表惯性滚动与回弹期间也能横滑切页;切页动画改用PagerState.springAnimateToPage - 液态玻璃底栏:改用 Mishka 的
IosLiquidGlassNavigationBar实现(原 InstallerX-Revived fork 退役),并获得圆角折射修正、无 runtime shader 设备的降级光斑、tilt 重力高光;按压/未选中亮度随之上调,底部留白改由组件内部处理 - 液态玻璃底栏模糊:默认半径由 7dp 调整为 4dp(对齐 Mishka 内部取值;已手动调过该设置的用户不受影响)
Fixed
- 主界面分页:横滑与竖列表手势冲突、TabRow 横向嵌套滚动外抛、毛玻璃采样等随 miuix 0.9.4 一并修复
- 剪贴板:复制面板红框选择器点击后真正粘到所选输入框(此前未透传
fvStyle,点击等于没点,仍粘在光标处) - 剪贴板:多图复制不再只剩第一张;本地图片文件缺失时改用条目的 content URI,不再把裸文件名当 URI 写入
- 剪贴板:图片剪贴的 MIME 改为显式声明(此前误填进 label,MIME 由 resolver 反查,查不到会退化成
text/plain) - 取词目标:粘贴候选框去重方向修正,保留最内层输入框(此前保留外层容器、丢掉真正的输入框)
- 消息提醒:新装"启用消息提醒"默认不再为开(总开关此前会被默认开启的提醒样式连带打开)
- 测试:修复 Robolectric SDK 与宿主 Application 配置、虚拟时间/主 looper 相关的挂起,app 与各库模块单元测试恢复全绿
- OCR 引擎包:随 ONNX Runtime 1.30.0 升到 revision 6(
ocr-engine-arm64-v6.zip),修复 APK 侧 ORT 与旧引擎包主版本不一致导致的「PaddleOCR 引擎未初始化」;设置页引擎版本显示随之更新