From 6e1586aac29ec63abee0c18425aba6bcb8f5ad6d Mon Sep 17 00:00:00 2001 From: kaoplo Date: Fri, 16 Sep 2022 17:37:40 +0200 Subject: [PATCH] added the fullgaps patch --- config.def.h | 32 +++++++++--- config.h | 4 ++ dwm | Bin 72808 -> 72840 bytes dwm-barpadding-6.2.diff | 110 ++++++++++++++++++++++++++++++++++++++++ dwm-fullgaps-6.2.diff | 95 ++++++++++++++++++++++++++++++++++ dwm.c | 31 +++++++---- dwm.o | Bin 58704 -> 59032 bytes 7 files changed, 256 insertions(+), 16 deletions(-) create mode 100644 dwm-barpadding-6.2.diff create mode 100644 dwm-fullgaps-6.2.diff diff --git a/config.def.h b/config.def.h index 061ad66..3606a54 100644 --- a/config.def.h +++ b/config.def.h @@ -1,11 +1,16 @@ /* See LICENSE file for copyright and license details. */ +#include /* appearance */ static const unsigned int borderpx = 1; /* border pixel of windows */ +static const unsigned int gappx = 15; /* gaps between windows */ static const unsigned int snap = 32; /* snap pixel */ -static const int showbar = 1; /* 0 means no bar */ -static const int topbar = 1; /* 0 means bottom bar */ -static const char *fonts[] = { "monospace:size=10" }; +static const int showbar = 1; /* 0 means no bar */ +static const int topbar = 1; /* 0 means bottom bar */ +static const char *fonts[] = { + "monospace:size=14", + "Nerd Font:size=14:antialias=true", + }; static const char dmenufont[] = "monospace:size=10"; static const char col_gray1[] = "#222222"; static const char col_gray2[] = "#444444"; @@ -19,7 +24,7 @@ static const char *colors[][3] = { }; /* tagging */ -static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; +static const char *tags[] = { "obs", "web", "gam", "4", "5", "6", "7", "8", "9" }; static const Rule rules[] = { /* xprop(1): @@ -45,7 +50,7 @@ static const Layout layouts[] = { }; /* key definitions */ -#define MODKEY Mod1Mask +#define MODKEY Mod4Mask #define TAGKEYS(KEY,TAG) \ { MODKEY, KEY, view, {.ui = 1 << TAG} }, \ { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \ @@ -57,13 +62,20 @@ static const Layout layouts[] = { /* commands */ static const char *dmenucmd[] = { "dmenu_run", "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; -static const char *termcmd[] = { "st", NULL }; +static const char *termcmd[] = { "alacritty", NULL }; +static const char *upvol[] = { "/usr/bin/pactl", "set-sink-volume", "0", "+5%", NULL }; +static const char *downvol[] = { "/usr/bin/pactl", "set-sink-volume", "0", "-5%", NULL }; +static const char *mutevol[] = { "/usr/bin/pactl", "set-sink-mute", "0", "toggle", NULL }; +static const char *light_up[] = {"/usr/bin/light", "-A", "5", NULL}; +static const char *light_down[] = {"/usr/bin/light", "-U", "5", NULL}; +static const char *firefox[] = { "firefox", NULL }; static const Key keys[] = { /* modifier key function argument */ { MODKEY, XK_p, spawn, {.v = dmenucmd } }, { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, { MODKEY, XK_b, togglebar, {0} }, + { MODKEY, XK_c, spawn, {.v = firefox} }, { MODKEY, XK_j, focusstack, {.i = +1 } }, { MODKEY, XK_k, focusstack, {.i = -1 } }, { MODKEY, XK_i, incnmaster, {.i = +1 } }, @@ -84,6 +96,9 @@ static const Key keys[] = { { MODKEY, XK_period, focusmon, {.i = +1 } }, { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, + { MODKEY, XK_minus, setgaps, {.i = -1 } }, + { MODKEY, XK_equal, setgaps, {.i = +1 } }, + { MODKEY|ShiftMask, XK_equal, setgaps, {.i = 0 } }, TAGKEYS( XK_1, 0) TAGKEYS( XK_2, 1) TAGKEYS( XK_3, 2) @@ -94,6 +109,11 @@ static const Key keys[] = { TAGKEYS( XK_8, 7) TAGKEYS( XK_9, 8) { MODKEY|ShiftMask, XK_q, quit, {0} }, + { 0, XF86XK_AudioLowerVolume, spawn, {.v = downvol } }, + { 0, XF86XK_AudioMute, spawn, {.v = mutevol } }, + { 0, XF86XK_AudioRaiseVolume, spawn, {.v = upvol } }, + { 0, XF86XK_MonBrightnessUp, spawn, {.v = light_up} }, + { 0, XF86XK_MonBrightnessDown, spawn, {.v = light_down} }, }; /* button definitions */ diff --git a/config.h b/config.h index d358569..3606a54 100644 --- a/config.h +++ b/config.h @@ -3,6 +3,7 @@ /* appearance */ static const unsigned int borderpx = 1; /* border pixel of windows */ +static const unsigned int gappx = 15; /* gaps between windows */ static const unsigned int snap = 32; /* snap pixel */ static const int showbar = 1; /* 0 means no bar */ static const int topbar = 1; /* 0 means bottom bar */ @@ -95,6 +96,9 @@ static const Key keys[] = { { MODKEY, XK_period, focusmon, {.i = +1 } }, { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, + { MODKEY, XK_minus, setgaps, {.i = -1 } }, + { MODKEY, XK_equal, setgaps, {.i = +1 } }, + { MODKEY|ShiftMask, XK_equal, setgaps, {.i = 0 } }, TAGKEYS( XK_1, 0) TAGKEYS( XK_2, 1) TAGKEYS( XK_3, 2) diff --git a/dwm b/dwm index fa91cae7c382401209f2b044b057fe887903eae8..dc90edf75013ce94e1dc44d802cf6dff28093f39 100755 GIT binary patch delta 18039 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 delta 17563 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 fjJ{U&OEclients; c; c = c->next) + if (c->isfullscreen) + resizeclient(c, m->mx, m->my, m->mw, m->mh); +- XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, m->ww, bh); ++ XMoveResizeWindow(dpy, m->barwin, m->wx + sp, m->by + vp, m->ww - 2 * sp, bh); + } + focus(NULL); + arrange(NULL); +@@ -705,7 +707,7 @@ drawbar(Monitor *m) + if (m == selmon) { /* status is only drawn on selected monitor */ + drw_setscheme(drw, scheme[SchemeNorm]); + sw = TEXTW(stext) - lrpad + 2; /* 2px right padding */ +- drw_text(drw, m->ww - sw, 0, sw, bh, 0, stext, 0); ++ drw_text(drw, m->ww - sw - 2 * sp, 0, sw, bh, 0, stext, 0); + } + + for (c = m->clients; c; c = c->next) { +@@ -731,12 +733,12 @@ drawbar(Monitor *m) + if ((w = m->ww - sw - x) > bh) { + if (m->sel) { + drw_setscheme(drw, scheme[m == selmon ? SchemeSel : SchemeNorm]); +- drw_text(drw, x, 0, w, bh, lrpad / 2, m->sel->name, 0); ++ drw_text(drw, x, 0, w - 2 * sp, bh, lrpad / 2, m->sel->name, 0); + if (m->sel->isfloating) + drw_rect(drw, x + boxs, boxs, boxw, boxw, m->sel->isfixed, 0); + } else { + drw_setscheme(drw, scheme[SchemeNorm]); +- drw_rect(drw, x, 0, w, bh, 1, 1); ++ drw_rect(drw, x, 0, w - 2 * sp, bh, 1, 1); + } + } + drw_map(drw, m->barwin, 0, 0, m->ww, bh); +@@ -1547,6 +1549,9 @@ setup(void) + lrpad = drw->fonts->h; + bh = drw->fonts->h + 2; + updategeom(); ++ sp = sidepad; ++ vp = (topbar == 1) ? vertpad : - vertpad; ++ + /* init atoms */ + utf8string = XInternAtom(dpy, "UTF8_STRING", False); + wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); +@@ -1573,6 +1578,7 @@ setup(void) + /* init bars */ + updatebars(); + updatestatus(); ++ updatebarpos(selmon); + /* supporting window for NetWMCheck */ + wmcheckwin = XCreateSimpleWindow(dpy, root, 0, 0, 1, 1, 0, 0, 0); + XChangeProperty(dpy, wmcheckwin, netatom[NetWMCheck], XA_WINDOW, 32, +@@ -1701,7 +1707,7 @@ togglebar(const Arg *arg) + { + selmon->showbar = !selmon->showbar; + updatebarpos(selmon); +- XMoveResizeWindow(dpy, selmon->barwin, selmon->wx, selmon->by, selmon->ww, bh); ++ XMoveResizeWindow(dpy, selmon->barwin, selmon->wx + sp, selmon->by + vp, selmon->ww - 2 * sp, bh); + arrange(selmon); + } + +@@ -1811,7 +1817,7 @@ updatebars(void) + for (m = mons; m; m = m->next) { + if (m->barwin) + continue; +- m->barwin = XCreateWindow(dpy, root, m->wx, m->by, m->ww, bh, 0, DefaultDepth(dpy, screen), ++ m->barwin = XCreateWindow(dpy, root, m->wx + sp, m->by + vp, m->ww - 2 * sp, bh, 0, DefaultDepth(dpy, screen), + CopyFromParent, DefaultVisual(dpy, screen), + CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa); + XDefineCursor(dpy, m->barwin, cursor[CurNormal]->cursor); +@@ -1826,11 +1832,11 @@ updatebarpos(Monitor *m) + m->wy = m->my; + m->wh = m->mh; + if (m->showbar) { +- m->wh -= bh; +- m->by = m->topbar ? m->wy : m->wy + m->wh; +- m->wy = m->topbar ? m->wy + bh : m->wy; ++ m->wh = m->wh - vertpad - bh; ++ m->by = m->topbar ? m->wy : m->wy + m->wh + vertpad; ++ m->wy = m->topbar ? m->wy + bh + vp : m->wy; + } else +- m->by = -bh; ++ m->by = -bh - vp; + } + + void diff --git a/dwm-fullgaps-6.2.diff b/dwm-fullgaps-6.2.diff new file mode 100644 index 0000000..7206aec --- /dev/null +++ b/dwm-fullgaps-6.2.diff @@ -0,0 +1,95 @@ +diff --git a/config.def.h b/config.def.h +index 1c0b587..38d2f6c 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -2,6 +2,7 @@ + + /* appearance */ + static const unsigned int borderpx = 1; /* border pixel of windows */ ++static const unsigned int gappx = 5; /* gaps between windows */ + static const unsigned int snap = 32; /* snap pixel */ + static const int showbar = 1; /* 0 means no bar */ + static const int topbar = 1; /* 0 means bottom bar */ +@@ -84,6 +85,9 @@ static Key keys[] = { + { MODKEY, XK_period, focusmon, {.i = +1 } }, + { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, + { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, ++ { MODKEY, XK_minus, setgaps, {.i = -1 } }, ++ { MODKEY, XK_equal, setgaps, {.i = +1 } }, ++ { MODKEY|ShiftMask, XK_equal, setgaps, {.i = 0 } }, + TAGKEYS( XK_1, 0) + TAGKEYS( XK_2, 1) + TAGKEYS( XK_3, 2) +diff --git a/dwm.c b/dwm.c +index 4465af1..4363627 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -119,6 +119,7 @@ struct Monitor { + int by; /* bar geometry */ + int mx, my, mw, mh; /* screen size */ + int wx, wy, ww, wh; /* window area */ ++ int gappx; /* gaps between windows */ + unsigned int seltags; + unsigned int sellt; + unsigned int tagset[2]; +@@ -199,6 +200,7 @@ static void sendmon(Client *c, Monitor *m); + static void setclientstate(Client *c, long state); + static void setfocus(Client *c); + static void setfullscreen(Client *c, int fullscreen); ++static void setgaps(const Arg *arg); + static void setlayout(const Arg *arg); + static void setmfact(const Arg *arg); + static void setup(void); +@@ -638,6 +640,7 @@ createmon(void) + m->nmaster = nmaster; + m->showbar = showbar; + m->topbar = topbar; ++ m->gappx = gappx; + m->lt[0] = &layouts[0]; + m->lt[1] = &layouts[1 % LENGTH(layouts)]; + strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol); +@@ -1497,6 +1500,16 @@ setfullscreen(Client *c, int fullscreen) + } + } + ++void ++setgaps(const Arg *arg) ++{ ++ if ((arg->i == 0) || (selmon->gappx + arg->i < 0)) ++ selmon->gappx = 0; ++ else ++ selmon->gappx += arg->i; ++ arrange(selmon); ++} ++ + void + setlayout(const Arg *arg) + { +@@ -1683,16 +1696,16 @@ tile(Monitor *m) + if (n > m->nmaster) + mw = m->nmaster ? m->ww * m->mfact : 0; + else +- mw = m->ww; +- for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) ++ mw = m->ww - m->gappx; ++ for (i = 0, my = ty = m->gappx, c = nexttiled(m->clients); c; c = nexttiled(c->next), 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), 0); +- my += HEIGHT(c); ++ h = (m->wh - my) / (MIN(n, m->nmaster) - i) - m->gappx; ++ resize(c, m->wx + m->gappx, m->wy + my, mw - (2*c->bw) - m->gappx, h - (2*c->bw), 0); ++ my += HEIGHT(c) + m->gappx; + } else { +- h = (m->wh - ty) / (n - i); +- resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), 0); +- ty += HEIGHT(c); ++ h = (m->wh - ty) / (n - i) - m->gappx; ++ resize(c, m->wx + mw + m->gappx, m->wy + ty, m->ww - mw - (2*c->bw) - 2*m->gappx, h - (2*c->bw), 0); ++ ty += HEIGHT(c) + m->gappx; + } + } + +-- +2.20.1 + diff --git a/dwm.c b/dwm.c index e5efb6a..46fab43 100644 --- a/dwm.c +++ b/dwm.c @@ -119,6 +119,7 @@ struct Monitor { int by; /* bar geometry */ int mx, my, mw, mh; /* screen size */ int wx, wy, ww, wh; /* window area */ + int gappx; /* gaps between windows */ unsigned int seltags; unsigned int sellt; unsigned int tagset[2]; @@ -200,6 +201,7 @@ static void sendmon(Client *c, Monitor *m); static void setclientstate(Client *c, long state); static void setfocus(Client *c); static void setfullscreen(Client *c, int fullscreen); +static void setgaps(const Arg *arg); static void setlayout(const Arg *arg); static void setmfact(const Arg *arg); static void setup(void); @@ -642,6 +644,7 @@ createmon(void) m->nmaster = nmaster; m->showbar = showbar; m->topbar = topbar; + m->gappx = gappx; m->lt[0] = &layouts[0]; m->lt[1] = &layouts[1 % LENGTH(layouts)]; strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol); @@ -1498,6 +1501,16 @@ setfullscreen(Client *c, int fullscreen) } } +void +setgaps(const Arg *arg) +{ + if ((arg->i == 0) || (selmon->gappx + arg->i < 0)) + selmon->gappx = 0; + else + selmon->gappx += arg->i; + arrange(selmon); +} + void setlayout(const Arg *arg) { @@ -1679,18 +1692,16 @@ tile(Monitor *m) if (n > m->nmaster) mw = m->nmaster ? m->ww * m->mfact : 0; else - mw = m->ww; - for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) + mw = m->ww - m->gappx; + for (i = 0, my = ty = m->gappx, c = nexttiled(m->clients); c; c = nexttiled(c->next), 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), 0); - if (my + HEIGHT(c) < m->wh) - my += HEIGHT(c); + h = (m->wh - my) / (MIN(n, m->nmaster) - i) - m->gappx; + resize(c, m->wx + m->gappx, m->wy + my, mw - (2*c->bw) - m->gappx, h - (2*c->bw), 0); + my += HEIGHT(c) + m->gappx; } else { - h = (m->wh - ty) / (n - i); - resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), 0); - if (ty + HEIGHT(c) < m->wh) - ty += HEIGHT(c); + h = (m->wh - ty) / (n - i) - m->gappx; + resize(c, m->wx + mw + m->gappx, m->wy + ty, m->ww - mw - (2*c->bw) - 2*m->gappx, h - (2*c->bw), 0); + ty += HEIGHT(c) + m->gappx; } } diff --git a/dwm.o b/dwm.o index 21ef335e9befc306aab72b6204be08f77fe3b664..c1372781f89d87bfde25074896d2f6643a0a602e 100644 GIT binary patch delta 19195 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 delta 19128 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
Vtx5jU4dSwmK~kM6>L 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