aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Wittamore <philip@wittamore.com>2025-05-28 11:00:35 +0200
committerPhilip Wittamore <philip@wittamore.com>2025-05-28 11:00:35 +0200
commitfb95766a2341900af399a6ea5ff37cefe03a7dc6 (patch)
tree54ec6926b7aa1b7b718dde74dd1aca49a61ec325
parent27718449bd607a84b60e545d6ce0085c6298f105 (diff)
downloaddwm-fb95766a2341900af399a6ea5ff37cefe03a7dc6.tar.gz
dwm-fb95766a2341900af399a6ea5ff37cefe03a7dc6.tar.bz2
dwm-fb95766a2341900af399a6ea5ff37cefe03a7dc6.zip
update
-rwxr-xr-xdwmbin73624 -> 73736 bytes
-rw-r--r--patches/dwm-preserveonrestart-6.3.diff118
2 files changed, 0 insertions, 118 deletions
diff --git a/dwm b/dwm
index b1a46a3..f7adf2c 100755
--- a/dwm
+++ b/dwm
Binary files differ
diff --git a/patches/dwm-preserveonrestart-6.3.diff b/patches/dwm-preserveonrestart-6.3.diff
deleted file mode 100644
index 079cf05..0000000
--- a/patches/dwm-preserveonrestart-6.3.diff
+++ /dev/null
@@ -1,118 +0,0 @@
-From 713fa8650f5a20006451ebcccf57a4512e83bae8 Mon Sep 17 00:00:00 2001
-From: Arda Atci <arda@phytech.io>
-Date: Wed, 18 May 2022 17:23:16 +0300
-Subject: [PATCH] preserve clients on old tags when renewing dwm
-
-By default, when dwm is recompiled-restarted all clients will
-lose it's current tag and collapse to first tag. This patch preserves
-clients on old tags, however note that layout order is not preserved.
-
----
- dwm.c | 38 +++++++++++++++++++++++++++++++++++++-
- 1 file changed, 37 insertions(+), 1 deletion(-)
-
-diff --git a/dwm.c b/dwm.c
-index a96f33c..a12e0bd 100644
---- a/dwm.c
-+++ b/dwm.c
-@@ -62,7 +62,7 @@ enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
- enum { SchemeNorm, SchemeSel }; /* color schemes */
- enum { NetSupported, NetWMName, NetWMState, NetWMCheck,
- NetWMFullscreen, NetActiveWindow, NetWMWindowType,
-- NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */
-+ NetWMWindowTypeDialog, NetClientList, NetClientInfo, NetLast }; /* EWMH atoms */
- enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */
- enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
- ClkClientWin, ClkRootWin, ClkLast }; /* clicks */
-@@ -198,6 +198,7 @@ static void scan(void);
- static int sendevent(Client *c, Atom proto);
- static void sendmon(Client *c, Monitor *m);
- static void setclientstate(Client *c, long state);
-+static void setclienttagprop(Client *c);
- static void setfocus(Client *c);
- static void setfullscreen(Client *c, int fullscreen);
- static void setlayout(const Arg *arg);
-@@ -1060,6 +1061,26 @@ manage(Window w, XWindowAttributes *wa)
- updatewindowtype(c);
- updatesizehints(c);
- updatewmhints(c);
-+ {
-+ int format;
-+ unsigned long *data, n, extra;
-+ Monitor *m;
-+ Atom atom;
-+ if (XGetWindowProperty(dpy, c->win, netatom[NetClientInfo], 0L, 2L, False, XA_CARDINAL,
-+ &atom, &format, &n, &extra, (unsigned char **)&data) == Success && n == 2) {
-+ c->tags = *data;
-+ for (m = mons; m; m = m->next) {
-+ if (m->num == *(data+1)) {
-+ c->mon = m;
-+ break;
-+ }
-+ }
-+ }
-+ if (n > 0)
-+ XFree(data);
-+ }
-+ setclienttagprop(c);
-+
- XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask);
- grabbuttons(c, 0);
- if (!c->isfloating)
-@@ -1423,6 +1444,7 @@ sendmon(Client *c, Monitor *m)
- c->tags = m->tagset[m->seltags]; /* assign tags of target monitor */
- attach(c);
- attachstack(c);
-+ setclienttagprop(c);
- focus(NULL);
- arrange(NULL);
- }
-@@ -1566,6 +1588,7 @@ setup(void)
- netatom[NetWMWindowType] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False);
- netatom[NetWMWindowTypeDialog] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_DIALOG", False);
- netatom[NetClientList] = XInternAtom(dpy, "_NET_CLIENT_LIST", False);
-+ netatom[NetClientInfo] = XInternAtom(dpy, "_NET_CLIENT_INFO", False);
- /* init cursors */
- cursor[CurNormal] = drw_cur_create(drw, XC_left_ptr);
- cursor[CurResize] = drw_cur_create(drw, XC_sizing);
-@@ -1589,6 +1612,7 @@ setup(void)
- XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32,
- PropModeReplace, (unsigned char *) netatom, NetLast);
- XDeleteProperty(dpy, root, netatom[NetClientList]);
-+ XDeleteProperty(dpy, root, netatom[NetClientInfo]);
- /* select events */
- wa.cursor = cursor[CurNormal]->cursor;
- wa.event_mask = SubstructureRedirectMask|SubstructureNotifyMask
-@@ -1656,11 +1680,22 @@ spawn(const Arg *arg)
- }
- }
-
-+void
-+setclienttagprop(Client *c)
-+{
-+ long data[] = { (long) c->tags, (long) c->mon->num };
-+ XChangeProperty(dpy, c->win, netatom[NetClientInfo], XA_CARDINAL, 32,
-+ PropModeReplace, (unsigned char *) data, 2);
-+}
-+
- void
- tag(const Arg *arg)
- {
-+ Client *c;
- if (selmon->sel && arg->ui & TAGMASK) {
-+ c = selmon->sel;
- selmon->sel->tags = arg->ui & TAGMASK;
-+ setclienttagprop(c);
- focus(NULL);
- arrange(selmon);
- }
-@@ -1735,6 +1770,7 @@ toggletag(const Arg *arg)
- newtags = selmon->sel->tags ^ (arg->ui & TAGMASK);
- if (newtags) {
- selmon->sel->tags = newtags;
-+ setclienttagprop(selmon->sel);
- focus(NULL);
- arrange(selmon);
- }
---
-2.36.1