그놈은 여러 다른 Firefox 설치 이름을 혼동합니다.

그놈은 여러 다른 Firefox 설치 이름을 혼동합니다.

저는 Debian Jessie에서 GNOME을 사용하고 있으며 다른 Firefox 설치가 있습니다:

  • GNOME과 함께 번들로 제공되는 ESR 버전(종속성이므로 제거할 수 없음)
  • 안정적인 버전은 다음에서 설치되었습니다.특별한 데비안 저장소
  • 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.desktopmozilla.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

그래서 문제는 그거야그놈은 여전히 ​​이러한 Firefox 설치를 혼동하고 있습니다.. 모든 버전은 실행할 때 상단 패널에 "Firefox ESR"로 표시되는 경우가 있습니다. 그래서 "Firefox"를 클릭하여 잠시 열면 상단 패널에 "Firefox"가 표시되지만 몇 초 후에 실행된 Firefox 설치가 다음과 같은 것을 확인할 수 있지만 "Firefox ESR"로 변경됩니다.~ 아니다ESR 버전.

Firefox는 "Firefox"로 시작하고 나중에 이름이 "Firefox ESR"로 변경됩니다.

이는 Firefox, "Firefox Debian" 및 Firefox Developer Edition에서 발생합니다. 때때로 Tor 브라우저에도 "Firefox ESR"이라는 라벨이 붙는 경우가 있는데, 이는 GNOME이 firefox실행 중인 프로그램을 확인하기 위해 실행 파일 이름(이 경우)을 사용한다는 의미입니다.

그러면 이 문제를 어떻게 해결할 수 있나요?

편집하다:/opt/firefox/firefox -> /opt/firefox/firefoxbin.real테스트를 위해 데스크톱 파일의 "새" 파일에서 심볼릭 링크를 만들고 사용했지만 이로 인해 아무것도 변경되지 않았으므로 실행 파일 이름은 중요하지 않은 것 같습니다.

편집2:또한 이제 StartupWMClassof를 (에서 중복된 것 )에서 로 firefox-esr.desktop변경 했습니다 . 이제 그놈은 다른 모든 Firefox 버전, 심지어 ESR 버전에서도 항상 "Firefox Debian"(에 저장된 이름)을 표시합니다. for 를 변경해 도 도움이되지 않았습니다.Firefoxfirefox.desktopFirefoxESRfirefox.desktopStartupWMClassfirefox.desktop

답변1

글쎄, 나는 당신의 질문에 대답할 수도 있습니다.

--classFirefox에서 플래그를 사용해 보세요 . 상대 파일과 일치하면 .desktop다양한 인스턴스가 올바르게 그룹화되어야 합니다. 예를 들어, .desktop 파일에서:

Exec=firefox --class FirefoxDevel %u

동일한 Firefox 실행 파일에 대해 저에게 효과적이므로 버전이 해당 플래그를 지원하는 한 계속 사용할 수 있습니다.

관련 정보