Gnome
如果已經執行,如何阻止粘性應用程序啟動新實例?
我有一個用 Python 編寫的程序,並通過桌面文件添加到 Gnome。當我點擊 Gnome 中的粘貼圖示啟動它時,它會複製我的工作列上的圖示並打開一個新實例。其他粘性應用程序只是在它們下面劃了一條線。當您點擊這些其他應用程序(如 Chrome 或 Sublime Text)並且它們已經在執行時,gnome 只是跳轉到它們的視窗而不是啟動一個新實例。
這種行為是我需要在我的應用程序中處理的,還是 Gnome 可以為我處理的?如果有區別的話,它是一個帶有 bash 啟動器的 PyQt4 應用程序。
編輯-忘了提到我正在執行帶有 Gnome 3.20.4 的 Ubuntu-Gnome 16.10
我得到了這個工作。
您需要將“StartupWMClass”鍵添加到桌麵條目中。
StartupWMClass:如果指定,則已知應用程序將使用給定字元串映射至少一個視窗作為其 WM 類或 WM 名稱提示。
您可以安裝 xprop,執行它並點擊標題欄以找出您的應用程序是什麼類。
我不了解 Python API,但這與GtkApplication相關。
閱讀GtkApplication HowDoI wiki,上面寫著:
GtkApplication 預設為單實例應用程序
另請參閱此問題。