Graphical sessions
Minimalistic Wayland protocol support
Available in development versions only:
The main problems with X applications on Android are low performance and lack of good touch screen input methods.
Current solution addresses both of them.
UI and screen input
Desktop size matches a phone screen size and follows any changes.
Fully functional screen keyboard / mouse.
Yes, you can drag with the middle mouse button and hold
Shift and/or Ctrl in the same time.
Blender-ready multi-touch screen input!
Note: The physical screen size is provided to the applications exactly as it is reported by Android. This means that some UI (Qt and Gtk at least) could look weird on a phone screen due to its unusual DPI ratio. Just tune up your widget frameworks / applications DPI settings.
How to use
Prerequisites
API
UNIX socket name (Linux abstract namespace):
green_green_avk.anotherterm[.variant].wlterm
Note: client UID check ID is enforced:
only processes of the same Android application & user are allowed to connect.
In order to implement international symbols input and clipboard integration as long as Xwayland does not support appropriate Wayland interfaces, the decision to use a dedicated helper was made. (I’m not a fan of an additional Xwayland fork support.)
The built-in helper protocol is accessible via pre-created special object with ID 2 (subject to change in future);
it is silently removed on the first access to the display (ID 1) object avoiding any interference with the Wayland protocol
(at least in terms of Xwayland implementation).
See https://github.com/green-green-avk/AnotherTerm/blob/Wayland/app/src/main/java/green_green_avk/anotherterm/wlterm/protocol/wl_own_helper.java
More information is to be added…
An example of the script set to start Xwayland inside PRoot:
Scripts to be added into the PRooted environment
https://github.com/green-green-avk/AnotherTerm-scripts/tree/master/Xwayland
The startup profile
“Execute” field:
![]()
/system/bin/sh \
"$DATA_DIR/proots/linuxcontainers-debian-buster/run" \
0:0 ./wlstart-X \
| \
/system/bin/sh \
"$DATA_DIR/proots/linuxcontainers-debian-buster/run" \
'' ./wlstart-WM
Or a [quick settings link] for Another Term.
Just replace the linuxcontainers-debian-buster with your installation directory.
Further documentation + scripts are about to come…
Implementation details
Only wl_shm interface is supported at the moment
with possible future support of zwp_linux_dmabuf_v1 interface / libmesa.
The only supported surface roles:
toplevel(wl_shell/wl_shell_surfaceandxdg_wm_base/xdg_surface/xdg_toplevel);cursor(wl_pointer).
See https://github.com/green-green-avk/AnotherTerm/blob/Wayland/app/src/main/java/green_green_avk/anotherterm/wlterm/WlTermServer.java for details.
