diff options
author | Philip Wittamore <philip@wittamore.com> | 2025-05-28 14:21:21 +0200 |
---|---|---|
committer | Philip Wittamore <philip@wittamore.com> | 2025-05-28 14:21:21 +0200 |
commit | f2cf00f4c9c076da9c950148f885b54d12e6d6d7 (patch) | |
tree | 121ad7e24a9d50cbe910702e21f192fa4579fb66 | |
parent | b8df3ec23fe14cedfdc50f7f2cd45c09e7e9631c (diff) | |
download | diffs-f2cf00f4c9c076da9c950148f885b54d12e6d6d7.tar.gz diffs-f2cf00f4c9c076da9c950148f885b54d12e6d6d7.tar.bz2 diffs-f2cf00f4c9c076da9c950148f885b54d12e6d6d7.zip |
update
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | patch-dwm-280525 (renamed from dwm_6.5_240525.diff) | 196 |
2 files changed, 145 insertions, 53 deletions
@@ -1 +1,3 @@ ## My diff files + + diff --git a/dwm_6.5_240525.diff b/patch-dwm-280525 index 81aee62..779d4cf 100644 --- a/dwm_6.5_240525.diff +++ b/patch-dwm-280525 @@ -1,6 +1,6 @@ -diff -r -u a/dwm/config.def.h b/dwm/config.def.h ---- a/dwm/config.def.h 2025-05-19 09:47:15.538090711 +0200 -+++ b/dwm/config.def.h 2025-05-23 09:43:25.178507493 +0200 +diff -u /home/philip/.local/src/MASTER/dwm/config.def.h /home/philip/.local/src/WORKING/dwm/config.def.h +--- /home/philip/.local/src/MASTER/dwm/config.def.h 2025-05-24 15:06:33.290174186 +0200 ++++ /home/philip/.local/src/WORKING/dwm/config.def.h 2025-05-28 09:43:24.413444339 +0200 @@ -1,34 +1,39 @@ /* See LICENSE file for copyright and license details. */ +#include <X11/XF86keysym.h> @@ -91,17 +91,18 @@ diff -r -u a/dwm/config.def.h b/dwm/config.def.h - { MODKEY, XK_b, togglebar, {0} }, - { MODKEY, XK_j, focusstack, {.i = +1 } }, - { MODKEY, XK_k, focusstack, {.i = -1 } }, -- { MODKEY, XK_i, incna, {.i = +1 } }, +- { MODKEY, XK_i, incnmaster, {.i = +1 } }, + { MODKEY, XK_Return, spawn, {.v = termcmd } }, + { MODKEY, XK_w, spawn, SHCMD("librewolf") }, -+ { MODKEY, XK_x, spawn, SHCMD("rofi -show power-menu -modi power-menu:rofi-power-menu") }, - { MODKEY, XK_d, incna, {.i = -1 } }, ++ { MODKEY, XK_x, spawn, SHCMD("dmenu-power") }, ++ { MODKEY, XK_v, spawn, SHCMD("dmenu-connect") }, + { MODKEY, XK_d, incnmaster, {.i = -1 } }, - { MODKEY, XK_h, setmfact, {.f = -0.05} }, - { MODKEY, XK_l, setmfact, {.f = +0.05} }, - { MODKEY, XK_Return, zoom, {0} }, - { MODKEY, XK_Tab, view, {0} }, - { MODKEY|ShiftMask, XK_c, killclient, {0} }, -+ { MODKEY, XK_i, incna, {.i = +1 } }, ++ { MODKEY, XK_i, incnmaster, {.i = +1 } }, { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, @@ -150,8 +151,7 @@ diff -r -u a/dwm/config.def.h b/dwm/config.def.h + { 0, XF86XK_AudioMicMute, spawn, SHCMD("dwm-audio mictoggle") }, + { 0, XF86XK_MonBrightnessDown, spawn, SHCMD("brightnessctl set 10%-") }, + { 0, XF86XK_MonBrightnessUp, spawn, SHCMD("brightnessctl set 10%+") }, -+ { 0, XF86XK_Launch1, spawn, SHCMD("dpower") }, -+ { 0, XK_Menu, spawn, SHCMD("dpower") }, ++ { 0, XF86XK_Launch1, spawn, SHCMD("dmenu-power") }, + { 0, XK_Print, spawn, SHCMD("screenshot.sh") }, + TAGKEYS( XK_ampersand, 0) + TAGKEYS( XK_eacute, 1) @@ -166,10 +166,10 @@ diff -r -u a/dwm/config.def.h b/dwm/config.def.h }; /* button definitions */ -Only in b/dwm/: config.h -diff -r -u a/dwm/config.mk b/dwm/config.mk ---- a/dwm/config.mk 2025-05-19 09:47:15.538090711 +0200 -+++ b/dwm/config.mk 2025-05-23 09:43:25.178507493 +0200 +Only in /home/philip/.local/src/WORKING/dwm: config.h +diff -u /home/philip/.local/src/MASTER/dwm/config.mk /home/philip/.local/src/WORKING/dwm/config.mk +--- /home/philip/.local/src/MASTER/dwm/config.mk 2025-05-24 15:06:33.290174186 +0200 ++++ /home/philip/.local/src/WORKING/dwm/config.mk 2025-05-28 09:43:24.413444339 +0200 @@ -20,10 +20,11 @@ # OpenBSD (uncomment) #FREETYPEINC = ${X11INC}/freetype2 @@ -183,9 +183,9 @@ diff -r -u a/dwm/config.mk b/dwm/config.mk # flags CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700L -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS} -diff -r -u a/dwm/drw.c b/dwm/drw.c ---- a/dwm/drw.c 2025-05-19 09:47:15.538090711 +0200 -+++ b/dwm/drw.c 2025-05-23 09:43:25.178507493 +0200 +diff -u /home/philip/.local/src/MASTER/dwm/drw.c /home/philip/.local/src/WORKING/dwm/drw.c +--- /home/philip/.local/src/MASTER/dwm/drw.c 2025-05-24 15:06:33.290174186 +0200 ++++ /home/philip/.local/src/WORKING/dwm/drw.c 2025-05-28 09:43:24.416777675 +0200 @@ -181,7 +181,7 @@ /* Wrapper to create color schemes. The caller has to call free(3) on the * returned color scheme when done using it. */ @@ -195,9 +195,9 @@ diff -r -u a/dwm/drw.c b/dwm/drw.c { size_t i; Clr *ret; -diff -r -u a/dwm/drw.h b/dwm/drw.h ---- a/dwm/drw.h 2025-05-19 09:47:15.538090711 +0200 -+++ b/dwm/drw.h 2025-05-23 09:43:25.178507493 +0200 +diff -u /home/philip/.local/src/MASTER/dwm/drw.h /home/philip/.local/src/WORKING/dwm/drw.h +--- /home/philip/.local/src/MASTER/dwm/drw.h 2025-05-24 15:06:33.290174186 +0200 ++++ /home/philip/.local/src/WORKING/dwm/drw.h 2025-05-28 09:43:24.416777675 +0200 @@ -40,7 +40,7 @@ /* Colorscheme abstraction */ @@ -207,9 +207,9 @@ diff -r -u a/dwm/drw.h b/dwm/drw.h /* Cursor abstraction */ Cur *drw_cur_create(Drw *drw, int shape); -diff -r -u a/dwm/dwm.c b/dwm/dwm.c ---- a/dwm/dwm.c 2025-05-19 09:47:15.538090711 +0200 -+++ b/dwm/dwm.c 2025-05-23 09:43:25.178507493 +0200 +diff -u /home/philip/.local/src/MASTER/dwm/dwm.c /home/philip/.local/src/WORKING/dwm/dwm.c +--- /home/philip/.local/src/MASTER/dwm/dwm.c 2025-05-24 15:06:33.290174186 +0200 ++++ /home/philip/.local/src/WORKING/dwm/dwm.c 2025-05-28 09:43:24.416777675 +0200 @@ -35,11 +35,18 @@ #include <X11/Xatom.h> #include <X11/Xlib.h> @@ -229,7 +229,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c #include "drw.h" #include "util.h" -@@ -49,12 +56,28 @@ +@@ -49,19 +56,35 @@ #define CLEANMASK(mask) (mask & ~(numlockmask|LockMask) & (ShiftMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask)) #define INTERSECT(x,y,w,h,m) (MAX(0, MIN((x)+(w),(m)->wx+(m)->ww) - MAX((x),(m)->wx)) \ * MAX(0, MIN((y)+(h),(m)->wy+(m)->wh) - MAX((y),(m)->wy))) @@ -259,6 +259,14 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c /* enums */ 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 */ @@ -91,9 +114,11 @@ int basew, baseh, incw, inch, maxw, maxh, minw, minh, hintsvalid; int bw, oldbw; @@ -306,7 +314,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c static void expose(XEvent *e); static void focus(Client *c); @@ -177,12 +208,14 @@ - static void incna(const Arg *arg); + static void incnmaster(const Arg *arg); static void keypress(XEvent *e); static void killclient(const Arg *arg); +static void loadxrdb(void); @@ -320,7 +328,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c static Client *nexttiled(Client *c); static void pop(Client *c); static void propertynotify(XEvent *e); -@@ -192,6 +225,7 @@ +@@ -192,11 +225,13 @@ static void resizeclient(Client *c, int x, int y, int w, int h); static void resizemouse(const Arg *arg); static void restack(Monitor *m); @@ -328,7 +336,13 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c static void run(void); static void scan(void); static int sendevent(Client *c, Atom proto); -@@ -226,12 +260,25 @@ + 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); +@@ -226,12 +261,25 @@ static void updatewindowtype(Client *c); static void updatewmhints(Client *c); static void view(const Arg *arg); @@ -354,7 +368,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c /* variables */ static const char broken[] = "broken"; -@@ -267,6 +314,8 @@ +@@ -267,6 +315,8 @@ static Monitor *mons, *selmon; static Window root, wmcheckwin; @@ -363,7 +377,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c /* configuration, allows nested code to access above variables */ #include "config.h" -@@ -296,6 +345,8 @@ +@@ -296,6 +346,8 @@ && (!r->class || strstr(class, r->class)) && (!r->instance || strstr(instance, r->instance))) { @@ -372,7 +386,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c c->isfloating = r->isfloating; c->tags |= r->tags; for (m = mons; m && m->num != r->monitor; m = m->next); -@@ -408,6 +459,17 @@ +@@ -408,6 +460,17 @@ } void @@ -390,7 +404,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c attachstack(Client *c) { c->snext = c->mon->stack; -@@ -415,6 +477,53 @@ +@@ -415,6 +478,53 @@ } void @@ -444,7 +458,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c buttonpress(XEvent *e) { unsigned int i, x, click; -@@ -654,6 +763,34 @@ +@@ -654,6 +764,34 @@ if ((c = wintoclient(ev->window))) unmanage(c, 1); @@ -462,15 +476,15 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c + if(n == 0) + return; + -+ if(n > m->na) { -+ mw = m->na ? m->ww * m->mfact : 0; -+ snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n - m->na); ++ if(n > m->nmaster) { ++ mw = m->nmaster ? m->ww * m->mfact : 0; ++ snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n - m->nmaster); + } + else + mw = m->ww; + for(i = my = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) -+ if(i < m->na) { -+ h = (m->wh - my) / (MIN(n, m->na) - i); ++ if(i < m->nmaster) { ++ h = (m->wh - my) / (MIN(n, m->nmaster) - i); + resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), False); + my += HEIGHT(c); + } @@ -479,7 +493,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c } void -@@ -757,6 +894,28 @@ +@@ -757,6 +895,28 @@ } void @@ -508,7 +522,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c enternotify(XEvent *e) { Client *c; -@@ -1028,14 +1187,46 @@ +@@ -1028,14 +1188,46 @@ } void @@ -556,7 +570,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c /* geometry */ c->x = c->oldx = wa->x; c->y = c->oldy = wa->y; -@@ -1050,6 +1241,7 @@ +@@ -1050,6 +1242,7 @@ } else { c->mon = selmon; applyrules(c); @@ -564,7 +578,33 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c } if (c->x + WIDTH(c) > c->mon->wx + c->mon->ww) -@@ -1073,7 +1265,7 @@ +@@ -1067,13 +1260,33 @@ + 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) c->isfloating = c->oldstate = trans != None || c->isfixed; if (c->isfloating) XRaiseWindow(dpy, c->win); @@ -573,7 +613,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c attachstack(c); XChangeProperty(dpy, root, netatom[NetClientList], XA_WINDOW, 32, PropModeAppend, (unsigned char *) &(c->win), 1); -@@ -1084,6 +1276,8 @@ +@@ -1084,6 +1297,8 @@ c->mon->sel = c; arrange(c->mon); XMapWindow(dpy, c->win); @@ -582,7 +622,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c focus(NULL); } -@@ -1201,6 +1395,23 @@ +@@ -1201,6 +1416,23 @@ } } @@ -606,7 +646,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c Client * nexttiled(Client *c) { -@@ -1217,6 +1428,13 @@ +@@ -1217,6 +1449,13 @@ arrange(c->mon); } @@ -620,7 +660,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c void propertynotify(XEvent *e) { -@@ -1285,12 +1503,26 @@ +@@ -1285,12 +1524,26 @@ resizeclient(Client *c, int x, int y, int w, int h) { XWindowChanges wc; @@ -647,7 +687,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc); configure(c); XSync(dpy, False); -@@ -1379,6 +1611,38 @@ +@@ -1379,6 +1632,38 @@ } void @@ -686,16 +726,56 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c run(void) { XEvent ev; -@@ -1426,7 +1690,7 @@ +@@ -1426,8 +1711,9 @@ detachstack(c); c->mon = m; c->tags = m->tagset[m->seltags]; /* assign tags of target monitor */ - attach(c); + attachaside(c); attachstack(c); ++ setclienttagprop(c); focus(NULL); arrange(NULL); -@@ -1684,6 +1948,32 @@ + } +@@ -1578,6 +1864,7 @@ + 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); +@@ -1601,6 +1888,7 @@ + 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 +@@ -1666,10 +1954,21 @@ + } + + 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); + } +@@ -1684,6 +1983,32 @@ } void @@ -728,7 +808,15 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c tile(Monitor *m) { unsigned int i, n, h, mw, my, ty; -@@ -1780,6 +2070,20 @@ +@@ -1744,6 +2069,7 @@ + newtags = selmon->sel->tags ^ (arg->ui & TAGMASK); + if (newtags) { + selmon->sel->tags = newtags; ++ setclienttagprop(selmon->sel); + focus(NULL); + arrange(selmon); + } +@@ -1780,6 +2106,20 @@ Monitor *m = c->mon; XWindowChanges wc; @@ -749,7 +837,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c detach(c); detachstack(c); if (!destroyed) { -@@ -1795,9 +2099,12 @@ +@@ -1795,9 +2135,12 @@ XUngrabServer(dpy); } free(c); @@ -765,7 +853,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c } void -@@ -1914,7 +2221,7 @@ +@@ -1914,7 +2257,7 @@ m->clients = c->next; detachstack(c); c->mon = mons; @@ -774,7 +862,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c attachstack(c); } if (m == selmon) -@@ -2061,6 +2368,148 @@ +@@ -2061,6 +2404,148 @@ arrange(selmon); } @@ -923,7 +1011,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c Client * wintoclient(Window w) { -@@ -2128,6 +2577,17 @@ +@@ -2128,6 +2613,17 @@ } void @@ -941,7 +1029,7 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c zoom(const Arg *arg) { Client *c = selmon->sel; -@@ -2150,10 +2610,14 @@ +@@ -2150,10 +2646,14 @@ fputs("warning: no locale support\n", stderr); if (!(dpy = XOpenDisplay(NULL))) die("dwm: cannot open display"); @@ -957,3 +1045,5 @@ diff -r -u a/dwm/dwm.c b/dwm/dwm.c die("pledge"); #endif /* __OpenBSD__ */ scan(); +Only in /home/philip/.local/src/MASTER/dwm/: .git +Only in /home/philip/.local/src/WORKING/dwm: README.md |