See
https://forum.omz-software.com/topic/6514/hardware-keyboard-input-when-scene-is-running

I believe this works for most keys,

See docs for View.get_key_commands() and
View.key_command(sender) in how to define the keys and respond to them.

For instance you can use Arrow keys, return, and most keys. I don't think you can use tab, and can't use modifiers as keys -- like you can't use Ctrl or alt or shift on it's own, but you could use it as a modifier. (E.g shift arrow key can behave different than arrow, but you can't use shift as the fire button)