Skip to content

Fix composed screenshots and add an SSH input test helper - #21

Merged
sanohiro merged 1 commit into
mainfrom
fix/composed-screenshots-input-helper
Sep 26, 2026
Merged

sanohiro merged 1 commit into
mainfrom
fix/composed-screenshots-input-helper

Conversation

@sanohiro

Copy link
Copy Markdown
Owner

Screenshots previously read the content FBO before the tab bar, terminal cursor, and later overlays were drawn. Capture now runs after composition, immediately before buffer swap, and waits while presentation is deferred. The capture's own success flash starts afterward; hardware cursor planes remain outside the PNG.

Adds a temporary SSH-controlled virtual keyboard for testing bcon on real VTs. A sudo-started helper opens uinput, drops privileges, verifies Unix-socket peer credentials, and sends bounded key taps. It releases keys on interruption and disables input when the target process exits or the foreground VT changes. Includes a launcher, read-only environment probe, setup guidance, and CI coverage. Input is seat-wide and requires an exclusively reserved session.

Validation:

  • cargo test --locked: 65 passed, 1 hardware-dependent test ignored.
  • cargo build --release --locked: passed.
  • 18 helper protocol/lifecycle tests passed, including real socket exchange with a fake keyboard.
  • Live Parallels ARM64 test at 1024x936 confirmed tab bar, divider, terminal cursor, and 42% progress overlay in PNGs. Exercised focus, zoom/unzoom, and test-tab cleanup; service restart count stayed zero.

Limits: no claim of hardware-pointer capture, host scanout/flicker verification, or full application compatibility. Resize/reflow observations remain separate review candidates. No release or version bump is included.

@sanohiro
sanohiro merged commit 57a7b60 into main Sep 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant