
まず、いいえ。怠惰にGoogleで検索したくありません。私は多くのことを試しましたが、うまくいくべきだと言ったすべてが私にはうまくいきません。
Manjaroとgnome Shell 3.18.1をインストールしました。 gnomeの内部にdash-to-dock拡張をインストールしました。 yEdとphpstormという2つ以上のJavaアプリケーションがあります。どちらもWM_CLASS sun-awt-X11-XFramePeerと2番目のWM_CLASSを持っています(jetbrains-phpstormはphpstorm用です。はい、覚えていません)。
私が使用しているJavaバージョンは最新バージョンのoracleです。
~# java -version
java version "1.8.0_66"
yEdとphpstormはどちらもyaourt経由でインストールしましたが、デスクトップファイルが正しく作成されたようです。しかし、とにかく、phpstormから2番目のアイコンを削除する唯一の方法(phpstormだけがお気に入りです)は、settingsを介してですStartupWMClass=sun-awt-X11-XFramePeer
。ただし、yEd は同じ実行プログラムに表示されます。
私も両方を追加しようとしましたが、StartupWMClass=sun-awt-X11-XFramePeer,jetbrains-phpstorm
もちろんそれらの1つも動作しませんでした。
クラスを正しく設定した記事がたくさん見つかりましたが、jetbrains-phpstormが機能していませんでした(これまでもこれでしたが、xprop WM_CLASS
このクラスも表示されました)。
私が逃した他のものはありますか?
答え1
Javaベースのアプリケーションを扱うときも、この現象を見たことがあります。
私はこの問題をWM_CLASS文字列を終了するnull以外のJavaで追跡しました。 Mutterは結果的にこの無効な文字列を返すように見え、gnome-shellはこの無効な文字列を使用してアプリケーション名を一致させます。これは明らかに失敗します。
WM_CLASS文字列はnullで終わる必要があるため、これはJavaのバグです。以前は有効だったため、この問題を公開するために苦情がどのように変更されたのかわかりません。