emilk/egui

Tracking issue: improve Key input

Open

#3653 aperta il 28 nov 2023

Vedi su GitHub
 (23 commenti) (6 reazioni) (0 assegnatari)Rust (2037 fork)batch import
Tracking issueeframeeguigood first issuehelp wanted

Metriche repository

Star
 (29.051 star)
Metriche merge PR
 (Merge medio 11g 20h) (47 PR mergiate in 30 g)

Descrizione

The keyboard input in egui is limited in a couple of ways:

  • Lots of keys missing from Event::Key
  • We don't report the super/meta modifier key
  • We don't report modifier key presses (just their state)
  • Physical keys not reported on the eframe web backend
  • KeyboardShortcut should ignore shift and alt keys for logical keys (e.g. Ctrl Plus may require pressing shift on some keyboards). See https://github.com/emilk/egui/issues/3626 for more

How can I help?

  • Look at the code for egui::Key and follow the instructions there for adding new keys
  • Investigate if we can get physical keycode on web

Requested keys

Prioir art

Relevant issues

Physical vs Logical keys

Consider someone owning a physical QWERTY keyboard:

However, they have remapped it to use Dvorak (perhaps even repainting the text on their keyboard):

If they start hitting Caps Lock and then moving to the left, the keys they will be hitting will be

  • physical (qwerty): CapsLock, A, S, D, F, …
  • logical (Dvorak): CapsLock, A, O, E, U …

The logical keys makes sense for most keyboard shortcuts - if you say "Press Cmd+S to save" in your UI, the user will be looking for the logical key "S" The physical keys are mostly useful for games, where e.g. te physical WSAD on QWERTY moves a character, no matter what the users keymap is.

Guida contributor