Replace kiosk routing with egui-keyfunnel — egui fork down to one patch#10
Merged
Conversation
…ne patch The eframe "kiosk routing" (KeyboardInput/ModifiersChanged + raw MouseMotion forced to the ROOT viewport) is removed from the egui fork and replaced by the published egui-keyfunnel plugin, which funnels keyboard events from the cover viewports to the playfield. The mouse now follows the focused window (by design) and gamepad/joystick is read via SDL (focus-independent), so no mouse routing is needed. - Cargo.toml: add egui-keyfunnel 0.1; [patch] egui/eframe/egui_extras now point at the `pinready-0.35-slim` branch (egui 0.35.0 + only the activation-token commit #8282 — the 4 kiosk commits dropped) - main.rs: register KeyFunnel::new() alongside the RotationPlugin - CLAUDE.md: two published egui plugins + a one-patch fork The egui fork is now a single commit (#8282, an open upstream PR). When it merges + ships, PinReady runs on stock egui/eframe. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0138mtPxwfXPetBypyjp6KwU
Manual (workflow_dispatch) workflow gated by the protected `signing` environment, to iterate on the Certum SimplySign-on-Linux signing flow (SimplySign Desktop in Xvfb + auto-TOTP login via oathtool/xdotool + osslsigncode over a p11-kit socket) without touching the real release pipeline. Downloads pinready.exe from a given release tag, signs it, and uploads the signed binary (+ a login screenshot for debugging). The GUI login automation is best-effort and expected to need a couple of iterations with real credentials. Once proven, fold the `sign` job into ci.yml between `build` and `release`. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0138mtPxwfXPetBypyjp6KwU
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Removes the eframe kiosk routing from the egui fork and replaces it with the
published
egui-keyfunnelplugin.Why
The fork carried 4 cabinet-only commits forcing
KeyboardInput+ rawMouseMotionto the ROOT viewport (Mutter Wayland ignoreswith_active(false),so cover viewports steal focus). That routing was un-upstreamable and lived only
in the fork.
egui-keyfunneldoes the keyboard part as a pure egui plugin (moves keyevents from the cover viewports to the playfield). The mouse follows the focused
window (by design) and gamepad/joystick is read via SDL (focus-independent), so
no mouse routing is needed.
Changes
Cargo.toml: addegui-keyfunnel = "0.1";[patch]→pinready-0.35-slimbranch (egui 0.35.0 + only the activation-token commit #8282; the 4 kiosk
commits dropped).
main.rs: registerKeyFunnel::new()next to theRotationPlugin.CLAUDE.md: two published egui plugins + a one-patch fork.Result
The egui fork is now a single commit — the activation-token API
([emilk/egui#8282], an open upstream PR, used to focus the launched VPX window).
When it merges + ships, PinReady runs on stock egui/eframe — zero fork.
Verification
cargo check/clippy --all-targets -D warnings/fmt --checkclean · 230 tests pass.egui-keyfunnelitself was validated live on GNOME/Mutter Wayland (keyboard reachesROOT while a secondary viewport holds focus).
🤖 Generated with Claude Code