Call for Discussion : New Project to support the Wayland display server on Linux

Philip Race philip.race at oracle.com
Wed Jul 7 13:24:03 UTC 2021


For a number of years the Linux community has been working on a complete 
replacement for the 1980's era X11 desktop display server protocol
with new protocols and libraries that support client-side rendering and 
a compositing desktop windowing system.
This work is being done under the auspices of the Wayland project [1] 
and there is a reference
implementation of a Wayland compositor called "Weston".

A new client written for  the Wayland desktop has no dependency at all 
on X11, but Wayland also provides a compatibility
mode where the X.org X11 server runs along side Wayland, so that 
thousands of X11 applications can continue to run.

Presently all distros that ship the Wayland server, also still ship the 
pure X11 server and the user can select
which one to use on the login screen. However there will come a time 
when Wayland is the only choice and
already Wayland is the default on RHEL 8, OL 8, Ubuntu 21.04 and I am 
sure others too.

At that time Java for Linux will "mostly" run via the X11 compatibility 
layer, but would not pass the JCK,
since some important APIs,  notably those of the java.awt.Robot class 
[2] will fail with Wayland.
We need to solve this so that pure Java and applications which mix Java 
and X11 APis can work.

But even then this would mean Java on Linux is not a first class desktop 
citizen, which is not desirable for
the long term, given the importance of Linux to many Java developers as 
well as to active
individual and corporate contributors to the JDK project.

Indeed there have already been informal discussions for some time with 
various parties that have expressed
interest in helping towards the outcome of supporting Wayland

Consequently we expect quite shortly to propose an OpenJDK project that 
will consider the goals of
- a short to medium term solution for JDK running on Wayland in X11 
compatibility mode
- a medium to long term solution for JDK running as a native Wayland 
client.

There are some unknowns and questions, such as what are the options for 
supporting Robot ?
What other support is missing ? What platform APIs should the 
implementation  use ?
How does a native Wayland solution interoperate with OpenJFX ?


Comments, expressions of interest etc are welcome.


-Phil Race, for the Java client groups.


[1] : https://wayland.freedesktop.org/
[2] : 
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/Robot.html 



More information about the discuss mailing list