38 #include <glib/gi18n.h> 40 #include <sys/types.h> 58 con = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, NULL);
61 v = g_dbus_connection_call_sync(con,
62 "org.kde.StatusNotifierWatcher",
63 "/StatusNotifierWatcher",
64 "org.freedesktop.DBus.Introspectable",
68 G_DBUS_CALL_FLAGS_NONE,
98 con = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, NULL);
101 p = g_dbus_proxy_new_sync(con,
102 G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS | G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
110 v = g_dbus_proxy_get_cached_property(p,
"ShellVersion");
112 if (g_variant_is_of_type(v, G_VARIANT_TYPE_STRING)) {
113 ret = g_strdup(g_variant_get_string(v, &sz));
132 TRACE_CALL(__func__);
133 const gchar *xdg_current_desktop;
134 const gchar *gdmsession;
137 xdg_current_desktop = g_environ_getenv(g_get_environ(),
"XDG_CURRENT_DESKTOP");
138 gdmsession = g_environ_getenv(g_get_environ(),
"GDMSESSION");
140 if (!xdg_current_desktop || xdg_current_desktop[0] ==
'\0') {
141 if (!gdmsession || gdmsession[0] ==
'\0') {
144 ret = g_strdup_printf(
"%s", gdmsession);
146 }
else if (!gdmsession || gdmsession[0] ==
'\0') {
147 ret = g_strdup_printf(
"%s", xdg_current_desktop);
149 }
else if (g_strcmp0(xdg_current_desktop,gdmsession) == 0) {
150 ret = g_strdup_printf(
"%s", xdg_current_desktop);
152 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()