Description: make it  work with alternative display/login manager
 enable session independent conky selection display/login/session-manager,
 which do not provide DESKTOP_SESSION env-var. 
 .
 conky-manager (2.7+dfsg1-4mx19+2) mx; urgency=medium
 .
   * Patched for MX Linux.
Author: fehlix <fehlix@mxlinux.org>

--- conky-manager-2.7+dfsg1.orig/src/Main.vala
+++ conky-manager-2.7+dfsg1/src/Main.vala
@@ -623,13 +623,33 @@ public class Main : GLib.Object {
 	}
 
 	public void update_startup_script(){
+
+		string std_out = "";
+		string std_err = "";
+		
 		string startupScript = data_dir + "/conky-startup.sh";
 		string home = Environment.get_home_dir ();
-		unowned string desktop_session = Environment.get_variable ("DESKTOP_SESSION");
+        bool defined_desktop_session = true;
+		string desktop_session = Environment.get_variable ("DESKTOP_SESSION");
+		int slen = 0;
+		
+		if (desktop_session == null){ 
+		    desktop_session = "";
+		}
+		slen = desktop_session.length;
+
+		if (slen == 0 ){ 
+			defined_desktop_session = false;
+		}
+		if (defined_desktop_session){ 
+            // remove leading "/" in DESKTOP_SESSION if any
+			   desktop_session = desktop_session.slice(desktop_session.last_index_of("/",0)+1, slen);
+		}
+		
 		bool atleast_one_widget_enabled = false;
 
 		string txt_start_conky = "";
-		txt_start_conky += "if [ \"$DESKTOP_SESSION\" = \"%s\" ]; then \n".printf(desktop_session);
+		txt_start_conky += "if [ x\"${DESKTOP_SESSION##*/}\" = x\"%s\" ]; then \n".printf(desktop_session);
 		txt_start_conky += "   sleep %ds\n".printf(startup_delay);
 		txt_start_conky += "   killall conky\n";
 		foreach(ConkyRC conf in conkyrc_list){
@@ -643,17 +663,21 @@ public class Main : GLib.Object {
 		txt_start_conky += "fi\n";
 		
 		string txt_no_conky = "";
-		txt_no_conky += "if [ \"$DESKTOP_SESSION\" = \"%s\" ]; then \n".printf(desktop_session);
+		txt_no_conky += "if [ x\"${DESKTOP_SESSION##*/}\" = x\"%s\" ]; then \n".printf(desktop_session);
 		txt_no_conky += "   # No widgets enabled!\n";
 		txt_no_conky += "   exit 0\n";
 		txt_no_conky += "fi\n";
 		
-		
-		string std_out = "";
-		string std_err = "";
-		
-		string cmd1 = "grep  -sq -E '^[[:space:]]*if[[:space:]]+\\[[[:space:]]+\"?\\$\\{?DESKTOP_SESSION\\}?\"?' \"%s\" || rm  \"%s\"".printf (startupScript, startupScript);
-		string cmd2 = "sed -i -r '/^[[:space:]]*if[[:space:]]+\\[[[:space:]]+\"?\\$\\{?DESKTOP_SESSION\\}?\"?[[:space:]]*==?[[:space:]]*\"%s\"[[:space:]]+\\]/,/^[[:space:]]*fi/d' \"%s\"".printf (desktop_session, startupScript);
+		string cmd1 = "grep  -sq -E '^[[:space:]]*if[[:space:]]+\\[[[:space:]]+x?\"?\\$\\{?DESKTOP_SESSION(##\\*/)?\\}?\"?' \"%s\" || rm  \"%s\"".printf (startupScript, startupScript);
+        
+		// stdout.printf (cmd1);
+		string prex = "";
+		if (defined_desktop_session){ 
+			prex = "[^\"]*";
+		}
+
+		string cmd2 = "sed -i -r '/^[[:space:]]*if[[:space:]]+\\[[[:space:]]+x?\"?\\$\\{?DESKTOP_SESSION(##\\*\\/)?\\}?\"?[[:space:]]*==?[[:space:]]*x?\"%s%s\"[[:space:]]+\\]/,/^[[:space:]]*fi/d' \"%s\"".printf (prex, desktop_session, startupScript);
+		// stdout.printf (cmd2);
 
 		if (file_exists(startupScript)){
 			try{
