如何在 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 面板的“任務管理器”小元件的選項卡中顯示其自定義圖示。
我希望我正確理解了你的問題。我假設您所說的圖示是 KDE Plasma 面板的“任務管理器”小元件中的選項卡。
看起來您的問題在 askubuntu 上有答案。在那裡,問題提到了 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的Desktop Entry Specification中有簡要記錄:
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