GNOME は複数の異なる Firefox インストールの名前を混同します

GNOME は複数の異なる Firefox インストールの名前を混同します

私は Debian Jessie で GNOME を使用しており、さまざまな Firefox をインストールしています。

  • GNOME にバンドルされている ESR バージョンは削除できません (依存関係があるため)
  • 安定版は以下からインストールされます特別な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.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

問題は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:StartupWMClassさらに、の を( で重複していた)firefox-esr.desktopからに変更しました。その後、GNOME では、他のすべての Firefox バージョン、さらには ESR バージョンの場合でも、常に「Firefox Debian」( に保存されている名前) が表示されます。のを変更しても効果はありませんでした。Firefoxfirefox.desktopFirefoxESRfirefox.desktopStartupWMClassfirefox.desktop

答え1

さて、あなたの質問に答えてもいいでしょう。

Firefox でフラグを使用してみてください--class。相対.desktopファイルと一致する場合、さまざまなインスタンスが正しくグループ化されるはずです。たとえば、.desktop ファイルでは次のようになります。

Exec=firefox --class FirefoxDevel %u

私の場合は同じ Firefox 実行ファイルで動作しました。そのため、お使いのバージョンでそのフラグがサポートされている限り、問題なく動作するはずです。

関連情報