
Ich verwende GNOME auf Debian Jessie und habe verschiedene Firefox-Installationen:
- die mit GNOME gebündelte ESR-Version, die ich nicht entfernen kann (da es sich um eine Abhängigkeit handelt)
- die stabile Version installiert vondas spezielle Debian-Repo
- die Binärdateien von Mozilla (installiert in
/opt/firefox/...
), die von deren Website heruntergeladen wurdenwie hier erklärt - die Entwicklerversion (auch als Binärdateien) von Mozilla (installiert in
/opt/firefox-dev-edition
)
Darin /usr/share/applications
befinden sich daher verschiedene .desktop-Dateien.
$ ls -la firefox*
-rw-r--r-- 1 root root 3640 Okt 4 21:29 firefox-bin.desktop
-rw-r--r-- 1 root root 3,6K Okt 2 08:06 firefox.desktop
-rw-r--r-- 1 root root 2,2K Aug 31 22:57 firefox-dev.desktop
-rw-r--r-- 1 root root 3,8K Sep 22 08:29 firefox-esr.desktop
Alle Dateien haben also grundsätzlich dieses Layout:
[Desktop Entry]
Encoding=UTF-8
Name=Firefox
Name[bg]=Firefox
Name[ca]=Firefox
[...some more languages...]
Comment=Browse the World Wide Web
Comment[bg]=Сърфиране в Мрежата
Comment[ca]=Navegueu per el web
[...some more languages...]
X-GNOME-FullName=Firefox Web Browser
X-GNOME-FullName[bg]=Интернет браузър (Firefox)
X-GNOME-FullName[ca]=Navegador web Firefox
[...some more languages...]
Exec=<somePath> %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=<someIcon>
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;[...]
StartupWMClass=<someStartupClass>
StartupNotify=true
Die ESR-Version hat also Name=Firefox ESR
und natürlich auch X-GNOME-FullName=Firefox ESR Web Browser
. Die Dinge, die wichtig sind, sind diese:
Exec=firefox-esr %u
Icon=firefox-esr
StartupWMClass=Firefox
Ich habe diese Datei (und die von Mozilla bereitgestellten Symboldateien) verwendet, um eine Desktopdatei für die Entwickleredition zu erstellen, die folgendermaßen aussieht:
Exec=/opt/firefox-dev-edition/firefox %u
Icon=firefoxdev
StartupWMClass=FirefoxDev
Es firefox.desktop
wird bei der Installation von mozilla.debian.net erstellt und sieht wie folgt aus:
Exec=/usr/lib/firefox/firefox %u
Icon=firefox
StartupWMClass=Firefox
Um eine Verknüpfung für die Binärversion von Firefox zu erstellen, habe ich firefox.desktop
sie kopiert und benannt firefox-bin.desktop
. Ich habe das NAME=
und X-GNOME-FullName=
des Originals geändert firefox.desktop
, um es von der Binärversion zu unterscheiden, und es firefox-bin.desktop
in dieses geändert:
Exec=/opt/firefox/firefox %u
Icon=firefox
StartupWMClass=FirefoxBin
Außerdem /usr/bin
sind darin verschiedene Binärdateien enthalten:
$ ls -la firefox*
-rwxr-xr-x 1 root root 113 Sep 22 08:29 firefox
lrwxrwxrwx 1 root root 30 Sep 22 08:40 firefox-esr -> ../lib/firefox-esr/firefox-esr
lrwxrwxrwx 1 root root 22 Okt 2 08:17 firefox.real -> ../lib/firefox/firefox
Das Problem ist also, dassGNOME verwirrt diese Firefox-Installationen immer noch. Alle Versionen werden manchmal im oberen Fenster als „Firefox ESR“ gekennzeichnet, wenn ich sie ausführe. Wenn ich also auf „Firefox“ klicke, um es zu öffnen, wird im oberen Fenster kurz „Firefox“ angezeigt, aber ein paar Sekunden später ändert es sich zu „Firefox ESR“, obwohl ich bestätigen kann, dass die ausgeführte Firefox-Installationnichtdie ESR-Version.
Dies passiert mit Firefox, „Firefox Debian“ und Firefox Developer Edition. Manchmal erhält sogar der Tor-Browser die Bezeichnung „Firefox ESR“, was darauf hinweist, dass GNOME möglicherweise nur den ausführbaren Namen ( firefox
in diesem Fall) verwendet, um festzustellen, welches Programm ausgeführt wird ...
Wie kann ich das also beheben?
Bearbeiten:Zu Testzwecken habe ich einen symbolischen Link erstellt /opt/firefox/firefox -> /opt/firefox/firefoxbin.real
und diese „neue“ Datei in der Desktopdatei verwendet, aber dadurch wurde nichts geändert, sodass der Name der ausführbaren Datei keine Rolle zu spielen scheint.
Bearbeitung2:Zusätzlich habe ich jetzt das von StartupWMClass
( das in doppelt vorhanden war ) in geändert . Danach zeigt mir GNOME immer "Firefox Debian" (den in gespeicherten Namen ) an, sogar für alle anderen Firefox-Versionen, sogar für die ESR-Version. Das Ändern des für hat nicht geholfen.firefox-esr.desktop
Firefox
firefox.desktop
FirefoxESR
firefox.desktop
StartupWMClass
firefox.desktop
Antwort1
Nun gut, ich kann Ihre Frage auch gleich beantworten.
Versuchen Sie, das --class
Flag in Firefox zu verwenden. Wenn es mit der relativen .desktop
Datei übereinstimmt, sollten die verschiedenen Instanzen richtig gruppiert sein. Beispiel: in Ihrer .desktop-Datei:
Exec=firefox --class FirefoxDevel %u
Bei mir funktioniert es mit derselben ausführbaren Firefox-Datei. Solange Ihre Versionen dieses Flag unterstützen, sollte es also kein Problem geben.