web-dev-qa-db-ja.com

各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つを最初に起動したとき、Plasmaのパネルのタスクマネージャーバーに表示されるアイコンは、.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プラズマパネルの[タスクマネージャー]ウィジェットのタブに表示したいと思います。

7
MountainX

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

あなたの質問は 回答 がaskubuntuにあるようです。そこでは、UbuntuとGnomeについての質問ですが、回答はデスクトップ環境やLinuxディストリビューションの特定の機能を利用していません。 KDE Plasma 5.14.4、Firefox 63.0.3、X.Org X Server 1.20.3を搭載したArch Linuxでテストしました。

要約すると、あなたの.desktopファイルへのいくつかの編集です:

1)Execキーに--classオプションを追加します。 [〜#〜] mdn [〜#〜] に簡単に記載されています:

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

2)StartupWMClassキーを追加します。これは、freedesktop.orgによって Desktop Entry Specification に簡単に文書化されています。

StartupWMClass
指定された場合、アプリケーションは、少なくとも1つのウィンドウを、指定された文字列をWMクラスまたはWM名のヒントとしてマップすることが知られています(詳細は Startup Notification Protocol Specification を参照) 。

これらの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
4
fra-san