39 #include <glib/gi18n.h> 41 #include <sys/types.h> 59 con = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, NULL);
62 v = g_dbus_connection_call_sync(con,
63 "org.kde.StatusNotifierWatcher",
64 "/StatusNotifierWatcher",
65 "org.freedesktop.DBus.Introspectable",
69 G_DBUS_CALL_FLAGS_NONE,
99 con = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, NULL);
102 p = g_dbus_proxy_new_sync(con,
103 G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS | G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
111 v = g_dbus_proxy_get_cached_property(p,
"ShellVersion");
113 if (g_variant_is_of_type(v, G_VARIANT_TYPE_STRING)) {
114 ret = g_strdup(g_variant_get_string(v, &sz));
133 TRACE_CALL(__func__);
134 const gchar *xdg_current_desktop;
135 const gchar *gdmsession;
138 xdg_current_desktop = g_environ_getenv(g_get_environ(),
"XDG_CURRENT_DESKTOP");
139 gdmsession = g_environ_getenv(g_get_environ(),
"GDMSESSION");
141 if (!xdg_current_desktop || xdg_current_desktop[0] ==
'\0') {
142 if (!gdmsession || gdmsession[0] ==
'\0') {
145 ret = g_strdup_printf(
"%s", gdmsession);
147 }
else if (!gdmsession || gdmsession[0] ==
'\0') {
148 ret = g_strdup_printf(
"%s", xdg_current_desktop);
150 }
else if (g_strcmp0(xdg_current_desktop,gdmsession) == 0) {
151 ret = g_strdup_printf(
"%s", xdg_current_desktop);
153 ret = g_strdup_printf(
"%s %s", xdg_current_desktop, gdmsession);
gchar * remmina_sysinfo_get_gnome_shell_version()
Query DBUS to get gnome shell version.
gchar * remmina_sysinfo_get_wm_name()
Query environment variables to get the Window manager name.
gboolean remmina_sysinfo_is_appindicator_available()