emilk/egui

Tracking issue: improve Key input

Open

#3,653 建立於 2023年11月28日

在 GitHub 查看
 (23 留言) (6 反應) (0 負責人)Rust (2,037 fork)batch import
Tracking issueeframeeguigood first issuehelp wanted

倉庫指標

Star
 (29,051 star)
PR 合併指標
 (平均合併 11天 20小時) (30 天內合併 47 個 PR)

描述

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.

貢獻者指南