AnotherTerm-docs

Another Term documentation (wiki replacement)

View this documentation on GitHub View the described project on GitHub GitHub all releases Get it on Google Play Support Project

Graphical sessions

Minimalistic Wayland protocol support


EXPERIMENTAL

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

Screenshot 1

Screenshot 2

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:

https://github.com/green-green-avk/AnotherTerm-scripts/tree/master/Xwayland

The startup profile

“Execute” field:

Example

/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:

See https://github.com/green-green-avk/AnotherTerm/blob/Wayland/app/src/main/java/green_green_avk/anotherterm/wlterm/WlTermServer.java for details.

Bugs and issues