diff -r bfed06214c2a src/core/linux/SDL_dbus.c --- a/src/core/linux/SDL_dbus.c Tue Aug 27 11:38:43 2019 +0200 +++ b/src/core/linux/SDL_dbus.c Sat Sep 07 15:13:08 2019 +0900 @@ -114,17 +114,20 @@ if (!dbus.session_conn && LoadDBUSLibrary() != -1) { DBusError err; dbus.error_init(&err); + /* session bus is required */ dbus.session_conn = dbus.bus_get_private(DBUS_BUS_SESSION, &err); - if (!dbus.error_is_set(&err)) { - dbus.system_conn = dbus.bus_get_private(DBUS_BUS_SYSTEM, &err); - } if (dbus.error_is_set(&err)) { dbus.error_free(&err); SDL_DBus_Quit(); return; /* oh well */ } - dbus.connection_set_exit_on_disconnect(dbus.system_conn, 0); dbus.connection_set_exit_on_disconnect(dbus.session_conn, 0); + /* system bus is optional */ + dbus.system_conn = dbus.bus_get_private(DBUS_BUS_SYSTEM, &err); + if (!dbus.error_is_set(&err)) { + dbus.connection_set_exit_on_disconnect(dbus.system_conn, 0); + } + dbus.error_free(&err); } }