State of the Union: Eclipse on Wayland

What is Wayland?

Wayland is a display server protocol for Linux and Unix-like desktops. It is currently under active development and has seen many updates since its initial release in 2012. The eventual goal is for Wayland to fully replace the X Window System, which has been in use for decades.

Fedora 24 (to be released in May 2016) will have the Wayland set as the default display manager. This means a significant portion of Eclipse users will start using Eclipse on Wayland in the next year.

Does Eclipse run on Wayland?

Eclipse uses the SWT GTK port on Linux, specifically GTK3 for Wayland. The current state of the SWT GTK3 port on Wayland is usable, but too buggy for everyday use. Launching Eclipse, launching child Eclipses, and other launch related tasks are fully functioning at this point, however SWT (GTK3) has a few significant bugs that hinder day-to-day usage.

Empty WS

A screenshot of Eclipse on Wayland with an empty workspace.

 

Bugs

Sizing

The most common bugs on Wayland are sizing bugs. SWT’s internal sizing mechanism plays a large role in the overall appearance of an application, and influences things like drawing, re-sizing, coloring, etc. One of the more notable sizing bugs is that windows will be too small — cutting off widgets inside of them.

run_configurations

This is a screenshot of the “Run Configurations” window, which allows the user to set up launch configurations for various types of applications/test suites. The window has buttons in the bottom right corner for Apply, Run, and Cancel. These buttons are currently unreachable by the user. This manifests itself in just about any sub-window in Eclipse.

 

Re-sizing is also partially broken. This bug is more an annoyance than a blocker, but it could be a sign of bigger underlying problems. When re-sizing the main Eclipse window, it shrinks to be the size of a header bar, instead of keeping the full window open while it is being re-sized/moved.

Re-size bug

On Wayland, re-sizing the main window causes it to shrink to the size of a header bar.

 

Window bugs

Windows/Shells generally work pretty well on Wayland, with one general exception. All Wayland Shells have header bars, complete with title and close button, regardless of the style option specified by the user. SWT supports Shells without a header bar for sleek dialogs/windows where a header bar is not wanted or  needed. This is functioning on GTK2/X11 but needs to be fixed on Wayland.

Shell bug

The top Shell is one running on X11 with the SWT.NO_TRIM option enabled. The bottom Shell is running on Wayland with the same parameters specified.

Another small bug that happens occasionally is that the menu/toolbar disappears when minimizing and maximizing Eclipse. A simple re-size will fix this (like an Alt-Tab or dragging the corners), and does not happen often.

Broadway

A colleague of mine at the ORNL made a nice blog post and video about running Eclipse in a browser using the Broadway backend.

How can I help?

The biggest challenge right now is that Eclipse on Wayland does not have many people using it. Because of this, bug reporting against SWT on Wayland is inconsistent. One of the more efficient ways to find bugs in a piece of software is to encourage many different types of users to run your software and report any bugs they find during their work flow. This will allow SWT developers to pinpoint bugs that need fixing that otherwise might have been tricky to find and reproduce.

To file a bug, go to the Eclipse Bugzilla and file a new bug under Eclipse -> Platform -> SWT. You can add this bug as a blocker, which will list your bug as a dependency for the general Wayland support bug.

If you would like to contribute a patch to SWT, please consult the SWT GTK development wiki page.

 

 

 

 

 

 

Advertisements