Debian

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

  • October 6, 2016

我在 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.desktopmozilla.debian.net 安裝創建,是這樣的:

Exec=/usr/lib/firefox/firefox %u
Icon=firefox
StartupWMClass=Firefox

要為 Firefox 的二進製版本創建快捷方式,我將其複制firefox.desktop並命名為firefox-bin.desktop. 我更改了原始版本的NAME=and以將其與二進製版本區分開來,並更改為這個: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”開頭,後來更改為“Firefox ESR”

Firefox、“Firefox Debian”和 Firefox 開發者版會發生這種情況。有時甚至 Tor 瀏覽器也會得到標籤“Firefox ESR”,這表明 GNOME 可能只是使用執行檔名稱(firefox在這種情況下)來確定正在執行的程序……

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

**編輯:**為了測試,我創建了一個符號連結/opt/firefox/firefox -> /opt/firefox/firefoxbin.real並在桌面文件中使用了那個“新”文件,但這沒有改變,所以執行檔名似乎無關緊要。

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

好吧,我還不如回答你的問題。

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

Exec=firefox --class FirefoxDevel %u

它適用於相同的 firefox 執行檔,因此只要您的版本支持該標誌,您就可以使用了。

引用自:https://unix.stackexchange.com/questions/314338