Skip to content

Replace kiosk routing with egui-keyfunnel — egui fork down to one patch#10

Merged
Le-Syl21 merged 2 commits into
mainfrom
fork-slim-keyfunnel
Jul 7, 2026
Merged

Replace kiosk routing with egui-keyfunnel — egui fork down to one patch#10
Le-Syl21 merged 2 commits into
mainfrom
fork-slim-keyfunnel

Conversation

@Le-Syl21

@Le-Syl21 Le-Syl21 commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Removes the eframe kiosk routing from the egui fork and replaces it with the
published egui-keyfunnel plugin.

Why

The fork carried 4 cabinet-only commits forcing KeyboardInput + raw
MouseMotion to the ROOT viewport (Mutter Wayland ignores with_active(false),
so cover viewports steal focus). That routing was un-upstreamable and lived only
in the fork.

egui-keyfunnel does the keyboard part as a pure egui plugin (moves key
events 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: add egui-keyfunnel = "0.1"; [patch]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() next to the RotationPlugin.
  • 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 --check clean · 230 tests pass.
egui-keyfunnel itself was validated live on GNOME/Mutter Wayland (keyboard reaches
ROOT while a secondary viewport holds focus).

🤖 Generated with Claude Code

Le-Syl21 and others added 2 commits July 7, 2026 15:51
…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
@Le-Syl21 Le-Syl21 merged commit 0870df4 into main Jul 7, 2026
5 checks passed
@Le-Syl21 Le-Syl21 deleted the fork-slim-keyfunnel branch July 7, 2026 14:27
@Le-Syl21 Le-Syl21 mentioned this pull request Jul 7, 2026
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