我在 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