web-dev-qa-db-ja.com

StartupWMClassは、EclipseのWM_Classを変更しませんIDE

Eclipseの2つの異なるバージョンで作業しています。プラグイン間の競合のため、これらのバージョンの両方を個別にインストールすることにしました。1つの小さな問題を除いて完全に正常に動作します。私はUbuntu-Gnome(14.04 LTS)で作業しており、次のような1つのバージョンの.desktopファイルを編集しました。

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=Custom Eclipse 
Icon=custom-icon
Path=/opt/custom-Eclipse/
Exec=/opt/custom-Eclipse/custom-Eclipse
StartupNotify=true
StartupWMClass=custom-Eclipse

さて、私のバグは次のとおりです。

アプリケーションは期待どおりにカスタム名、WM_Classおよびアイコンで起動しますが、アプリケーションが何らかの理由でこれらの属性の変更を開始し終えると、gnome-Shellによって他のEclipseインストールとグループ化されます。

ターミナルにxprop WM_CLASSと入力してウィンドウをクリックすると、WM_CLASS(STRING) = "Eclipse", "Eclipse"が返されます。

編集: UnityデスクトップからGNOME Shellに最近切り替えたところ、Unityを使用してウィンドウがグループ化されませんでした。

別の編集: Ubuntuのバージョンを15.04に、gnome-Shellを3.14.4に更新しましたが、残念ながら問題が残っています。これは、Eclipseのソースコードを編集することによってのみ修正できると考え始めています...

4
David Wright

StartupWMClassは実際のアプリケーションウィンドウクラスを変更しませんが、アプリケーションウィンドウを識別するためにどのウィンドウクラスを使用するかをデスクトップマネージャーに通知するだけです。

問題は、バージョンに関係なくEclipseがEclipseをウィンドウクラスとして使用することです。

一度に複数のEclipseバージョンを使用し、アプリケーションのアイコンをお気に入りとして固定する機能を備えたウィンドウを正しくグループ化する場合は、使用しているパッケージのplugin.xmlを編集する必要があります。

Eclipse Java EE IDEの場合、plugin.xmlを正常に編集しました

<Eclipse-root>/plugins/org.Eclipse.epp.package.jee_<current-version>

プロパティを変更する

plugin/extension/product/@name
plugin/extension/product/property[@name=appName]/@value

(1つで十分かどうかわからない)好きな値に。 .desktopファイルにStartupWMClassと同じ値を入れてください。

3
Alessio Gaeta

StartupWMClassは、同じクラス名を持つウィンドウをグループ化するためにのみ使用されます。プログラムがgtkオプションをサポートしている場合、execコマンドでクラスを変更する必要があります。

アプリモードで実行しているブラウザでこれを試しましたが、現在、クラスオプションはchromeまたはクロムでは機能しないため、Epiphanyを使用しました。 Trelloデスクトップランチャーの例を次に示します。

[Desktop Entry]
Version=1.0
Type=Application
Exec=epiphany https://trello.com/ -a --profile=/epiphany/trello --class=trello
Icon=/MyIcons/trello.png
StartupNotify=true
Terminal=false
Name=Trello
StartupWMClass=trello
1
Generic

答えではありませんが、私のデスクトップファイルをテストできると思います。両方のファイルがEclipse Marsbuntu 15.04GNOME 3.16環境で開始します。

Tisデスクトップファイルでは、notグループ化された2つの実行中のインスタンスがあります。

cat ~/.local/share/applications/opt_Eclipse_cpp.desktop

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=Eclipse C++
Comment=Eclipse Integrated Development Environment
Icon=Eclipse
Exec=/opt/Eclipse-cpp/Eclipse/eclipse
StartupNotify=true
StartupWMClass=Eclipse-CPP

cat ~/.local/share/applications/opt_Eclipse.desktop

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=Eclipse JEE
Comment=Eclipse Integrated Development Environment
Icon=Eclipse
Exec=/opt/Eclipse-jee/Eclipse/eclipse
StartupNotify=true
StartupWMClass=Eclipse-Java

しかし

xprop WM_CLASS

与える

WM_CLASS(STRING) = "Eclipse", "Eclipse"

それは本当だ

1
A.B.