GNOME 混淆了多個不同 Firefox 安裝的名稱

GNOME 混淆了多個不同 Firefox 安裝的名稱

我在 Debian Jessie 上使用 GNOME,並且安裝了不同的 Firefox:

  • 與 GNOME 捆綁在一起的 ESR 版本,我無法刪除它(因為它是一個依賴項)
  • 安裝的穩定版本特殊的 Debian 儲存庫
  • 來自 Mozilla 的二進位(安裝在/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.desktopfirefox-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”開頭,後來名稱更改為“Firefox ESR”

Firefox、「Firefox Debian」和 Firefox Developer Edition 會發生這種情況。有時甚至 Tor 瀏覽器也會獲得“Firefox ESR”標籤,這表明 GNOME 可能只是使用可執行檔名稱(firefox在本例中)來確定正在運行的程式...

那我該如何解決這個問題呢?

編輯:為了測試,我創建了一個符號連結/opt/firefox/firefox -> /opt/firefox/firefoxbin.real並在桌面文件中使用了該“新”文件,但這沒有改變任何內容,因此可執行文件名稱似乎並不重要。

編輯2:另外,我現在將StartupWMClassoffirefox-esr.desktopFirefox(在 中重複firefox.desktop)更改為FirefoxESR。之後,現在 GNOME 總是向我顯示「Firefox Debian」(保存在 中的名稱firefox.desktop),即使對於所有其他 Firefox 版本,甚至對於 ESR 版本也是如此。更改StartupWMClassforfirefox.desktop沒有幫助。

答案1

好吧,我不妨回答一下你的問題。

嘗試--class在 Firefox 中使用該標誌。如果它與相關.desktop文件匹配,則各個實例應該正確分組。例如,在您的 .desktop 檔案中:

Exec=firefox --class FirefoxDevel %u

它對我來說適用於相同的 Firefox 可執行文件,因此只要您的版本支援該標誌,您就應該可以繼續使用。

相關內容