From a3f7eaae0857a6d5093f9f851a8d1b81d1ad4dda Mon Sep 17 00:00:00 2001 From: Jason Date: Tue, 16 Jun 2020 13:07:33 +0200 Subject: [PATCH] app/internal/window: set WM_CLASS to binary name WM_CLASS is used by Linux desktops to provide hints for window grouping, icons to show and startup notifications. https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html This patch set the WM_CLASS to the binary name. Signed-off-by: Jason --- app/internal/window/os_x11.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/internal/window/os_x11.go b/app/internal/window/os_x11.go index 81cd370a..89bf0646 100644 --- a/app/internal/window/os_x11.go +++ b/app/internal/window/os_x11.go @@ -26,6 +26,8 @@ import ( "errors" "fmt" "image" + "os" + "path/filepath" "strconv" "sync" "time" @@ -508,6 +510,11 @@ func newX11Window(gioWin Callbacks, opts *Options) error { hints.flags = C.InputHint C.XSetWMHints(dpy, win, &hints) + name := C.CString(filepath.Base(os.Args[0])) + defer C.free(unsafe.Pointer(name)) + wmhints := C.XClassHint{name, name} + C.XSetClassHint(dpy, win, &wmhints) + w.atoms.utf8string = w.atom("UTF8_STRING", false) w.atoms.evDelWindow = w.atom("WM_DELETE_WINDOW", false) w.atoms.clipboard = w.atom("CLIPBOARD", false)