diff options
| author | Raghuram Subramani <raghus2247@gmail.com> | 2025-07-27 10:34:50 +0530 | 
|---|---|---|
| committer | Raghuram Subramani <raghus2247@gmail.com> | 2025-07-27 10:34:50 +0530 | 
| commit | 708721296334c1c7bf562bd7d20668f7d15e7b69 (patch) | |
| tree | 4241f658d7e735df0fb4ccc88ec59fb144ee1ba2 /patches/autostart.patch | |
| parent | 57f3d5960bd25ef8481d8e2a3b5f359ec20f13ab (diff) | |
remove patches
Diffstat (limited to 'patches/autostart.patch')
| -rw-r--r-- | patches/autostart.patch | 154 | 
1 files changed, 0 insertions, 154 deletions
| diff --git a/patches/autostart.patch b/patches/autostart.patch deleted file mode 100644 index 0350380..0000000 --- a/patches/autostart.patch +++ /dev/null @@ -1,154 +0,0 @@ -From d2829ed5c970c7e7692e39c451526b3860dabb2f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Leonardo=20Hern=C3=A1ndez=20Hern=C3=A1ndez?= - <leohdz172@proton.me> -Date: Sat, 8 Jul 2023 17:11:36 -0600 -Subject: [PATCH] port autostart patch from dwm -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -https://dwm.suckless.org/patches/cool_autostart/ -Signed-off-by: Leonardo Hernández Hernández <leohdz172@proton.me> ---- - config.def.h |  7 +++++++ - dwl.c        | 59 +++++++++++++++++++++++++++++++++++++++++++++++----- - 2 files changed, 61 insertions(+), 5 deletions(-) - -diff --git a/config.def.h b/config.def.h -index 22d2171..1d0f935 100644 ---- a/config.def.h -+++ b/config.def.h -@@ -20,6 +20,13 @@ static const float fullscreen_bg[]         = {0.1f, 0.1f, 0.1f, 1.0f}; /* You ca - /* logging */ - static int log_level = WLR_ERROR; -  -+/* Autostart */ -+static const char *const autostart[] = { -+        "wbg", "/path/to/your/image", NULL, -+        NULL /* terminate */ -+}; -+ -+ - /* NOTE: ALWAYS keep a rule declared even if you don't use rules (e.g leave at least one example) */ - static const Rule rules[] = { - 	/* app_id             title       tags mask     isfloating   monitor */ -diff --git a/dwl.c b/dwl.c -index 00e9cc1e..5de32831 100644 ---- a/dwl.c -+++ b/dwl.c -@@ -249,6 +249,7 @@ static void arrange(Monitor *m); - static void arrangelayer(Monitor *m, struct wl_list *list, - 		struct wlr_box *usable_area, int exclusive); - static void arrangelayers(Monitor *m); -+static void autostartexec(void); - static void axisnotify(struct wl_listener *listener, void *data); - static void buttonpress(struct wl_listener *listener, void *data); - static void chvt(const Arg *arg); -@@ -429,6 +430,9 @@ static xcb_atom_t netatom[NetLast]; - /* attempt to encapsulate suck into one file */ - #include "client.h" -  -+static pid_t *autostart_pids; -+static size_t autostart_len; -+ - /* function implementations */ - void - applybounds(Client *c, struct wlr_box *bbox) -@@ -577,6 +581,27 @@ arrangelayers(Monitor *m) - 	} - } -  -+void -+autostartexec(void) { -+	const char *const *p; -+	size_t i = 0; -+ -+	/* count entries */ -+	for (p = autostart; *p; autostart_len++, p++) -+		while (*++p); -+ -+	autostart_pids = calloc(autostart_len, sizeof(pid_t)); -+	for (p = autostart; *p; i++, p++) { -+		if ((autostart_pids[i] = fork()) == 0) { -+			setsid(); -+			execvp(*p, (char *const *)p); -+			die("dwl: execvp %s:", *p); -+		} -+		/* skip arguments */ -+		while (*++p); -+	} -+} -+ - void - axisnotify(struct wl_listener *listener, void *data) - { -@@ -672,11 +697,21 @@ checkidleinhibitor(struct wlr_surface *exclude) - void - cleanup(void) - { -+	size_t i; - #ifdef XWAYLAND - 	wlr_xwayland_destroy(xwayland); - 	xwayland = NULL; - #endif - 	wl_display_destroy_clients(dpy); -+ -+	/* kill child processes */ -+	for (i = 0; i < autostart_len; i++) { -+		if (0 < autostart_pids[i]) { -+			kill(autostart_pids[i], SIGTERM); -+			waitpid(autostart_pids[i], NULL, 0); -+		} -+	} -+ - 	if (child_pid > 0) { - 		kill(-child_pid, SIGTERM); - 		waitpid(child_pid, NULL, 0); -@@ -1438,18 +1473,31 @@ void - handlesig(int signo) - { - 	if (signo == SIGCHLD) { --#ifdef XWAYLAND - 		siginfo_t in; - 		/* wlroots expects to reap the XWayland process itself, so we - 		 * use WNOWAIT to keep the child waitable until we know it's not - 		 * XWayland. - 		 */ - 		while (!waitid(P_ALL, 0, &in, WEXITED|WNOHANG|WNOWAIT) && in.si_pid --				&& (!xwayland || in.si_pid != xwayland->server->pid)) --			waitpid(in.si_pid, NULL, 0); --#else --		while (waitpid(-1, NULL, WNOHANG) > 0); -+#ifdef XWAYLAND -+			   && (!xwayland || in.si_pid != xwayland->server->pid) - #endif -+			   ) { -+			pid_t *p, *lim; -+			waitpid(in.si_pid, NULL, 0); -+			if (in.si_pid == child_pid) -+				child_pid = -1; -+			if (!(p = autostart_pids)) -+				continue; -+			lim = &p[autostart_len]; -+ -+			for (; p < lim; p++) { -+				if (*p == in.si_pid) { -+					*p = -1; -+					break; -+				} -+			} -+		} - 	} else if (signo == SIGINT || signo == SIGTERM) { - 		quit(NULL); - 	} -@@ -2169,6 +2217,7 @@ run(char *startup_cmd) - 		die("startup: backend_start"); -  - 	/* Now that the socket exists and the backend is started, run the startup command */ -+	autostartexec(); - 	if (startup_cmd) { - 		int piperw[2]; - 		if (pipe(piperw) < 0) ---  -2.45.2 - | 
