Plasmaで各Firefoxプロファイルに独自のアプリアイコンを提供する方法

Plasmaで各Firefoxプロファイルに独自のアプリアイコンを提供する方法

私はArch LinuxでKDEを実行しています。次の2つのファイルがあります.desktop

[Desktop Entry]
Comment=First Profile
Exec=firefox --no-remote -P First %u
GenericName=Firefox First Profile
Icon=/path/to/custom/icon1.png
Name=FF_First
NoDisplay=false
Path[$e]=
StartupNotify=true
Terminal=0
TerminalOptions=
Type=Application
X-KDE-SubstituteUID=false
X-KDE-Username=

[Desktop Entry]
Comment=Second Profile
Exec=firefox --no-remote -P Second %u
GenericName=Firefox Second Profile
Icon=/path/to/custom/icon2.png
Name=FF_Second
NoDisplay=false
Path[$e]=
StartupNotify=true
Terminal=0
TerminalOptions=
Type=Application
X-KDE-SubstituteUID=false
X-KDE-Username=

これらのFirefoxプロファイルの1つを初めて実行したときに、プラズマパネルのタスクマネージャバーに表示されるアイコンは、.desktopファイルで指定したカスタムアイコンです。しかし、Firefoxが起動した後、タスクマネージャのアイコン(プラズマパネル)標準のFirefoxアイコンに戻ります。プロファイルごとにタスクマネージャパネルにカスタムアイコンを追加するには?

私が試したアプローチの1つは、別々のシェルスクリプトを作成して各プロファイルを起動することでしたが、結果は同じでした。 Firefoxを起動すると、各プロファイルはタスクマネージャに同じ一般的なFirefoxアイコンを表示します。

同様の質問がありますここしかし、これはアイコンとは関係ありません。Firefoxのプロフィールによると私の質問には答えません。

更新:fra-sanの回答に基づいて更新されたデスクトップ項目は次のとおりです。

[Desktop Entry]
Comment=Second Profile
Exec=firefox -P Second --class=FFSecond
GenericName=Firefox Second Profile
Icon=/home/allusers/application_icons/Second/Firefox_Logo_128x128.png
Name=FFSecond
NoDisplay=false
Path[]=
StartupNotify=true
Terminal=0
TerminalOptions=
Type=Application
Categories=Network;WebBrowser
X-KDE-SubstituteUID=false
X-KDE-Username=
StartupWMClass=FFSecond

まだ結果が得られていません。上記の項目は、標準のFirefoxデスクトップファイルと同じように、KDEプラズマパネルのタスクマネージャウィジェットタブに標準のFirefoxアイコンを表示します。

-no-remote、-new-instanceを使ってExecラインを試してみましたが、何もせずにアイコンに違いはありませんでした。

前述のように、各FirefoxプロファイルはKDEプラズマパネルのタスクマネージャウィジェットのタブにカスタムアイコンを表示したいと思います。

答え1

あなたの質問を正しく理解したことを願っています。私はあなたが話しているアイコンがKDEプラズマパネルのタスクマネージャウィジェットのタブであると仮定します。

問題が発生したようです。回答アクベンツから。そこで質問にはUbuntuとGnomeが言及されていますが、答えはデスクトップ環境やLinuxディストリビューションの特定の機能を使用しません。 KDE Plasma 5.14.4、Firefox 63.0.3、X.Org X Server 1.20.3を使用してArch Linuxでテストしました。

ファイルに関するいくつかの編集内容があります.desktop

1)キー--classにオプションを追加します。Execに簡単に記録されています。MDN:

--class=WM_CLASS
アプリケーションによって生成されたX11ウィンドウのWM_CLASSリソースクラスを設定します。

2)StartupWMClassキーを追加します。に簡単に記録されています。デスクトップエントリの仕様freedesktop.orgから提供:

StartupWMClass
指定された場合、アプリケーションはその文字列をWMクラスまたはWM名ヒントとして使用して1つ以上のウィンドウをマッピングすることが知られています(参照)。起動通知プロトコル仕様詳細は)。

これら 2 つのオプションを使用すると、各 Firefox インスタンスに独自のインスタンスがあるため、タスクWMCLASSマネージャでインスタンスがグループ化されません。これStartupWMClassにより、開いているFirefoxウィンドウとそれを実行しているデスクトップアイテムの間のリンクが確立され、カスタムアイコンを維持できます。

たとえば、2つの.desktopファイルを始点とし、ここで無関係な行を省略します。

[Desktop Entry]
Comment=First Profile
...
Exec=firefox --no-remote -P test1 --class=firstclass %u
...
StartupWMClass=firstclass
[Desktop Entry]
Comment=Second Profile
...
Exec=firefox --no-remote -P test1 --class=secondclass %u
...
StartupWMClass=secondclass

関連情報