Skip to content

Clients on Android cannot send key release events using virtual keyboard #273

@UlyssesZh

Description

@UlyssesZh

Describe the bug
This does sound like a client bug, but I have tried various different clients on Android, including AVNC, bVNC, MultiVNC, and RealVNC Viewer, all of which can reproduce the same bug.
However, using RealVNC Server as the VNC server will make the bug disappear. Therefore, I would think this is a server bug instead of a client bug.

When you use Android virtual keyboard on an Android VNC client to send keyboard input events, the key release events are never received. One can see this by monitoring the input events using xinput test. You can see that only key press shows but key release never shows. Or, if you started x11vnc with -repeat, then every key will indefinitely repeat.

This makes it basically impossible to use virtual keyboard on Android clients to access VNC server run by x11vnc. With -norepeat, because it seems that X cannot handle too many simultaneously pressed keys at once, many input events will be missing. With -repeat, every key will indefinitely repeat itself.

I have also tested connecting a USB hard keyboard to the Android device, and it can send the key release events as expected. I tried two different virtual keyboard apps (the stock one and Trime), and both of them have the same bug.

To Reproduce

  1. Start x11vnc.
  2. Use xinput test on the virtual XTEST keyboard device.
  3. Use AVNC to connect to the server.
  4. Use virtual keyboard on the client to send input events.

Expected Behavior
Every key press on the virtual keyboard is immediately followed by a key release event.

Screenshots

Desktop (please complete the following information):

  • OS and version: NixOS 25.05
  • Xorg version used: 1.21.1.18
  • Wayland version used: N/A

Additional context
Tested on both Android 16 (GrapheneOS) and Android 10 (MIUI 12).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions