资讯动态

Omarchy 视觉变更验证实战:用 omarchy capture、screenrecord 与 wtype 在运行态 UI 中完成校验

发布时间:2026/9/6 19:50:49 来源:尧图企业网站定制
Omarchy 视觉变更验证实战用 omarchy capture、screenrecord 与 wtype 在运行态 UI 中完成校验【免费下载链接】omarchyBeautiful, Modern Opinionated Linux项目地址: https://gitcode.com/GitHub_Trending/om/omarchyOmarchy 的 shell 是一个构建在 Hyprland 之上的 QML layer-shell 桌面栏、面板、菜单、通知、锁屏等全部由shell/下的 QML 与插件组成因此任何带视觉效果的改动都不能只靠自动化测试收尾。本篇基于 visual-verification skill 展开说明何时必须做视觉验证、如何用omarchy capture screenshot和omarchy screenrecord抓取参考态/候选态证据、如何用wtype模拟键盘输入驱动交互式 UI以及收尾时的进程清理纪律读完即可对 shell 样式、布局、动画与截屏/录屏流程的变更建立一套可重复、可留证的验证流程。适用场景哪些改动必须做视觉验证skill 文档给出的触发范围非常明确见 agents/skills/visual-verification.mdOmarchy shell 的样式与布局styling and layout面板panels、菜单menus、通知notifications桌面整体外观desktop appearance动画、过渡animations, transitions截屏与屏幕录制流程本身screenshots, and screen recording flows。仓库顶层的 AGENTS.md 也把它列为收尾前的强制步骤之一描述为“verifying any change with a visual effect in the running UI”。也就是说只要你的 diff 可能改变屏幕上任何像素的呈现这份 skill 就是你的收尾清单。核心原则产物不等于验证自动化测试之外必须看运行态 UI原文档开宗明义的两条规则视觉变更必须在运行中的 UI 里验证自动化测试只是补充Visual changes must be verified in the running UI in addition to automated tests。创建出产物截图/录屏文件本身不算完成验证必须在收尾前逐项检查clipping内容是否被裁切典型如文本超长、面板宽度不足overlap元素是否互相重叠遮挡incorrect spacing间距是否与设计意图一致stale state状态是否残留如切换主题/配置后旧值未刷新focus problems焦点是否落在预期的输入框或窗口上visual regressions是否引入了相对旧版本的视觉回退。对 layer-shell surface 或布局类改动文档要求一个更严格的对比法把参考态reference和候选态candidate分别截成两张图再逐一对比而不是只看新图“看起来对不对”。这一做法与shell/下大量 QML 组件如 Panel.qml、BorderSurface.qml逐层组合的渲染方式相匹配——任何一层的尺寸/边框计算变化都可能只在特定内容长度下暴露单看“新图”很难发现回归。截图omarchy capture screenshot fullscreen save的无编辑器全量抓取视觉验证的第一工具是无编辑器全屏截图omarchy capture screenshot fullscreen save文档给出的语义命令打印保存路径文件写入已配置的 Pictures 目录若想要交互式“智能区域”流程则用omarchy screenshot。结合 bin/omarchy-capture-screenshot 的源码可以确认并补全以下参数与行为细节参数模型是omarchy capture screenshot [smart|region|windows|fullscreen] [slurp|copy|save] [--editorname]见文件头部元数据与 bin/omarchy-capture-screenshot#L32-L33第一个位置参数选捕获模式smart为默认会在窗口/显示器矩形上给出提示单击会自动吸附fullscreen直接取当前聚焦显示器不做任何交互第二个参数决定产物去向。save分支bin/omarchy-capture-screenshot#L78-L81用grim -g $SELECTION $FILEPATH直接写盘并echo出路径——这正是验证流程需要的“不弹编辑器、stdout 可被脚本消费”的特性而默认slurp分支会额外把图放进剪贴板并弹出带缩略图的通知。输出目录OMARCHY_SCREENSHOT_DIRXDG_PICTURES_DIR~/Pictures#L10目录不存在时自动创建。底层细节截图前脚本会把屏幕冻结hyprpicker -r -z见 bin/omarchy-capture-region#L306-L310并在抓取期间强制硬件光标避免软件合成光标被烤进画面#L35-L55。这意味着fullscreen save拿到的是一张稳定、无瞬态的帧适合作为参考态/候选态对比的输入。区域选择器由 bin/omarchy-capture-region 实现支持--match-monitor选择恰好覆盖整块显示器时输出monitor:NAME等模式供截屏与录屏共享同一套选区体验。用户侧的完整热键/命令对照Print Screen 系列、omarchy screenshot的各模式可参考手册 manual/12-screenshots-recording.md以及面向 agent 的 skill 文档 default/agents/skills/omarchy/capture.md。录屏动画、过渡与计时变更用omarchy screenrecord抓短视频对动画、过渡、计时timing、截屏与录制流程的改动静态截图无法证明“过程正确”原文档要求录制一段短而聚焦的全屏视频omarchy screenrecord --fullscreen # Exercise the changed behavior. omarchy screenrecord --stop-recording停止命令会打印保存的 MP4 路径位于已配置的 Videos 目录。收尾前必须回放录像且内容只覆盖你变更的那段行为。bin/omarchy-capture-screenrecording 源码印证了这条流程的完整链路并补充了若干对验证工作有用的事实输出目录OMARCHY_SCREENRECORD_DIRXDG_VIDEOS_DIR~/Videos#L22。注意与截图不同录屏目录必须事先存在否则直接拒绝启动并发送 critical 通知#L24-L27。引擎gpu-screen-recorder60fps、固定帧率CFR、GPU 编码不可用时回退 CPU#L191--fullscreen时直接以当前聚焦显示器为捕获目标#L154-L156不带该参数则会先打开选区选择器。停止即后处理stop_screenrecording用 SIGINT 优雅结束编码器随后finalize_recording会裁掉首帧、并在含音频时做 -14 LUFS 归一化与开头静音处理#L253-L280命令 stdout 打印最终文件路径同时弹出带首帧缩略图的通知。排障开关若录制起不来可加OMARCHY_SCREENRECORD_DEBUGtrue复跑日志落在/tmp/omarchy-screenrecord.log文件头注释#L17-L19——在验证动画变更遇到“录不到画面”时这是官方建议的证据收集手段。录音/摄像头等附加能力--with-desktop-audio、--with-microphone-audio、--with-webcam等与 default/agents/skills/omarchy/capture.md 中的说明一致视觉验证场景中一般不需要但可用于验证 OSD、摄像头角标等叠加层。键盘驱动 UI用wtype替代纯手工操作交互式 UI 的验证如果只能靠人手敲键盘就无法复现、也无法留证。原文档的建议是在wtype可用时用它模拟键盘输入。文档给出的范式是——后台启动被测 UI短暂等待其获得焦点然后执行例如wtype -k Right -k Return以此“走”键盘选择流程并核对由此产生的命令输出或状态变化比如选中的值、symlink/配置被改写的内容。文档明确当 UI 会返回一个选中值或改变某个 symlink/配置时优先采用这种可脚本化的验证而不是只看一眼界面。这一做法在仓库的验收测试中已被大量使用可直接作为参考模式test/acceptance.d/menu-test.sh 中用wtype -k Down -k Down -k Down、wtype -k Return驱动菜单导航并断言结果test/acceptance.d/panels-test.sh 用wtype -k Tab、wtype -k Escape切换与关闭面板test/acceptance.d/shell-surfaces-test.sh 混合Return/Escape验证 surface 交互。wtype本身随基础软件包一起安装见 install/omarchy-base.packages在标准 Omarchy 会话中可直接使用。结合bin/omarchy-capture-region中已实现的选区键盘导航方向键/Tab 换窗口、Return/CtrlReturn 截窗口/全屏对应default/hypr/bindings/utilities.lua中作用域限定在选区期间的绑定wtype还可以驱动截屏选择器这类“临时出现”的 UI。收尾纪律跟踪 PID精确停止被测 UI原文档最后一条针对的是“启动后可能一直挂着的被测 UI”记录你启动的 UI 的 PID在截图或录像完成后按 PID 停止它避免宽泛的进程杀杀pkill -f 宽匹配之类确需清理时先用ps确认目标进程再精确终止。这条纪律与仓库自身脚本的风格一致——例如 bin/omarchy-capture-screenrecording 内部对录制进程的结束就是先pkill -SIGINT -f ^gpu-screen-recorder优雅退出、限时等待、超时才pkill -9兜底#L204-L220。在验证 shell 表面时同理宁可hyprctl/ps找到确切 PID 再kill也不要误伤后台的omarchy-shell或其他长驻进程。验证流程小结把 skill 文档与源码证据串起来一次视觉变更的收尾检查可以固化为判断 diff 是否落在适用场景样式/布局、面板、菜单、通知、桌面外观、动画、过渡、截录屏流程omarchy capture screenshot fullscreen save截取运行态画面布局/layer-shell 改动须同时保留参考态与候选态两张图并比对逐项检查裁切、重叠、间距、旧状态、焦点与回归涉及时间维度的行为改走omarchy screenrecord --fullscreen→ 复现行为 →omarchy screenrecord --stop-recording回放确认交互路径用wtype -k ...脚本化驱动核对 stdout/状态/落盘结果按记录的 PID 精确停止自己启动的 UI全程不碰无关进程。以上命令与路径均可在当前仓库中直接复核验证规范见 agents/skills/visual-verification.md命令实现见 bin/omarchy-capture-screenshot、bin/omarchy-capture-screenrecording、bin/omarchy-capture-region验收测试示例见test/acceptance.d/目录。【免费下载链接】omarchyBeautiful, Modern Opinionated Linux项目地址: https://gitcode.com/GitHub_Trending/om/omarchy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价