docs: preserve application focus during Emacs capture
This commit is contained in:
parent
c06f9ef2dc
commit
d5cf6c62f5
@ -8,6 +8,8 @@
|
|||||||
|
|
||||||
- GUI 与性能自动化先查 `scripts/README.md`、`scripts/emacs-gui-verifier.el`
|
- GUI 与性能自动化先查 `scripts/README.md`、`scripts/emacs-gui-verifier.el`
|
||||||
及既有 Makefile 入口;公共机制归 `scripts/`,具体业务场景归示例仓库。
|
及既有 Makefile 入口;公共机制归 `scripts/`,具体业务场景归示例仓库。
|
||||||
|
- 现有 Emacs 的截图与录像默认保留用户当前应用焦点,使用已登记的窗口捕获
|
||||||
|
入口;后台视觉证据须检查内容更新,后台耗时与前台输入到显示延迟分别报告。
|
||||||
- 连续 resize 使用 `scripts/benchmark-ebox-resize.el` 的
|
- 连续 resize 使用 `scripts/benchmark-ebox-resize.el` 的
|
||||||
`ebox-resize-benchmark-start`,适用于现有 ETAF 或独立 Ebox buffer。
|
`ebox-resize-benchmark-start`,适用于现有 ETAF 或独立 Ebox buffer。
|
||||||
按 README 选择范围、轮数和新证据文件;先验证前台与已加载版本,保留全部样本,
|
按 README 选择范围、轮数和新证据文件;先验证前台与已加载版本,保留全部样本,
|
||||||
|
|||||||
@ -4,8 +4,9 @@ For an already running Emacs, use its existing server through `emacsclient`.
|
|||||||
Load the checkout and call the example entry point in an explicit buffer, show
|
Load the checkout and call the example entry point in an explicit buffer, show
|
||||||
that buffer in the existing graphical frame, and capture only that owned
|
that buffer in the existing graphical frame, and capture only that owned
|
||||||
window. Preserve the user's font and chrome. Do not start another daemon or
|
window. Preserve the user's font and chrome. Do not start another daemon or
|
||||||
frame for this workflow. The `emacsclient-render-capture` skill supplies the
|
frame for this workflow. Preserve application focus so the user can keep working
|
||||||
foreground and before/after target guards.
|
in other apps. The `emacsclient-render-capture` skill supplies buffer selection
|
||||||
|
without activation and before/after target guards.
|
||||||
|
|
||||||
This directory also owns reusable verification mechanisms; application
|
This directory also owns reusable verification mechanisms; application
|
||||||
scenarios live in their respective example repositories:
|
scenarios live in their respective example repositories:
|
||||||
@ -21,12 +22,14 @@ scenarios live in their respective example repositories:
|
|||||||
generation, and exact cleanup.
|
generation, and exact cleanup.
|
||||||
- `record-emacs-window.swift` uses macOS 15 ScreenCaptureKit to record only the
|
- `record-emacs-window.swift` uses macOS 15 ScreenCaptureKit to record only the
|
||||||
frame owned by the supplied Emacs PID. It follows replacement window IDs and
|
frame owned by the supplied Emacs PID. It follows replacement window IDs and
|
||||||
rejects changed pixel mappings. Its canvas is fixed at recording start:
|
rejects changed pixel mappings. Its desktop-independent window filter works
|
||||||
|
without activating Emacs. Its canvas is fixed at recording start:
|
||||||
when the scenario includes resize, prepare the largest tested frame before
|
when the scenario includes resize, prepare the largest tested frame before
|
||||||
starting the recorder. Smaller windows retain native pixels with padding;
|
starting the recorder. Smaller windows retain native pixels with padding;
|
||||||
a window larger than the original canvas invalidates the recording.
|
a window larger than the original canvas invalidates the recording.
|
||||||
- `capture-emacs-window.sh` supplies window-only checkpoint screenshots and
|
- `capture-emacs-window.sh` supplies window-only checkpoint screenshots and
|
||||||
rejects missing, ambiguous, or changing frame identities. The runner compiles
|
rejects missing, ambiguous, or changing frame identities without activating
|
||||||
|
Emacs. The runner compiles
|
||||||
the video helper using the system Swift compiler; no package install is needed.
|
the video helper using the system Swift compiler; no package install is needed.
|
||||||
|
|
||||||
Concrete repositories provide adapter files that construct a Scenario and an
|
Concrete repositories provide adapter files that construct a Scenario and an
|
||||||
@ -52,6 +55,19 @@ run reports its actual interaction assertions and inspected screenshots
|
|||||||
separately. A failed recorder is never evidence of continuous capture, and
|
separately. A failed recorder is never evidence of continuous capture, and
|
||||||
neither screenshots nor recording establish an operation latency bound.
|
neither screenshots nor recording establish an operation latency bound.
|
||||||
|
|
||||||
|
For an existing server, take a background screenshot with the observed process ID:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ETAF_GUI_CAPTURE_PID=12345 scripts/capture-emacs-window.sh -x /tmp/app-checkpoint.png
|
||||||
|
```
|
||||||
|
|
||||||
|
Keep the target frame open and non-minimized. Validate a known content change in
|
||||||
|
before/after pixels to establish fresh background rendering. Hidden, minimized,
|
||||||
|
off-Space and locked-session behavior is not covered by this procedure. Background
|
||||||
|
Lisp callbacks and runtime timing do not require application activation; report
|
||||||
|
them as background measurements, separately from foreground input-to-display
|
||||||
|
latency. Use Emacs-local operations while another app is active, not global input.
|
||||||
|
|
||||||
## Continuous resize on the existing server
|
## Continuous resize on the existing server
|
||||||
|
|
||||||
Use this entry for resize performance investigations instead of copying the
|
Use this entry for resize performance investigations instead of copying the
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user