diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2018-03-12 19:10:48 +0100 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2018-03-12 19:11:00 +0100 |
commit | 1830c84a2b95ca4b840a65317e75a609b33c3512 (patch) | |
tree | e8a837eac2c3494d467731f0a962a92bc3364bfd /src | |
parent | 4774ba8cbe14396cc653a4370cb9a49905efb3ff (diff) | |
download | ayatana-indicator-power-1830c84a2b95ca4b840a65317e75a609b33c3512.tar.gz ayatana-indicator-power-1830c84a2b95ca4b840a65317e75a609b33c3512.tar.bz2 ayatana-indicator-power-1830c84a2b95ca4b840a65317e75a609b33c3512.zip |
src/utils.(c|h): Port is_{mate,gnome,unity}() functions from -session indicator.
Diffstat (limited to 'src')
-rw-r--r-- | src/utils.c | 63 | ||||
-rw-r--r-- | src/utils.h | 4 |
2 files changed, 67 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c index 6b2aeb3..ad6d510 100644 --- a/src/utils.c +++ b/src/utils.c @@ -83,3 +83,66 @@ utils_handle_settings_request (void) execute_command (control_center_cmd); } + +gboolean +is_unity () +{ + const gchar *xdg_current_desktop; + gchar **desktop_names; + int i; + + xdg_current_desktop = g_getenv ("XDG_CURRENT_DESKTOP"); + if (xdg_current_desktop != NULL) { + desktop_names = g_strsplit (xdg_current_desktop, ":", 0); + for (i = 0; desktop_names[i]; ++i) { + if (!g_strcmp0 (desktop_names[i], "Unity")) { + g_strfreev (desktop_names); + return TRUE; + } + } + g_strfreev (desktop_names); + } + return FALSE; +} + +gboolean +is_gnome () +{ + const gchar *xdg_current_desktop; + gchar **desktop_names; + int i; + + xdg_current_desktop = g_getenv ("XDG_CURRENT_DESKTOP"); + if (xdg_current_desktop != NULL) { + desktop_names = g_strsplit (xdg_current_desktop, ":", 0); + for (i = 0; desktop_names[i]; ++i) { + if (!g_strcmp0 (desktop_names[i], "GNOME")) { + g_strfreev (desktop_names); + return TRUE; + } + } + g_strfreev (desktop_names); + } + return FALSE; +} + +gboolean +is_mate () +{ + const gchar *xdg_current_desktop; + gchar **desktop_names; + int i; + + xdg_current_desktop = g_getenv ("XDG_CURRENT_DESKTOP"); + if (xdg_current_desktop != NULL) { + desktop_names = g_strsplit (xdg_current_desktop, ":", 0); + for (i = 0; desktop_names[i]; ++i) { + if (!g_strcmp0 (desktop_names[i], "MATE")) { + g_strfreev (desktop_names); + return TRUE; + } + } + g_strfreev (desktop_names); + } + return FALSE; +} diff --git a/src/utils.h b/src/utils.h index 744536c..665008e 100644 --- a/src/utils.h +++ b/src/utils.h @@ -23,4 +23,8 @@ void execute_command (const gchar * cmd); void utils_handle_settings_request(void); +gboolean is_unity(); +gboolean is_gnome(); +gboolean is_mate(); + #endif /* __INDICATOR_POWER_UTILS_H__ */ |