diff --git a/pkgs/tools/audio/pasystray/default.nix b/pkgs/tools/audio/pasystray/default.nix index 648dcad42bad..8b0580ba98c4 100644 --- a/pkgs/tools/audio/pasystray/default.nix +++ b/pkgs/tools/audio/pasystray/default.nix @@ -14,6 +14,11 @@ stdenv.mkDerivation rec { sha256 = "0xx1bm9kimgq11a359ikabdndqg5q54pn1d1dyyjnrj0s41168fk"; }; + patches = [ + # https://github.com/christophgysin/pasystray/issues/90#issuecomment-306190701 + ./fix-wayland.patch + ]; + nativeBuildInputs = [ pkgconfig autoreconfHook wrapGAppsHook ]; buildInputs = [ gnome3.adwaita-icon-theme diff --git a/pkgs/tools/audio/pasystray/fix-wayland.patch b/pkgs/tools/audio/pasystray/fix-wayland.patch new file mode 100644 index 000000000000..17c4e2e6d658 --- /dev/null +++ b/pkgs/tools/audio/pasystray/fix-wayland.patch @@ -0,0 +1,34 @@ +--- a/src/x11-property.c ++++ b/src/x11-property.c +@@ -43,11 +43,15 @@ static Window window; + void x11_property_init() + { + display = gdk_x11_get_default_xdisplay(); ++ if (!GDK_IS_X11_DISPLAY(display)) return; ++ Screen* scr = ScreenOfDisplay(display, 0); ++ + window = RootWindow(display, 0); + } + + void x11_property_set(const char* key, const char* value) + { ++ if (!GDK_IS_X11_DISPLAY(display)) return; + g_debug("[x11-property] setting '%s' to '%s'", key, value); + + Atom atom = XInternAtom(display, key, False); +@@ -57,6 +61,7 @@ void x11_property_set(const char* key, c + + void x11_property_del(const char* key) + { ++ if (!GDK_IS_X11_DISPLAY(display)) return; + g_debug("[x11-property] deleting '%s'", key); + + Atom atom = XInternAtom(display, key, False); +@@ -65,6 +70,7 @@ void x11_property_del(const char* key) + + char* x11_property_get(const char* key) + { ++ if (!GDK_IS_X11_DISPLAY(display)) return NULL; + Atom property = XInternAtom(display, key, False); + Atom actual_type; + int actual_format;