GNOME verwechselt die Namen mehrerer verschiedener Firefox-Installationen

GNOME verwechselt die Namen mehrerer verschiedener Firefox-Installationen

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/applicationsbefinden 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 ESRund 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.desktopwird 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.desktopsie 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.desktopin dieses geändert:

Exec=/opt/firefox/firefox %u
Icon=firefox
StartupWMClass=FirefoxBin

Außerdem /usr/binsind 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.

Firefox startet als „Firefox“, der Name ändert sich später zu „Firefox ESR“

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 ( firefoxin 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.realund 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.desktopFirefoxfirefox.desktopFirefoxESRfirefox.desktopStartupWMClassfirefox.desktop

Antwort1

Nun gut, ich kann Ihre Frage auch gleich beantworten.

Versuchen Sie, das --classFlag in Firefox zu verwenden. Wenn es mit der relativen .desktopDatei ü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.

verwandte Informationen