From 2f800334533e49c7413a68816bf695db053e97c0 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 21 Feb 2023 16:39:47 +0100 Subject: src/utils.(c|h): Add get_desktop_session() helper function. Signed-off-by: Mike Gabriel --- src/utils.c | 24 ++++++++++++++++++++++++ src/utils.h | 1 + 2 files changed, 25 insertions(+) (limited to 'src') diff --git a/src/utils.c b/src/utils.c index 991f4ec..8c69a59 100644 --- a/src/utils.c +++ b/src/utils.c @@ -152,3 +152,27 @@ get_desktop_name (void) return desktop_name; } + +const char* +get_desktop_session (void) +{ + static const char * desktop_session = NULL; + const char * xdg_desktop_session; + + if (desktop_session == NULL) + { + xdg_desktop_session = g_getenv ("XDG_DESKTOP_SESSION"); + + if (xdg_desktop_session == NULL) + { + /* try DESKTOP_SESSION env var if XDG_DESKTOP_SESSION is unset */ + desktop_session = g_getenv ("DESKTOP_SESSION"); + } + else + { + desktop_session = xdg_desktop_session; + } + } + + return desktop_session; +} diff --git a/src/utils.h b/src/utils.h index 149087b..d57eebe 100644 --- a/src/utils.h +++ b/src/utils.h @@ -24,6 +24,7 @@ const char* get_distro_name(); const char* get_distro_url(); const char* get_distro_bts_url(); const char* get_desktop_name(); +const char* get_desktop_session(); GHashTable* get_os_release(); #endif /* __INDICATOR_SESSION_UTILS_H__ */ -- cgit v1.2.3