PHPStorm (IntelliJ) and Xmonad

Another quick one as I’m sure I’ll need to do this on another machine.

When launching PHPStorm, I was presented with a grey box that did nothing. I realised that it was probably related to the fact that I’m running XMonad.

After a quick Google, I came across the the tried and tested setWMName "LG3D" that I’ve used previously (to make Source games run under Steam). Unfortunately, this wasn’t working for PHPStorm because I’m also using XMonad.Hooks.EwmhDesktops which nullifies the effect of setWMName.

This issue existing because Xmonad is a non-reparenting window manager, and we need to inform Java of that.

You can either specify the environment variable when launching phpstorm:

_JAVA_AWT_WM_NONREPARENTING=1 phpstorm.sh

Or you can have it loaded into the environment automatically. I did this by adding the following to ~/.profile

export _JAVA_AWT_WM_NONREPARENTING=1

Michael is a polyglot software engineer, committed to reducing complexity in systems and making them more predictable. Working with a variety of languages and tools, he shares his technical expertise to audiences all around the world at user groups and conferences. You can follow @mheap on Twitter

Thoughts on this post

Leave a comment?

Leave a Reply