
Я использую GNOME на Debian Jessie и у меня есть разные установки Firefox:
- версия ESR, входящая в комплект GNOME, которую я не могу удалить (так как это зависимость)
- стабильная версия установлена сспециальный репозиторий Debian
- двоичные файлы от Mozilla (установлены в
/opt/firefox/...
), загруженные с их сайтакак объяснено здесь - версия для разработчиков (также в виде двоичных файлов) от 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 Browser получает метку "Firefox ESR", что указывает на то, что GNOME, возможно, просто использует имя исполняемого файла ( firefox
в данном случае), чтобы определить, какая программа запущена...
Так как же мне это исправить?
Редактировать:Для тестирования я создал символическую ссылку /opt/firefox/firefox -> /opt/firefox/firefoxbin.real
и использовал этот «новый» файл в файле рабочего стола, но это ничего не изменило, так что имя исполняемого файла, похоже, не имеет значения.
Редактировать2:Кроме того , я теперь изменил StartupWMClass
из (который дублировался в ) на . После этого теперь GNOME всегда показывает мне "Firefox Debian" (имя, сохраненное в ) даже для всех других версий Firefox, даже для ESR. Изменение for не помогло.firefox-esr.desktop
Firefox
firefox.desktop
FirefoxESR
firefox.desktop
StartupWMClass
firefox.desktop
решение1
Ну что ж, я, пожалуй, отвечу на ваш вопрос.
Попробуйте использовать --class
флаг в Firefox. Если он соответствует относительному .desktop
файлу, различные экземпляры должны быть сгруппированы правильно. Например, в вашем файле .desktop:
Exec=firefox --class FirefoxDevel %u
У меня это работает для того же исполняемого файла Firefox, так что если ваши версии поддерживают этот флаг, то все должно быть в порядке.