如何在 Plasma 中为每个 Firefox 配置文件提供自己的应用程序图标

如何在 Plasma 中为每个 Firefox 配置文件提供自己的应用程序图标

我在 Arch Linux 上运行 KDE。我有以下两个.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 配置文件之一时,Plasma 面板的任务管理器栏中显示的图标是我在 .desktop 文件中指定的自定义图标。但是 Firefox 启动完成后,任务管理器中的图标(等离子面板)恢复为标准 Firefox 图标。如何根据每个配置文件将自定义图标粘贴在任务管理器面板中?

我尝试过的一种方法是创建一个单独的 shell 脚本来启动每个配置文件,但这会产生相同的结果:启动 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

我还没有得到结果。上面的条目在 KDE Plasma 面板的“任务管理器”小部件的选项卡中显示标准的 Firefox 图标,与标准的 Firefox 桌面文件完全相同。

我尝试了使用 -no-remote、使用 -new-instance 和不使用其中任何一个的 Exec 行,图标方面没有区别。

如前所述,我希望每个 Firefox 配置文件在 KDE Plasma 面板的“任务管理器”小部件的选项卡中显示其自定义图标。

答案1

我希望我正确理解了你的问题。我假设您所说的图标是 KDE Plasma 面板的“任务管理器”小部件中的选项卡。

看起来你的问题已经一个答案在阿斯库本图。在那里,问题提到了 Ubuntu 和 Gnome,但答案没有使用桌面环境或 Linux 发行版的任何特定功能。我在 Arch Linux 上使用 KDE Plasma 5.14.4、Firefox 63.0.3、X.Org X Server 1.20.3 对其进行了测试。

它归结为对文件的一些编辑.desktop

1) 将--class选项添加到Exec密钥中。它被简要记录在MDN:

--class=WM_CLASS
设置应用程序创建的X11窗口的WM_CLASS资源类。

2)添加StartupWMClass密钥。它被简要记录在桌面入门规格由 freedesktop.org 提供:

StartupWMClass
如果指定,则已知应用程序将使用给定字符串映射至少一个窗口作为其 WM 类或 WM 名称提示(请参阅启动通知协议规范更多细节)。

通过这两个选项,每个 Firefox 实例都有自己的WMCLASS,这样实例就不会在“任务管理器”中分组在一起。这会StartupWMClass在打开的 Firefox 窗口和启动它们的桌面条目之间设置一个链接,让它们保留自定义图标。

提供一个示例,假设您的两个.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

相关内容