Wayland Support Preview In 2024.2 | The JetBrains Platform Blog (2024)

IntelliJIntelliJ IDEAJetBrains Runtime

Wayland Support Preview In 2024.2 | The JetBrains Platform Blog (1)

Maxim Kartashev

We are delighted to announce that, starting with the 2024.2 Early Access Program (EAP), IntelliJ-based IDEs will offer preliminary support for the Wayland display server protocol on Linux, including Windows Subsystem for Linux a.k.a. WSLg.

On Linux, IntelliJ-based IDEs were using exclusively the X11 protocol and an X server to show their user interface (UI), even if you were running a Wayland-based desktop. All Wayland servers include an X server implementation (XWayland) for backward compatibility with applications that aren’t ready to work with Wayland directly.

Starting with the 2024.2 EAP, however, users can run IntelliJ-based IDEs on Wayland natively by adding:

-Dawt.toolkit.name=WLToolkit

to their VM options (Help | Edit Custom VM Options…). This will completely bypass the XWayland compatibility layer and provide all the benefits that Wayland has to offer.

This initial support aims to provide the foundational functionality necessary for operating an IDE on Wayland. While we have made significant progress, it’s important to note that there are features still in development and known bugs yet to be fixed.

X11 or Wayland?

It’s not always possible to tell visually whether your IntelliJ-based IDE is running through X11 or natively on Wayland. One way to be sure is by using the About dialog (`Help | About`) to obtain full system information. Just click on the Copy and Close button. Towards the top of the copied text the toolkit’s name will be listed as follows:

Toolkit: sun.awt.wl.WLToolkit

WLToolkit means that the IDE is talking directly to the Wayland server, while XToolkit – as the name would imply – means that the X11 protocol is used.

The same information is also available in idea.log; for example:

INFO - #c.i.p.i.b.AppStarter - toolkit: sun.awt.wl.WLToolkit

It goes without saying that this release includes the essential features that make a graphic user interface functional like showing the UI, typing text, moving the mouse pointer around, etc. Some features are worthy of mention.

Sharp Picture

The top complaint about running IntelliJ-based IDEs on modern Wayland desktops was the blurry picture you’d get when you scaled your desktop to a fractional value, not an integer multiple of 100%, e.g. 150% or 215%. While this wasn’t an inherent problem with X11, Wayland addresses fractional scale in a more robust way, and our new graphical subsystem supports any desktop scale, including fractional.

This area of Wayland is still under development, with improvements being made both on the protocol side and in implementations (such as KWin, Mutter, etc). We follow this work closely and will make the necessary updates to our graphical subsystem as the situation evolves.

WSLg

On the WSLg side, switching to Wayland will mean no more unsightly window decorations imposed by the X server (something many people complained about), since the X server will no longer be involved in any stage of the operations.

Responsive UI

The current implementation delivers a decent frames-per-second performance, which is mainly visible upon scrolling or resizing, as that’s when the window needs to be updated dozens or even hundreds of times per second. At the same time, when things are quiet and only the cursor is blinking, the graphical subsystem will not drain your battery by refreshing the entire screen at 60 FPS. Wayland allows both high-performance screen updates and slow pace periods to coexist in one application, and our graphical subsystem takes full advantage of that.

The work in this area is far from over, and utilization of Vulkan is expected to bring even better performance.

Better Multi-Monitor Support

Wayland generally handles window placement so that the application doesn’t have to. This is a paradigm change for many graphical applications, IntelliJ-based IDEs included. Among the positive effects of this change is better handling of popups and other utility windows that should now appear on the correct monitor and not cross the monitor boundary regardless of how complex your setup is. This used to be a somewhat weak point with modern systems that allowed different scales to be specified for each monitor and that used to cause a lot of confusion when running through the XWayland compatibility layer.

Despite the advancements, full parity with X11 features has yet to be achieved. There are several areas listed below that we focus on in the near term.

Input Methods

Input methods are essential for developers who work with multiple languages and scripts. They provide a standardized way to enter characters that aren’t readily available on a standard keyboard.

In 2024.2 EAPs, no input methods are supported on Wayland. Since there is no working around this limitation, this particular feature is at the very top of our priorities list.

Note, however, that Wayland already supports languages that don’t quite require the sophistication of input methods.

Native Window Decorations

There are still a few utility windows in IntelliJ-based IDEs that are decorated by the OS, such as, for example, the About dialog or the differences window. For the moment, when running on Wayland those decorations (by which we essentially mean the window’s title bar and its buttons) are painted by the JetBrains Runtime and do not adhere to the desktop’s theme.

At a later date, we plan to implement native decoration support, similar to what is available currently with X11. In the meantime, the decorations will follow the overall desktop’s dark/light style, for those desktop environments where such notifications are available.

Drag And Drop

In the 2024.2 release cycle, drag and drop within the IDE or between the IDE and other applications will not be supported on Wayland. In many cases, you’ll be able to just copy and paste as a work-around.

Stability

As with any major platform shift, there are bound to be some rough edges. We review and prioritize incoming issues on a daily basis so that the most important issues can be addressed as quickly as possible.

We deeply appreciate our users’ patience and enthusiasm. Many have already shared their feedback about IntelliJ-based IDEs on Wayland, and this has been instrumental in delivering a robust preview with many “paper cuts” having already been dealt with.

Your insights and experiences are invaluable to us. By reporting issues and suggesting improvements, you can directly influence the development journey and help us refine Wayland integration in IntelliJ-based IDEs. We encourage you to create new issues on YouTrack and/or upvote the existing ones.

Get started with the 2024.2 EAP today and join us in shaping the future of IntelliJ-based IDEs on Wayland!

Stay tuned for more updates and improvements in our upcoming releases.

IntelliJ IDEA JBR JetBrains Runtime Linux Wayland

  • Share
  • Facebook
  • Twitter
  • Linkedin

Prev post Flexible Trial Periods Now Available for Plugins on JetBrains MarketplaceBusy Plugin Developers Newsletter – Q2 2024 Next post

Subscribe to JetBrains Platform updates

Wayland Support Preview In 2024.2 | The JetBrains Platform Blog (2)

Wayland Support Preview In 2024.2 | The JetBrains Platform Blog (2024)

FAQs

Does IntelliJ Idea support Wayland? ›

We are delighted to announce that, starting with the 2024.2 Early Access Program (EAP), IntelliJ-based IDEs will offer preliminary support for the Wayland display server protocol on Linux, including Windows Subsystem for Linux a.k.a. WSLg.

What is a Wayland compositor? ›

The Qt Wayland Compositor is a module that provides convenient and powerful QML and C++ APIs for developing custom display servers based on the Wayland protocol. The display server, often called a compositor, displays content from client applications that support the Wayland protocol.

Does Java support Wayland? ›

While Wayland support is far from complete, the already existing features allow us to run some Java Swing and AWT applications on Wayland. In this blog post, we'll delve into these advancements and explore some technical challenges posed by this novel approach to the display server.

Is Wayland ready for production? ›

>Wayland won't be production ready in a long time. With NVIDIA it will never be production ready because NVIDIA doesn't support the Linux standards for Wayland and they don't allow developers to write/use good open drivers and all functionality.

Which distro has Wayland as default? ›

Fedora uses Wayland as the default for KDE desktop session starting with version 34 (released 27 April 2021) Ubuntu shipped with Wayland by default in Ubuntu 17.10 (Artful Aardvark). However, Ubuntu 18.04 LTS reverted to X.Org by default due to several issues. Since Ubuntu 21.04, Wayland is the default again.

Which is better, Wayland or Xorg? ›

The biggest argument for wayland had always been that Xorg needs lots of "extensions" for tasks like transparency and / or compositing while wayland doesn't. This is true only to the extent that wayland doesn't need extensions for those tasks but it does for nearly every other thing that is taken for granted in xorg.

What is Wayland good for? ›

Wayland removes the need for the X server by enabling the compositor and application to talk directly to each other. A compositor is a window manager that provides an off-screen buffer for each window. The window buffers into an image, or other graphical effects such as animation, and writes it to the display memory.

Which is faster, Wayland or X11? ›

All I can say is I've noticed much better performance using Wayland on my PC but it may be different for you. I mentioned in a post earlier that under X11 I could barely play Divinity Original Sin 2 with the minimum settings however on wayland I am able to play it comforatbly with medium settings.

What doesn t work in Wayland? ›

Wayland breaks screen-sharing and remote desktop applications. Wayland breaks Window Management - which is why Wayland is not on XFCE or many other Desktop Environments.

Why nvidia does not support Wayland? ›

It's just that the display server (X server or wayland compositor) uses a set of agreed upon kernel APIs (DRI) to render and display things on the screen, which Nvidia refuses to fully implement (GBM vs. EGLStreams). The X server has extra code to support this, but many wayland compositors don't.

Can Nvidia run with Wayland? ›

The NVIDIA EGL implementation tries to detect what platform it is running on at runtime (e.g., Wayland, etc.). It is possible to bypass this detection by setting the EGL_PLATFORM environment variable. For Wayland, this variable must be set to "wayland".

What language does IntelliJ IDEA support? ›

You can use IntelliJ IDEA Ultimate to build applications with JavaScript, TypeScript, React, Vue, Angular, Node.js, and other related technologies. You can expect the same advanced coding assistance that you are used to when working with Java in all of them.

Which apps support Wayland? ›

Apps with 'Wayland Support' feature
  • Fedora. Fedora creates an innovative, free, and open source platform for hardware, clouds, and containers that enables software developers and community members to build tailored solutions for their users. ...
  • Barrier. ...
  • Input Leap. ...
  • Kooha. ...
  • Sway. ...
  • Enlightenment. ...
  • foot. ...
  • Maui Shell.

What operating systems are supported by IntelliJ IDEA? ›

IntelliJ IDEA is a cross-platform IDE that provides consistent experience on the Windows, macOS, and Linux operating systems. IntelliJ IDEA is available in the following editions: Community Edition is free and open-source, licensed under Apache 2.0.

Should you use Wayland or Xorg? ›

Why Use Wayland? The primary benefit of using Wayland is client-side rendering. This approach is more modern and cleaner than Xorg. Wayland removes the middleman client/server method, which allows an application to communicate directly with the compositor.

Top Articles
Latest Posts
Article information

Author: Kerri Lueilwitz

Last Updated:

Views: 6584

Rating: 4.7 / 5 (47 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Kerri Lueilwitz

Birthday: 1992-10-31

Address: Suite 878 3699 Chantelle Roads, Colebury, NC 68599

Phone: +6111989609516

Job: Chief Farming Manager

Hobby: Mycology, Stone skipping, Dowsing, Whittling, Taxidermy, Sand art, Roller skating

Introduction: My name is Kerri Lueilwitz, I am a courageous, gentle, quaint, thankful, outstanding, brave, vast person who loves writing and wants to share my knowledge and understanding with you.