Runtime Smoke Checklist
Run these checks in a nested Hyprland session or another disposable compositor session before publishing a release.
scripts/run-nested.sh launches a disposable nested session with a fresh user-owned build under ${XDG_CACHE_HOME:-$HOME/.cache}/hyprexpo.
scripts/dev-watch.sh rebuilds and relaunches that session on source changes.
Nested test binds:
F10for overviewSUPER+Returnfor a terminalSUPER+1..9for workspacesSUPER+SHIFT+1..9to move a windowSUPER+Qto close a windowSUPER+SHIFT+Qto exit
Checklist
- Load the locally built plugin and confirm no API/hash mismatch is reported.
- Toggle overview on and off with
hyprexpo:expo, toggle. - Cancel overview with the configured
cancel_keyand confirm the workspace does not change. - Move keyboard focus with
hyprexpo:kb_focus, then select withhyprexpo:kb_confirm. - Select by pointer or touch near the outside edges of the monitor.
- Confirm current, hover, focus, label, and border styling render as configured.
- Open two or more windows on one workspace, open overview, press on a visible window preview, drag across the move threshold, and confirm the under-pointer drag proxy appears.
- Drag that window preview over another valid workspace tile and confirm a positional landing proxy appears inside the hovered target tile.
- Move the pointer within the target tile and between target tiles; confirm the landing proxy tracks the pointer position, preserves the original grab offset, and disappears when hovering the source or an invalid target.
- Release on a target workspace and confirm the window still moves through the existing safe workspace move behavior. This release is not yet a positional layout insertion.
- Exercise the Lua gesture registration path and complete or cancel a swipe.
- Open or create a Picture-in-Picture-like pinned window. In the nested session, one practical path is to focus a test window and run
hyprctl dispatch pinfrom a terminal. - With the default
plugin:hyprexpo:show_pinned_windows = 0, open overview and confirm the pinned window is not rendered into every workspace preview tile. - Set
plugin:hyprexpo:show_pinned_windows = 1, reload or apply the keyword, reopen overview, and confirm pinned windows render in previews again for users who opt in. - Set
plugin:hyprexpo:show_pinned_windows = 0again, close overview, and confirm the pinned window is still visible and pinned in the normal Hyprland session. - Unload or reload the plugin after closing overview and confirm no stale render pass callback crashes the session.
WARNING
The public site and docs should not claim full release readiness until this runtime smoke gate has been completed for the intended release artifact.