diff --git a/patches/vanitygaps/vanitygaps.patch b/patches/vanitygaps/vanitygaps.patch index a1e58a0..6f6e21e 100644 --- a/patches/vanitygaps/vanitygaps.patch +++ b/patches/vanitygaps/vanitygaps.patch @@ -1,26 +1,23 @@ -From acc4b618849ce625d6c32525e91743a96529580f Mon Sep 17 00:00:00 2001 -From: Bonicgamer <44382222+Bonicgamer@users.noreply.github.com> -Date: Mon, 17 Aug 2020 14:48:24 -0400 -Subject: [PATCH 1/2] Implement vanitygaps -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit +From d4cded5241c7f5b1e6562d228b1f08e169ed6a1b Mon Sep 17 00:00:00 2001 +From: snuk +Date: Tue, 23 Jul 2024 00:41:10 +0100 +Subject: [PATCH] adding vanitygaps -Signed-off-by: Leonardo Hernández Hernández --- - config.def.h | 21 ++++++++ - dwl.c | 150 +++++++++++++++++++++++++++++++++++++++++++++++---- - 2 files changed, 161 insertions(+), 10 deletions(-) + config.def.h | 22 +++++++ + dwl.c | 162 +++++++++++++++++++++++++++++++++++++++++++++++---- + 2 files changed, 172 insertions(+), 12 deletions(-) diff --git a/config.def.h b/config.def.h -index a784eb4f..6b04d9ff 100644 +index 22d2171..f4d4095 100644 --- a/config.def.h +++ b/config.def.h -@@ -6,7 +6,12 @@ +@@ -6,7 +6,13 @@ /* appearance */ static const int sloppyfocus = 1; /* focus follows mouse */ static const int bypass_surface_visibility = 0; /* 1 means idle inhibitors will disable idle tracking even if it's surface isn't visible */ +static const int smartgaps = 0; /* 1 means no outer gap when there is only one window */ ++static const int monoclegaps = 0; /* 1 means outer gaps in monocle layout */ static const unsigned int borderpx = 1; /* border pixel of windows */ +static const unsigned int gappih = 10; /* horiz inner gap between windows */ +static const unsigned int gappiv = 10; /* vert inner gap between windows */ @@ -29,7 +26,7 @@ index a784eb4f..6b04d9ff 100644 static const float rootcolor[] = COLOR(0x222222ff); static const float bordercolor[] = COLOR(0x444444ff); static const float focuscolor[] = COLOR(0x005577ff); -@@ -130,6 +135,22 @@ static const Key keys[] = { +@@ -133,6 +139,22 @@ static const Key keys[] = { { MODKEY, XKB_KEY_d, incnmaster, {.i = -1} }, { MODKEY, XKB_KEY_h, setmfact, {.f = -0.05f} }, { MODKEY, XKB_KEY_l, setmfact, {.f = +0.05f} }, @@ -53,10 +50,10 @@ index a784eb4f..6b04d9ff 100644 { MODKEY, XKB_KEY_Tab, view, {0} }, { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_C, killclient, {0} }, diff --git a/dwl.c b/dwl.c -index 6f041a0d..6a3e6fe2 100644 +index 5bf995e..e340899 100644 --- a/dwl.c +++ b/dwl.c -@@ -199,6 +199,10 @@ struct Monitor { +@@ -200,6 +200,10 @@ struct Monitor { struct wlr_box w; /* window area, layout-relative */ struct wl_list layers[4]; /* LayerSurface.link */ const Layout *lt[2]; @@ -67,16 +64,16 @@ index 6f041a0d..6a3e6fe2 100644 unsigned int seltags; unsigned int sellt; uint32_t tagset[2]; -@@ -269,6 +273,7 @@ static void createpointerconstraint(struct wl_listener *listener, void *data); +@@ -272,6 +276,7 @@ static void createpointerconstraint(struct wl_listener *listener, void *data); + static void createpopup(struct wl_listener *listener, void *data); static void cursorconstrain(struct wlr_pointer_constraint_v1 *constraint); static void cursorframe(struct wl_listener *listener, void *data); - static void cursorwarptohint(void); +static void defaultgaps(const Arg *arg); + static void cursorwarptohint(void); static void destroydecoration(struct wl_listener *listener, void *data); static void destroydragicon(struct wl_listener *listener, void *data); - static void destroyidleinhibitor(struct wl_listener *listener, void *data); -@@ -288,6 +293,13 @@ static Client *focustop(Monitor *m); - static void fullscreennotify(struct wl_listener *listener, void *data); +@@ -293,6 +298,13 @@ static void fullscreennotify(struct wl_listener *listener, void *data); + static void gpureset(struct wl_listener *listener, void *data); static void handlesig(int signo); static void incnmaster(const Arg *arg); +static void incgaps(const Arg *arg); @@ -89,7 +86,7 @@ index 6f041a0d..6a3e6fe2 100644 static void inputdevice(struct wl_listener *listener, void *data); static int keybinding(uint32_t mods, xkb_keysym_t sym); static void keypress(struct wl_listener *listener, void *data); -@@ -322,6 +334,7 @@ static void setcursorshape(struct wl_listener *listener, void *data); +@@ -327,6 +339,7 @@ static void setcursorshape(struct wl_listener *listener, void *data); static void setfloating(Client *c, int floating); static void setfullscreen(Client *c, int fullscreen); static void setgamma(struct wl_listener *listener, void *data); @@ -97,7 +94,7 @@ index 6f041a0d..6a3e6fe2 100644 static void setlayout(const Arg *arg); static void setmfact(const Arg *arg); static void setmon(Client *c, Monitor *m, uint32_t newtags); -@@ -335,6 +348,7 @@ static void tagmon(const Arg *arg); +@@ -340,6 +353,7 @@ static void tagmon(const Arg *arg); static void tile(Monitor *m); static void togglefloating(const Arg *arg); static void togglefullscreen(const Arg *arg); @@ -105,7 +102,7 @@ index 6f041a0d..6a3e6fe2 100644 static void toggletag(const Arg *arg); static void toggleview(const Arg *arg); static void unlocksession(struct wl_listener *listener, void *data); -@@ -407,6 +421,8 @@ static struct wlr_box sgeom; +@@ -413,6 +427,8 @@ static struct wlr_box sgeom; static struct wl_list mons; static Monitor *selmon; @@ -114,7 +111,7 @@ index 6f041a0d..6a3e6fe2 100644 #ifdef XWAYLAND static void activatex11(struct wl_listener *listener, void *data); static void associatex11(struct wl_listener *listener, void *data); -@@ -930,6 +946,11 @@ createmon(struct wl_listener *listener, void *data) +@@ -988,6 +1004,11 @@ createmon(struct wl_listener *listener, void *data) for (i = 0; i < LENGTH(m->layers); i++) wl_list_init(&m->layers[i]); @@ -126,7 +123,7 @@ index 6f041a0d..6a3e6fe2 100644 wlr_output_state_init(&state); /* Initialize monitor state using configured rules */ m->tagset[0] = m->tagset[1] = 1; -@@ -1131,6 +1152,12 @@ cursorwarptohint(void) +@@ -1170,6 +1191,12 @@ cursorwarptohint(void) } } @@ -139,7 +136,7 @@ index 6f041a0d..6a3e6fe2 100644 void destroydecoration(struct wl_listener *listener, void *data) { -@@ -1460,6 +1487,83 @@ incnmaster(const Arg *arg) +@@ -1523,6 +1550,83 @@ incnmaster(const Arg *arg) arrange(selmon); } @@ -223,7 +220,21 @@ index 6f041a0d..6a3e6fe2 100644 void inputdevice(struct wl_listener *listener, void *data) { -@@ -2256,6 +2360,16 @@ setgamma(struct wl_listener *listener, void *data) +@@ -1774,8 +1878,12 @@ monocle(Monitor *m) + wl_list_for_each(c, &clients, link) { + if (!VISIBLEON(c, m) || c->isfloating || c->isfullscreen) + continue; +- resize(c, m->w, 0); + n++; ++ if (!monoclegaps) ++ resize(c, m->w, 0); ++ else ++ resize(c, (struct wlr_box){.x = m->w.x + gappoh, .y = m->w.y + gappov, ++ .width = m->w.width - 2 * gappoh, .height = m->w.height - 2 * gappov}, 0); + } + if (n) + snprintf(m->ltsymbol, LENGTH(m->ltsymbol), "[%d]", n); +@@ -2351,6 +2459,16 @@ setgamma(struct wl_listener *listener, void *data) wlr_output_schedule_frame(m->wlr_output); } @@ -240,32 +251,35 @@ index 6f041a0d..6a3e6fe2 100644 void setlayout(const Arg *arg) { -@@ -2589,7 +2703,7 @@ tagmon(const Arg *arg) +@@ -2690,7 +2808,7 @@ tagmon(const Arg *arg) void tile(Monitor *m) { - unsigned int mw, my, ty; -+ unsigned int mw, my, ty, h, r, oe = enablegaps, ie = enablegaps; ++ unsigned int h, r, oe = enablegaps, ie = enablegaps, mw, my, ty; int i, n = 0; Client *c; -@@ -2599,22 +2713,31 @@ tile(Monitor *m) +@@ -2699,24 +2817,37 @@ tile(Monitor *m) + n++; if (n == 0) return; - ++ + if (smartgaps == n) { + oe = 0; // outer gaps disabled + } + + if (n > m->nmaster) -- mw = m->nmaster ? ROUND(m->w.width * m->mfact) : 0; -+ mw = m->nmaster ? ROUND((m->w.width + m->gappiv*ie) * m->mfact) : 0; +- mw = m->nmaster ? (int)roundf(m->w.width * m->mfact) : 0; ++ mw = m->nmaster ? (int)roundf((m->w.width + m->gappiv*ie) * (m->mfact)) : 0; else - mw = m->w.width; - i = my = ty = 0; + mw = m->w.width - 2*m->gappov*oe + m->gappiv*ie; + i = 0; + my = ty = m->gappoh*oe; ++ wl_list_for_each(c, &clients, link) { if (!VISIBLEON(c, m) || c->isfloating || c->isfullscreen) continue; @@ -278,19 +292,23 @@ index 6f041a0d..6a3e6fe2 100644 + resize(c, (struct wlr_box){.x = m->w.x + m->gappov*oe, .y = m->w.y + my, + .width = mw - m->gappiv*ie, .height = h}, 0); + my += c->geom.height + m->gappih*ie; ++ } else { - resize(c, (struct wlr_box){.x = m->w.x + mw, .y = m->w.y + ty, - .width = m->w.width - mw, .height = (m->w.height - ty) / (n - i)}, 0); - ty += c->geom.height; -+ r = n - i; +- } ++ r = n - i; + h = (m->w.height - ty - m->gappoh*oe - m->gappih*ie * (r - 1)) / r; + resize(c, (struct wlr_box){.x = m->w.x + mw + m->gappov*oe, .y = m->w.y + ty, + .width = m->w.width - mw - 2*m->gappov*oe, .height = h}, 0); + ty += c->geom.height + m->gappih*ie; - } ++ } ++ i++; } -@@ -2637,6 +2760,13 @@ togglefullscreen(const Arg *arg) + } +@@ -2738,6 +2869,13 @@ togglefullscreen(const Arg *arg) setfullscreen(sel, !sel->isfullscreen); } @@ -307,52 +325,3 @@ index 6f041a0d..6a3e6fe2 100644 -- 2.45.2 - -From d1c6fa3d9e6ca3ed55bf70c91f9da7b335312c6e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Leonardo=20Hern=C3=A1ndez=20Hern=C3=A1ndez?= - -Date: Wed, 20 Jul 2022 00:15:32 -0500 -Subject: [PATCH 2/2] allow gaps in monocle layout if requested -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Leonardo Hernández Hernández ---- - config.def.h | 1 + - dwl.c | 6 +++++- - 2 files changed, 6 insertions(+), 1 deletion(-) - -diff --git a/config.def.h b/config.def.h -index 6b04d9ff..395b28f4 100644 ---- a/config.def.h -+++ b/config.def.h -@@ -7,6 +7,7 @@ - static const int sloppyfocus = 1; /* focus follows mouse */ - static const int bypass_surface_visibility = 0; /* 1 means idle inhibitors will disable idle tracking even if it's surface isn't visible */ - static const int smartgaps = 0; /* 1 means no outer gap when there is only one window */ -+static const int monoclegaps = 0; /* 1 means outer gaps in monocle layout */ - static const unsigned int borderpx = 1; /* border pixel of windows */ - static const unsigned int gappih = 10; /* horiz inner gap between windows */ - static const unsigned int gappiv = 10; /* vert inner gap between windows */ -diff --git a/dwl.c b/dwl.c -index 6a3e6fe2..4579a194 100644 ---- a/dwl.c -+++ b/dwl.c -@@ -1821,8 +1821,12 @@ monocle(Monitor *m) - wl_list_for_each(c, &clients, link) { - if (!VISIBLEON(c, m) || c->isfloating || c->isfullscreen) - continue; -- resize(c, m->w, 0); - n++; -+ if (!monoclegaps) -+ resize(c, m->w, 0); -+ else -+ resize(c, (struct wlr_box){.x = m->w.x + gappoh, .y = m->w.y + gappov, -+ .width = m->w.width - 2 * gappoh, .height = m->w.height - 2 * gappov}, 0); - } - if (n) - snprintf(m->ltsymbol, LENGTH(m->ltsymbol), "[%d]", n); --- -2.45.2 -