Ubuntu Linux: Wie kann ich das Doppelsymbol in der Taskleiste des Cairo Docks beim Aufrufen eines Java-basierten Programms (JAR) entfernen?

Ubuntu Linux: Wie kann ich das Doppelsymbol in der Taskleiste des Cairo Docks beim Aufrufen eines Java-basierten Programms (JAR) entfernen?

Ich möchte SoftSqueeze (ein in Java geschriebenes Softwareradio basierend auf der Logitech Squeezebox) in Ubuntu 20.04 mit Gnome 3 ein Symbol zuweisen.

Ich habe eine .desktop-Datei in ~/.loca/share/applications erstellt:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=SoftSqueeze
Icon=/opt/softsqueeze_3.9.2/icons/icon256.xpm
Exec=java -jar /opt/softsqueeze_3.9.2/SoftSqueeze.jar
Terminal=false
StartupNotify=false
StartupWMClass=SoftSqueeze
NoDisplay=false
MimeType=application/x-java-archive;application/java-archive;application/x-jar;
X-UnityGenerated=true

Danach wird die Anwendung mit dem richtig eingestellten Symbol (siehe oben Icon=) gefunden, aber wenn ich die Anwendung starte, wird stattdessen ein lustiger pixeliger Kopfhörer angezeigt.

Im Cairo Dock habe ich einen Launcher erstellt, indem ich einen neuen hinzugefügt und ihm den richtigen Befehl und das richtige Symbol gegeben habe. Es kam auch das falsche Symbol (ein lustiger pixeliger Kopfhörer).

Ich gehe davon aus, dass sich dieses „Kopfhörer“-Symbol möglicherweise im Behälter des Softsqueeze befindet.

Wie weise ich in Gnome 3 und im Cairo Dock das richtige Symbol zu?

Antwort1

Lösung: Man muss eine WM_CLASS zuweisen (im Cairo Dock „Klasse des Programms“ genannt, zu finden in den zusätzlichen Parametern des Desktop-Eintrags). Es ist so etwas wie eine Verbindung zwischen dem Fenstermanager und der Instanz des Programms selbst, daher wäre meine Erklärung, dass der Fenstermanager bei korrekt eingestellter Verbindung keine weitere Symbol-„Instanz“ erstellen muss (das doppelte Symbol, das in meinem Fall auch anders aussah (die Lösung sollte trotzdem auch funktionieren, wenn das Symbol dasselbe, aber doppelt ist), und sogar bei Python oder anderen skriptbasierten Programmen):

Für Gnome 3 verwende ich im Terminal den folgenden Befehl:

xprop | grep WM_CLASS

Ich klickte dann mit dem angezeigten Mauszeiger auf die bereits gestartete und im Vordergrund angezeigte Java-Anwendung und bekam im Terminalfenster den Namen der WM_CLASS angezeigt. Diesen muss ich im obigen .desktop-Eintrag als Eigenschaft „StartUpWMClass“ hinzufügen. Speichere die Datei und das Icon der Jar verschwindet.

In meinem Fall war es

StartupWMClass=org-titmuss-softsqueeze-Application

Das gleiche musst Du mit den Extra-Parametern Deines Desktopeintrags im Cairo Dock machen. Dann verschwindet das Icon "Kopfhörer" und Dein eingestelltes Icon ist das einzige Icon beim Starten der App.

Referenz: Launchpad-Bug-Beschreibung, die mir sehr dabei geholfen hat, die Lösung zu finden

verwandte Informationen