f8bc113
diff -Nur audacious-plugins-3.8.2-orig/src/gnomeshortcuts/gnomeshortcuts.cc audacious-plugins-3.8.2/src/gnomeshortcuts/gnomeshortcuts.cc
f8bc113
--- audacious-plugins-3.8.2-orig/src/gnomeshortcuts/gnomeshortcuts.cc	2017-01-20 18:03:32.000000000 +0100
f8bc113
+++ audacious-plugins-3.8.2/src/gnomeshortcuts/gnomeshortcuts.cc	2017-05-13 20:24:27.342147415 +0200
bbc0d15
@@ -23,6 +23,7 @@
bbc0d15
 #include <string.h>
bbc0d15
 #include <dbus/dbus.h>
bbc0d15
 #include <dbus/dbus-glib-bindings.h>
bbc0d15
+#include <dbus/dbus-glib-lowlevel.h>
bbc0d15
 #include <glib-object.h>
bbc0d15
 
bbc0d15
 #include <libaudcore/drct.h>
bbc0d15
@@ -40,7 +41,7 @@
bbc0d15
         about
bbc0d15
     };
bbc0d15
 
bbc0d15
-    constexpr GNOMEShortcuts () : GeneralPlugin (info, false) {}
bbc0d15
+    constexpr GNOMEShortcuts () : GeneralPlugin (info, true) {}
bbc0d15
 
bbc0d15
     bool init ();
bbc0d15
     void cleanup ();
bbc0d15
@@ -227,6 +228,7 @@
bbc0d15
 {
bbc0d15
     DBusGConnection *bus;
bbc0d15
     GError *error = nullptr;
bbc0d15
+    DBusError derror;
bbc0d15
     dbus_g_thread_init();
bbc0d15
 
bbc0d15
     bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
bbc0d15
@@ -235,6 +237,15 @@
bbc0d15
         g_error_free (error);
bbc0d15
         return false;
bbc0d15
     } else {
bbc0d15
+        dbus_error_init(&derror);
bbc0d15
+        if ( !dbus_bus_name_has_owner(dbus_g_connection_get_connection(bus),
bbc0d15
+                                      "org.gnome.SettingsDaemon", &derror) ) {
bbc0d15
+            if (dbus_error_is_set(&derror)) {
f8bc113
+                g_warning("%s", derror.message);
bbc0d15
+                dbus_error_free(&derror);
bbc0d15
+            }
bbc0d15
+            return false;
bbc0d15
+        }
bbc0d15
         media_player_keys_proxy = dbus_g_proxy_new_for_name (bus,
bbc0d15
          "org.gnome.SettingsDaemon",
bbc0d15
          "/org/gnome/SettingsDaemon/MediaKeys",