Starting from version 3.7.0, X410 supports running JetBrains products such as IntelliJ IDEA in their new UI without the native Windows title bar. However, JetBrains recently released a new version 2023.2.1 for some of their products and the Windows title bar is brought back for WSL users. If you are running JetBrains products over SSH X11 forwarding from a regular Linux machine, they run cleanly without the title bar as expected.

It seems JetBrains was trying to fix the following problem and ended up penalizing WSL users.

Menu bar missing on all windows except one on tiling WM / under WSLg

While investigating the problem for X410, we found the following snippets in IntelliJ IDEA Community edition open-source codes.

internal val hideNativeLinuxTitleSupported: Boolean
    get() = SystemInfoRt.isXWindow
            && ExperimentalUI.isNewUI()
            && JBR.isWindowMoveSupported()
            && !X11UiUtil.isWSL()
            && !X11UiUtil.isTileWM()
public static boolean isWSL() {
    return SystemInfoRt.isXWindow && System.getenv("WSL_DISTRO_NAME") != null;
}

As you can see from the codes, IntelliJ IDEA specifically checks for WSL and disables its title bar hiding feature regardless of the X server it runs on. Hence, this issue cannot be fixed from X410. But fortunately, you should be able to trick IntelliJ IDEA by removing the environment variable it uses for identifying WSL, i.e., WSL_DISTRO_NAME, before launching it. You can execute the following command to remove the variable.

unset WSL_DISTRO_NAME




Unsetting WSL_DISTRO_NAME environment variable should also work for other JetBrains products as they share their source codes. Since WSL_DISTRO_NAME is rarely used in WSL, removing it should have minimal impact on running other Linux GUI apps. You can of course also restore it back to its original value once your JetBrains product is started.

Happy coding!

Best regards,
X410 Team
Choung Networks

Share This Story, Choose Your Platform!