First of all: no I'm not to lazy to search in google. I already tried a lot of things and that what all say should work does not work for me.

I have manjaro with gnome shell 3.18.1 installed. Inside gnome I have installed dash-to-dock extension. I have at least two java-applications: yEd and phpstorm. Both have the WM_CLASS sun-awt-X11-XFramePeer and a second WM_CLASS (jetbrains-phpstorm for phpstorm, yed I don't remember).

The Java version I'm using is the latest from oracle:

~# java -version
java version "1.8.0_66"

yEd and phpstorm are both installed via yaourt and it seems the desktop files are generated correctly. But anyway the only way I got the second icon from phpstorm removed (only phpstorm is in favs.) is by setting StartupWMClass=sun-awt-X11-XFramePeer. But then yEd is shown in the same starter.

I also tried to add both: StartupWMClass=sun-awt-X11-XFramePeer,jetbrains-phpstorm but of course, that does not work too...

I found a lot of articles to set the class correctly but jetbrains-phpstorm does not work (it was this before and xprop WM_CLASS shows this class too).

Is there something else that I'm missing?

  • have you checked this link
    – user137124
    Nov 13 '15 at 17:11

I see this also when using Java based apps.

I have tracked this issue down to Java not null terminating the WM_CLASS string. Mutter seems to return this invalid string as a result and gnome-shell uses this invalid string for matching the application name which obviously fails.

It is a bug in Java as the WM_CLASS string is supposed to be null terminated. I'm not sure what changed in mutter to expose this issue as it worked previously.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.