handWavey
handWavey copied to clipboard
Better wayland support
Background
Currently, wayland support is achieved via VNC, which is not a good user-experience (slow, laggy, and requires manual configuration by the user). This ticket is for getting native wayland support out of the box.
Success
- General
- [ ] handWavey works in wayland without needing something like VNC/RDP/Synergy etc.
- If configuration is needed for the user to enable it:
- [ ] Make it as easy as possible to get it going.
- [ ] Document what configuration is needed.
- Testing: All of the following should still work out of the box:
- [ ] Windows.
- [ ] X
- [ ] MacOS.
- Follow-up
- [ ] Create a ticket for auto-detecting wayland so that the correct control mechanism can be used.
Necessary functionality of the solution
- Mouse
- Set mouse location.
- Set button down.
- Set button up.
- Scroll +/-.
- Keyboard
- Set key down.
- Set key up.
Possible leads
libei
libei looks like the most promising possibility so far.
SWT
This comment suggests SWT:
SWT already supports Wayland as it uses GDK/GTK.
- Possible implementation? - Doesn't look like it, but maybe.
-
org.eclipse.swt.widgets.Display.setCursorLocation(...) - Sounds promising.
- setCursorLocation.
- Display documentation.
Project Wakefield
Project Wakefield is the recently established OpenJDK initiative to implement native Wayland support within Java.
OpenJDK developers have acknowledged this will "take years to fully complete and deliver" their native Wayland support.
I don't know how long it will be until keyboard and mouse control will arrive.
uinput
OpenJDK 19
As at 2022-03-18; OpenJDK 19 is not able to control the mouse and keyboard via AWT in Walyand.