我在 Debian Jessie 上使用 GNOME,并且安装了不同的 Firefox:
- 与 GNOME 捆绑在一起的 ESR 版本,我无法删除它(因为它是一个依赖项)
- 安装的稳定版本特殊的 Debian 存储库
/opt/firefox/...
从 Mozilla 网站下载的二进制文件(安装在)正如这里所解释的- 来自 Mozilla 的开发者版本(也作为二进制文件)(安装在
/opt/firefox-dev-edition
)
因此,其中/usr/share/applications
有不同的 .desktop 文件。
$ 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
所以所有文件基本上都有这样的布局:
[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
所以 ESR 版本有Name=Firefox ESR
, 当然也有X-GNOME-FullName=Firefox ESR Web Browser
。重要的是这些:
Exec=firefox-esr %u
Icon=firefox-esr
StartupWMClass=Firefox
我使用这个文件(以及 Mozilla 提供的图标文件)为开发者版本创建了一个桌面文件,如下所示:
Exec=/opt/firefox-dev-edition/firefox %u
Icon=firefoxdev
StartupWMClass=FirefoxDev
它firefox.desktop
是通过 mozilla.debian.net 安装创建的,如下所示:
Exec=/usr/lib/firefox/firefox %u
Icon=firefox
StartupWMClass=Firefox
为了创建二进制版本的 Firefox 的快捷方式,我复制firefox.desktop
并命名了它firefox-bin.desktop
。我更改了原始版本的NAME=
和,以将其与二进制版本区分开来,并更改为以下内容:X-GNOME-FullName=
firefox.desktop
firefox-bin.desktop
Exec=/opt/firefox/firefox %u
Icon=firefox
StartupWMClass=FirefoxBin
还有/usr/bin
不同的二进制文件:
$ 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
所以问题是GNOME 仍然会混淆这些 Firefox 安装。当我运行它们时,所有版本有时都会在顶部面板中标记为“Firefox ESR”。因此,当我在顶部面板中单击“Firefox”短暂打开它时,会显示“Firefox”,但几秒钟后它会更改为“Firefox ESR”,尽管我可以确认执行的 Firefox 安装是不是ESR 版本。
Firefox、“Firefox Debian”和 Firefox Developer Edition 会发生这种情况。有时,甚至 Tor 浏览器也会获得“Firefox ESR”标签,这表明 GNOME 可能只是使用可执行文件名称(firefox
在本例中)来确定正在运行的程序...
那么我该如何解决这个问题呢?
编辑:为了测试,我创建了一个符号链接/opt/firefox/firefox -> /opt/firefox/firefoxbin.real
并在桌面文件中使用了该“新”文件,但这没有改变任何内容,因此可执行文件名称似乎并不重要。
编辑2:另外,我现在将StartupWMClass
offirefox-esr.desktop
从Firefox
(在 中重复firefox.desktop
)更改为FirefoxESR
。之后,现在 GNOME 总是向我显示“Firefox Debian”(保存在 中的名称firefox.desktop
),即使对于所有其他 Firefox 版本,甚至对于 ESR 版本也是如此。更改StartupWMClass
forfirefox.desktop
没有帮助。
答案1
好吧,我不妨回答一下你的问题。
尝试--class
在 Firefox 中使用该标志。如果它与相关.desktop
文件匹配,则各个实例应该正确分组。例如,在您的 .desktop 文件中:
Exec=firefox --class FirefoxDevel %u
它对我来说适用于相同的 Firefox 可执行文件,因此只要您的版本支持该标志,您就应该可以继续使用。