about summary refs log tree commit diff stats
path: root/patches/8-restoreafterrestart-20220709-d3f93c7.diff
diff options
context:
space:
mode:
authorAcid Bong <acid-bong@cock.lt>2022-12-01 00:54:10 +0200
committerAcid Bong <acid-bong@cock.lt>2022-12-01 00:54:10 +0200
commitdce66cbb27321b355f3f7e855bfb619faf2ce957 (patch)
treed79ea1c1ad3bb27c88874c80b61dba353c90e90d /patches/8-restoreafterrestart-20220709-d3f93c7.diff
parentce9b1c80a439246a7dd2c9fac9c4e1a98fced4ef (diff)
downloaddwm-dce66cbb27321b355f3f7e855bfb619faf2ce957.tar.gz
renumbered patches
Diffstat (limited to 'patches/8-restoreafterrestart-20220709-d3f93c7.diff')
-rw-r--r--patches/8-restoreafterrestart-20220709-d3f93c7.diff101
1 files changed, 0 insertions, 101 deletions
diff --git a/patches/8-restoreafterrestart-20220709-d3f93c7.diff b/patches/8-restoreafterrestart-20220709-d3f93c7.diff
deleted file mode 100644
index cfcb607..0000000
--- a/patches/8-restoreafterrestart-20220709-d3f93c7.diff
+++ /dev/null
@@ -1,101 +0,0 @@
-From 9fd4a02b57aa8a764d8105d5f2f854372f4ef559 Mon Sep 17 00:00:00 2001
-From: ViliamKovac1223 <viliamkovac1223@gmail.com>
-Date: Sat, 9 Jul 2022 17:35:54 +0200
-Subject: [PATCH] add restore patch
-
----
- config.def.h |  2 ++
- dwm.c        | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 55 insertions(+)
-
-diff --git a/config.def.h b/config.def.h
-index 6ec4146..0b91976 100644
---- a/config.def.h
-+++ b/config.def.h
-@@ -1,5 +1,7 @@
- /* See LICENSE file for copyright and license details. */
- 
-+#define SESSION_FILE "/tmp/dwm-session"
-+
- /* appearance */
- static const unsigned int borderpx  = 1;        /* border pixel of windows */
- static const unsigned int snap      = 32;       /* snap pixel */
-diff --git a/dwm.c b/dwm.c
-index 74cec7e..76b40a2 100644
---- a/dwm.c
-+++ b/dwm.c
-@@ -1255,11 +1255,63 @@ propertynotify(XEvent *e)
- 	}
- }
- 
-+void
-+saveSession(void)
-+{
-+	FILE *fw = fopen(SESSION_FILE, "w");
-+	for (Client *c = selmon->clients; c != NULL; c = c->next) { // get all the clients with their tags and write them to the file
-+		fprintf(fw, "%lu %u\n", c->win, c->tags);
-+	}
-+	fclose(fw);
-+}
-+
-+void
-+restoreSession(void)
-+{
-+	// restore session
-+	FILE *fr = fopen(SESSION_FILE, "r");
-+	if (!fr)
-+		return;
-+
-+	char *str = malloc(23 * sizeof(char)); // allocate enough space for excepted input from text file
-+	while (fscanf(fr, "%[^\n] ", str) != EOF) { // read file till the end
-+		long unsigned int winId;
-+		unsigned int tagsForWin;
-+		int check = sscanf(str, "%lu %u", &winId, &tagsForWin); // get data
-+		if (check != 2) // break loop if data wasn't read correctly
-+			break;
-+		
-+		for (Client *c = selmon->clients; c ; c = c->next) { // add tags to every window by winId
-+			if (c->win == winId) {
-+				c->tags = tagsForWin;
-+				break;
-+			}
-+		}
-+    }
-+
-+	for (Client *c = selmon->clients; c ; c = c->next) { // refocus on windows
-+		focus(c);
-+		restack(c->mon);
-+	}
-+
-+	for (Monitor *m = selmon; m; m = m->next) // rearrange all monitors
-+		arrange(m);
-+
-+	free(str);
-+	fclose(fr);
-+	
-+	// delete a file
-+	remove(SESSION_FILE);
-+}
-+
- void
- quit(const Arg *arg)
- {
- 	if(arg->i) restart = 1;
- 	running = 0;
-+
-+	if (restart == 1)
-+		saveSession();
- }
- 
- Monitor *
-@@ -2173,6 +2225,7 @@ main(int argc, char *argv[])
- 		die("pledge");
- #endif /* __OpenBSD__ */
- 	scan();
-+	restoreSession();
- 	run();
- 	if(restart) execvp(argv[0], argv);
- 	cleanup();
--- 
-2.35.1
-