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のソースコードを編集することによってのみ修正できると考え始めています...
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
と同じ値を入れてください。
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
答えではありませんが、私のデスクトップファイルをテストできると思います。両方のファイルがEclipse Marsをbuntu 15.04でGNOME 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"
それは本当だ