Java 应用程序在 dash/dock 中出现两次

Java 应用程序在 dash/dock 中出现两次

首先:不,我不想懒惰在谷歌中搜索。我已经尝试了很多事情,但所有说的应该有效的方法对我来说都不起作用。

我安装了 manjaro 和 gnome shell 3.18.1。在 gnome 内部我安装了 dash-to-dock 扩展。我至少有两个 java 应用程序:yEd 和 phpstorm。两者都有 WM_CLASS sun-awt-X11-XFramePeer 和第二个 WM_CLASS(jetbrains-phpstorm 用于 phpstorm,是的,我不记得了)。

我使用的Java版本是oracle的最新版本:

~# java -version
java version "1.8.0_66"

yEd 和 phpstorm 都是通过 yaourt 安装的,看起来桌面文件生成正确。但无论如何,我从 phpstorm 中删除第二个图标的唯一方法(只有 phpstorm 在收藏夹中。)是通过设置StartupWMClass=sun-awt-X11-XFramePeer.但随后 yEd 显示在同一个启动器中。

我也尝试添加两者:StartupWMClass=sun-awt-X11-XFramePeer,jetbrains-phpstorm但是当然,这也不起作用......

我发现很多文章可以正确设置类,但 jetbrains-phpstorm 不起作用(之前是这样,也xprop WM_CLASS显示了这个类)。

我还缺少其他东西吗?

答案1

我在使用基于 Java 的应用程序时也看到了这一点。

我已将此问题追溯到 Java not null 终止 WM_CLASS 字符串。 Mutter 似乎返回了这个无效的字符串作为结果,并且 gnome-shell 使用这个无效的字符串来匹配应用程序名称,这显然失败了。

这是 Java 中的一个错误,因为 WM_CLASS 字符串应该以 null 结尾。我不确定在抱怨中发生了什么变化来暴露这个问题,因为它以前是有效的。

相关内容