(Somewhat disappointing) Update: I will give up on the hardware keyboard support. This is due to the fact that the mapping from JavaScript key codes to lingo key codes (what uinput uses which is used by the server) is ridiculously hard (if not even impossible) to do.
So I will sadly have to stick to the touch/click keyboard.
Here is just the tip of the iceberg: JavaScript key codes depend on the keyboard layout of the client while lingo's key codes don't. The will stay the same no matter what the system's keyboard layout looks like. So at least I would have to ask the client to tell me it's keyboard layout an have to have a mapping for every possible layout.