
我想在 Ubuntu 20.04 和 gnome 3 中為 SoftSqueeze(一種基於 Logitech Squeezebox 的軟體無線電,用 Java 編寫)分配一個圖示。
我在 ~/.loca/share/applications 中建立了一個 .desktop 檔案:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=SoftSqueeze
Icon=/opt/softsqueeze_3.9.2/icons/icon256.xpm
Exec=java -jar /opt/softsqueeze_3.9.2/SoftSqueeze.jar
Terminal=false
StartupNotify=false
StartupWMClass=SoftSqueeze
NoDisplay=false
MimeType=application/x-java-archive;application/java-archive;application/x-jar;
X-UnityGenerated=true
之後,找到帶有正確設定圖標的應用程式(上面指定的Icon=
),但如果我啟動該應用程序,則會顯示有趣的像素化耳機。
在開羅碼頭,我透過新增一個新啟動器來建立了一個啟動器,並為其提供了正確的命令和圖示。它還出現了錯誤的圖標(一個有趣的像素化耳機)。
我認為這個“耳機”圖標可能設置在 Softsqueeze 的罐子中。
如何在 Gnome 3 和 Cairo Dock 中分配正確的圖示?
答案1
解決方案:必須指派一個 WM_CLASS(在開羅塢中稱為“程式類別”,可在桌面項目的額外參數中找到)。它類似於視窗管理器和程式本身的實例之間的鏈接,所以我的解釋是,正確設置該鏈接後,視窗管理器不必創建另一個圖標“實例”(雙圖標,在我的情況看起來也不同(如果圖標相同但是雙的,那麼解決方案也應該有效),甚至在python 或其他基於腳本的程式上也是如此):
對於 Gnome 3,我在終端機中使用以下命令:
xprop | grep WM_CLASS
然後,我單擊了已啟動並在前台顯示的 java 應用程式上顯示的指針,並在終端機視窗中獲得了 WM_CLASS 的名稱。我必須將其添加到上面的 .desktop 條目中作為屬性“StartUpWMClass”。儲存文件,jar 的圖示就會消失。
就我而言是
StartupWMClass=org-titmuss-softsqueeze-Application
您必須對開羅碼頭中桌面條目的額外參數執行相同的操作。然後「耳機」圖示將消失,您設定的圖示將成為啟動應用程式時的唯一圖示。