Beim Starten von Java-Programmen (wie IntelliJ IDEA und Crashplan) im Unity-Launcher von Natty werden doppelte Symbole angezeigt (siehe Abbildung). Für IntelliJ habe ich die .desktop-Datei erstellt, für Crashplan wird die .desktop-Datei mit der Anwendung geliefert. Gibt es etwas, das in den .desktop-Dateien (oder anderswo) geändert werden kann, um dies zu verhindern? Ich konnte nicht einen Fehlerbericht für die Einheit selbst , sondern Programme wie Gnome-Do / Docky haben finden Bug Berichte und interne Änderungen an ihren Anwendungen machen musste , dies zu verhindern.
In diesem Bild ist das erste Symbol das aus der .desktop-Datei erstellte und das zweite Symbol nach dem Start. Das zweite Symbol verschwindet beim Schließen der Anwendung.
Benutzerdefinierte IntelliJ .desktop-Datei
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=/opt/idea/bin/idea128.png
Name[en_US]=IntelliJ IDEA
Exec=/opt/idea/bin/idea.sh
Name=IntelliJ IDEA
Icon=/opt/idea/bin/idea128.png
StartupNotify=true
Crashplan bieten .desktop-Datei
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=CrashPlan
Categories=;
Comment=CrashPlan Desktop UI
Comment[en_CA]=CrashPlan Desktop UI
Exec=/usr/local/crashplan/bin/CrashPlanDesktop
Icon=/usr/local/crashplan/skin/icon_app_64x64.png
Hidden=false
Terminal=false
Type=Application
GenericName[en_CA]=
Antworten:
Fügen Sie Ihrer .desktop-Datei eine StartupWMClass- Zeichenfolge hinzu. Verwenden Sie den
xprop
Befehl, um diese Klasse abzurufen. Beispielsweise :Weitere Details in diesem Thread (dies betrifft AWN, funktioniert aber auch für Unity)
quelle
StartupWMClass=CrashPlan
aber IntelliJ brauchte ein bisschen mehr Überzeugungsarbeit. Ich musste Informationen von diesem ( blog.jteam.nl/2011/01/09/… ) verwenden, um es richtig zum Laufen zu bringen.-javaagent:agent.jar=IntelliJ_IDEA
auf die Datei.jetbrains-idea-ce
für die Community Edition. PS, vielen Dank Tim, 451F.jetbrains-idea
es sich also um das Einzigartige handelt, das Sie möchten, verwenden Sie es anstelle vonsun-awt-X11-XFramePeer
Für Intellij Idea 11 unter Ubuntu 11.10 muss in der .desktop-Datei der Idee folgende Zeile hinzugefügt werden:
quelle
Ich konnte dieses Problem für SQLDeveloper beheben, bei dem es sich um ein Java-Programm handelt:
Mit xprop (und anschließendem Klicken auf das SQLDeveloper-Fenster) habe ich die folgende Ausgabezeile gefunden:
Basierend auf den obigen Kommentaren und in https://bugs.launchpad.net/unity/+bug/757991 habe ich meiner lokalen Datei sqldeveloper.desktop die folgende Zeile hinzugefügt:
quelle
Ich habe das Update für Eclipse 4.x und 3.x hier dokumentiert .
Diese Lösung ist für glx-dock, auch bekannt als Cairo-dock, aber funktioniert für alle Taskleisten, die darauf angewiesen sind
WM_CLASS
.Im Falle von Eclipse ist der Start ebenfalls ein zweistufiger Prozess.
Grundsätzlich müssen Sie die für Ihre Eclipse-Version zutreffende Eclipse-Branding-Datei plugin.xml identifizieren und die
application name
Eigenschaft ändern . Wenn das Hauptfenster der Workbench erstellt wird, ruft Jface die SWT aufDisplay.setName
und dies setzt Sie auf WM_CLASS. Wenn dies die deklarierte WM_CLASS für Ihren Launcher ist, finden laufende Instanzen ihren Dock-Launcher.Vergiss nicht, es
eclipse -clean
beim ersten Mal zu tun .Das Durchblättern wurde ebenfalls stark verbessert.
quelle
IntelliJ IDEA wird von einem Skript gestartet ($ IDEA_HOME / bin / idea.sh). Wenn der Starter angeklickt wird, wird das Skript ausgeführt, das eine ausführbare Java-Datei startet und sofort beendet. Unity stellt fest, dass die von Ihnen gestartete Anwendung (das Skript) bereits beendet wurde. Daher ist auf dem ersten IDEA-Symbol keine Anzeige zu sehen. Es gibt jedoch eine andere Anwendung (von der vom Launcher gestarteten ausführbaren Datei), die derzeit ausgeführt wird. Aus diesem Grund wird das zweite IDEA-Symbol angezeigt.
Ich hoffe, dass das Update für dieses Verhalten bald implementiert wird - aber es ist nicht sehr einfach. Es müsste eine von Hand gepflegte Listenzuordnung zwischen Fenstern und Startern geben, denen sie zugeordnet werden sollten.
quelle
Bei CrashPlan können Sie versuchen, die App-Datei CrashPlan.desktop nach / usr / share / applications zu verschieben. Nur Apps, die dort leben, können im Launcher gesperrt werden.
Verwenden Sie dann den Bindestrich, um CrashPlan auszuführen.
Möglicherweise können Sie mit IntelliJ IDEA etwas Ähnliches tun. Da jedoch ein Skript ausgeführt wird, bin ich mir nicht sicher, ob es ordnungsgemäß funktioniert.
quelle
Keine der anderen Antworten funktionierte für mich, aber am Ende fand ich tatsächlich eine noch einfachere Lösung.
Öffnen Sie Intellij-Idea und finden Sie in der oberen Leiste das Dropdown-Menü Tools . Wählen Sie dann die Schaltfläche Create Desktop Entry . Es wird ein ordnungsgemäß funktionierender
.local/share/applications
Desktop- Eintrag in Ihrem Ordner erstellt, der von der verwendeten Desktop-Umgebung erkannt werden sollte. Es wird kein doppeltes Symbol erstellt, und Sie können das Symbol sogar ändern, wenn Sie möchten.Leider
nosplash
bringt die Verwendung des Arguments das Problem mit doppelten Symbolen zurück, sodass ich nicht sicher bin, wie ich das beheben soll.quelle
IntelliJ IDEA 2017.02.05 unter Ubuntu 17.04 (mit Numix Icons) Nach der Installation hatte ich die Linie zu ändern ,
StartupWMClass=jetbrains-idea
umStartupWMClass=jetbrains-idea-ce
in dem Programm der .desktop - Datei , so dass das doppelte Symbol verschwinden würde.Ich vermute, "ce" steht für die Community Edition, die ich besitze, daher weiß ich nicht, warum der Wert dieser Eigenschaft in der .desktop-Datei ursprünglich nicht das Suffix "ce" hatte.
quelle