Verschiedene Icons für verschieden gestartetes Programm

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
geier22

Verschiedene Icons für verschieden gestartetes Programm

Beitrag von geier22 » 30.11.2017 12:27:06

Ich habe mal meinen Beitrag aus diesen Thread hierhin gepackt, um das weiter zu verfolgen.
Alter Thread:
viewtopic.php?f=28&t=166940&start=45#p1154723

Ausgangspunkt :

Ich habe einen Browser (in meinem Fall Waterfox), den ich einmal normal starte ein anderes Mal mit firejail in einem extra Verzeichnis. Die Programmdateien für Waterfox werden von Firejail in das vorher angelegte Verzeichnis kopiert, auch bei Updates..
Für beide Browser habe ich Desktop-Dateien mit unterschiedlichen Icons.
Die beiden Desktop-Dateien dafür habe ich von ~/local/share/applications nach /usr/share/applications verschoben, in der Hoffnung, dass dadurch die unterschiedlichen Icons auch in die Taskleiste übernommen werden.

Die Desktop-Dateien für den normalen Waterfox

Code: Alles auswählen

[Desktop Entry]
Version=1.0
Type=Application
Name=WATERFOX
Icon=/opt/waterfox/browser/chrome/icons/default/default48.png
Exec=/usr/bin/waterfox
NoDisplay=false
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml_xml;image/webp;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;
StartupNotify=false
Terminal=false
die Desktop Datei für "Waterfox_Crypt:

Code: Alles auswählen

[Desktop Entry]
Version=1.0
Type=Application
Name=Waterfox_Crypt
Name[de_DE]=Waterfox_Crypt
Icon=/usr/share/icons/Waterfox_Crypt.png
Exec=firejail --private=~/.privat-browser/waterfox/ --net=eth0 --ip=192.168.0.75 --dns=8.8.8.8  /opt/waterfox/waterfox -no-remote
NoDisplay=false
Categories=Network;
StartupWMClass=Waterfox_Crypt
StartupNotify=false
Terminal=false
Leider funktioniert das aber nicht in der Taskleiste:
.
Sowohl die Xfce- Leiste als auch Docky bzw. Cairo Dock zeigen für Waterfox (Firefox dto) immer das selbe Symbol in der Task-Leiste an.

Bei mir läuft z.B. gerade 2x Waterfox.
PID 4542 ist mein Waterfox "crypto",
PID 27319 ist der Normale

Code: Alles auswählen

27319 hans      20   0 2473412 578440 205196 S   7,6  3,5   0:56.40 Waterfox                                                             
 4542 hans      20   0 2034188 329860 140288 S   6,3  2,0   0:07.99 Waterfox     
Ich kann im Cairo Dock dem jeweiligen Programm zwar ein anderes Symbol als das in dem Starter zuweisen,
jedoch ist das dann für alle Instanzen des Programms gleich - auch wenn, wie im obigen Beispiel firejail das Programm startet.
Beide Programme haben die gleiche WM_CLASS, obwohl ich der Hoffnung war, dies bei "crypto geändert zu haben. --> StartupWMClass=Waterfox_Crypt

Code: Alles auswählen

hans@sparkyxfce:~/Schreibtisch$ xprop | grep WM_CLASS
WM_CLASS(STRING) = "Navigator", "Waterfox"
hans@sparkyxfce:~/Schreibtisch$ xprop | grep WM_CLASS
WM_CLASS(STRING) = "Navigator", "Waterfox"
hans@sparkyxfce:~/Schreibtisch$ 
Wenn ich die im folgenden zitierte Anleitung richtig verstehe, müsste man also nur die WM_CLASS ändern, was
durch den Ausdruck StartupWMClass ja wohl nicht passiert.
Aus:
http://glx-dock.org/ww_page.php?p=Tutor ... %20Symbole
How to name the image ?
Each icon must have the same name as the *class* for the relevant application. The class of an application is most of the time equal to its name, but not always.
To find the class for an application, make sure it's open, and then go to a terminal and type
xprop | grep WM_CLASS

This will bring up a little pointer, which you use to click on the relevant window. You'll get something like this in the terminal :
WM_CLASS(STRING) = "nautilus", "Nautilus"
Die WM_CLASS scheint also irgendwoher anders bezogen zu werden.

Frage: Ist es möglich dies zu ändern, und - wenn ja- wo.

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Verschiedene Icons für verschieden gestartetes Programm

Beitrag von MSfree » 30.11.2017 13:51:31

geier22 hat geschrieben: ↑ zum Beitrag ↑
30.11.2017 12:27:06
Die beiden Desktop-Dateien dafür habe ich von ~/local/share/applications nach /usr/share/applications verschoben, in der Hoffnung, dass dadurch die unterschiedlichen Icons auch in die Taskleiste übernommen werden.
Die Icons, die in der Taskleiste angezeigt werden, sind fest in die Applicationen (hier Waterfox) einkompiliert und lassen sich nicht (bzw. nur im Sourcecode und neukompilieren) ändern.

geier22

Re: Verschiedene Icons für verschieden gestartetes Programm

Beitrag von geier22 » 30.11.2017 16:37:57

MSfree hat geschrieben: ↑ zum Beitrag ↑
30.11.2017 13:51:31
Die Icons, die in der Taskleiste angezeigt werden, sind fest in die Applicationen (hier Waterfox) einkompiliert und lassen sich nicht (bzw. nur im Sourcecode und neukompilieren) ändern.
Das kann dann aber nur die WM_CLASS sein. Wenn ich z.B. das Icon Thema ändere, ändert sich auch das Symbol in der Taskleiste (ich meine damit einen laufenden Task).
Sher ärgelich, wäre schön, wenn man das ändern könnte.

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Verschiedene Icons für verschieden gestartetes Programm

Beitrag von MSfree » 30.11.2017 16:48:50

Wenn du das mit rohen X11-Funktionen machen willst, ist es hier beschrieben:

https://specifications.freedesktop.org/ ... 01s05.html

Toolkits wie GTK und Qt bieten entsprechende Funktionswrapper

geier22

Re: Verschiedene Icons für verschieden gestartetes Programm

Beitrag von geier22 » 30.11.2017 17:59:26

Danke für den Tipp, aber das übersteigt wohl doch mein Wissen.
Wie ich das oberflächlich verstehe, müsste ich den _NET_WM_NAME ändern.
Ausgabe von xprop: NoPaste-Eintrag40073
die WM_CLASS leitet sich wohl daraus ab, und ist in der Desktop Datei vollkommen wirkungslos. :|
Das Problem ist ja, dass das 2.Profil von Waterfox (Waterfox_Crypt) in einem separaten Verzeichnis ist (~/.privat-browser/waterfox/)
Die Programmdateien -auch die Updates- werden von firejail dort rein kopiert. Selbst wenn es mir gelingen würde, da
etwas zu ändern, würde es wohl beim nächsten Update überschrieben werden.
Ich hab keinen Ahnung wie ich das machen sollte.
Von der Logik her - um es dauerhaft zu machen - müsste wahrscheinlich die Desktop Datei erst mal ein Skript aufrufen, das was ändert und im Nachhinein dann Waterfox mit dem Firejail- Befehl gestartet werden.
Das ist mir zu kompliziert, wenn es da nicht irgendwelche relativ einfach zu bedienende Tools gibt. :| :roll:

Antworten