VM keyboards emit both EV_KEY and EV_MSC/MSC_SCAN events for each physical key press. The non-grabbed evdev loop was processing both, causing each character to be processed twice by the engine. This doubled every character in the engine buffer, corrupting the output. Fix: collect EV_KEY keycodes first, then skip MSC_SCAN events that map to already-processed EV_KEY keycodes. Only VMs that emit MSC_SCAN without EV_KEY still process the MSC fallback. Also removed spammy 'evdev: N device(s) have events after ungrab' log that flooded the terminal on every poll iteration. |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||