summaryrefslogtreecommitdiff
path: root/wm/dwl/main...sevz17:vanitygaps.patch
diff options
context:
space:
mode:
authorstkhan <personal@slickd.xyz>2023-03-31 19:39:34 -0500
committerstkhan <personal@slickd.xyz>2023-03-31 19:39:34 -0500
commit07afc07ffff324f3a355f2437bd643b616fe0af4 (patch)
treed4462f24f19b309d693037ae7ec8fcab5168583b /wm/dwl/main...sevz17:vanitygaps.patch
parentc0092ba1563cd27086f968db59de420299508947 (diff)
basic wm
Diffstat (limited to 'wm/dwl/main...sevz17:vanitygaps.patch')
-rw-r--r--wm/dwl/main...sevz17:vanitygaps.patch344
1 files changed, 0 insertions, 344 deletions
diff --git a/wm/dwl/main...sevz17:vanitygaps.patch b/wm/dwl/main...sevz17:vanitygaps.patch
deleted file mode 100644
index f41c35e..0000000
--- a/wm/dwl/main...sevz17:vanitygaps.patch
+++ /dev/null
@@ -1,344 +0,0 @@
-From b0ada8034d9fc9ffe1d57f49ea12bcee31a53a16 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
-
----
- config.def.h | 21 ++++++++
- dwl.c | 150 +++++++++++++++++++++++++++++++++++++++++++++++----
- 2 files changed, 161 insertions(+), 10 deletions(-)
-
-diff --git a/config.def.h b/config.def.h
-index a4f7c13d..e58aa9f1 100644
---- a/config.def.h
-+++ b/config.def.h
-@@ -1,7 +1,12 @@
- /* 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 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 */
-+static const unsigned int gappoh = 10; /* horiz outer gap between windows and screen edge */
-+static const unsigned int gappov = 10; /* vert outer gap between windows and screen edge */
- static const float rootcolor[] = {0.3, 0.3, 0.3, 1.0};
- static const float bordercolor[] = {0.5, 0.5, 0.5, 1.0};
- static const float focuscolor[] = {1.0, 0.0, 0.0, 1.0};
-@@ -118,6 +123,22 @@ static const Key keys[] = {
- { MODKEY, XKB_KEY_d, incnmaster, {.i = -1} },
- { MODKEY, XKB_KEY_h, setmfact, {.f = -0.05} },
- { MODKEY, XKB_KEY_l, setmfact, {.f = +0.05} },
-+ { MODKEY|WLR_MODIFIER_LOGO, XKB_KEY_h, incgaps, {.i = +1 } },
-+ { MODKEY|WLR_MODIFIER_LOGO, XKB_KEY_l, incgaps, {.i = -1 } },
-+ { MODKEY|WLR_MODIFIER_LOGO|WLR_MODIFIER_SHIFT, XKB_KEY_H, incogaps, {.i = +1 } },
-+ { MODKEY|WLR_MODIFIER_LOGO|WLR_MODIFIER_SHIFT, XKB_KEY_L, incogaps, {.i = -1 } },
-+ { MODKEY|WLR_MODIFIER_LOGO|WLR_MODIFIER_CTRL, XKB_KEY_h, incigaps, {.i = +1 } },
-+ { MODKEY|WLR_MODIFIER_LOGO|WLR_MODIFIER_CTRL, XKB_KEY_l, incigaps, {.i = -1 } },
-+ { MODKEY|WLR_MODIFIER_LOGO, XKB_KEY_0, togglegaps, {0} },
-+ { MODKEY|WLR_MODIFIER_LOGO|WLR_MODIFIER_SHIFT, XKB_KEY_parenright,defaultgaps, {0} },
-+ { MODKEY, XKB_KEY_y, incihgaps, {.i = +1 } },
-+ { MODKEY, XKB_KEY_o, incihgaps, {.i = -1 } },
-+ { MODKEY|WLR_MODIFIER_CTRL, XKB_KEY_y, incivgaps, {.i = +1 } },
-+ { MODKEY|WLR_MODIFIER_CTRL, XKB_KEY_o, incivgaps, {.i = -1 } },
-+ { MODKEY|WLR_MODIFIER_LOGO, XKB_KEY_y, incohgaps, {.i = +1 } },
-+ { MODKEY|WLR_MODIFIER_LOGO, XKB_KEY_o, incohgaps, {.i = -1 } },
-+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Y, incovgaps, {.i = +1 } },
-+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_O, incovgaps, {.i = -1 } },
- { MODKEY, XKB_KEY_Return, zoom, {0} },
- { MODKEY, XKB_KEY_Tab, view, {0} },
- { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_C, killclient, {0} },
-diff --git a/dwl.c b/dwl.c
-index 19bb6ce3..66a176fc 100644
---- a/dwl.c
-+++ b/dwl.c
-@@ -180,6 +180,10 @@ struct Monitor {
- struct wlr_box w; /* window area, layout-relative */
- struct wl_list layers[4]; /* LayerSurface::link */
- const Layout *lt[2];
-+ int gappih; /* horizontal gap between windows */
-+ int gappiv; /* vertical gap between windows */
-+ int gappoh; /* horizontal outer gaps */
-+ int gappov; /* vertical outer gaps */
- unsigned int seltags;
- unsigned int sellt;
- unsigned int tagset[2];
-@@ -239,6 +243,7 @@ static void createmon(struct wl_listener *listener, void *data);
- static void createnotify(struct wl_listener *listener, void *data);
- static void createpointer(struct wlr_pointer *pointer);
- static void cursorframe(struct wl_listener *listener, void *data);
-+static void defaultgaps(const Arg *arg);
- static void destroydragicon(struct wl_listener *listener, void *data);
- static void destroyidleinhibitor(struct wl_listener *listener, void *data);
- static void destroylayersurfacenotify(struct wl_listener *listener, void *data);
-@@ -254,6 +259,13 @@ static void focusstack(const Arg *arg);
- static Client *focustop(Monitor *m);
- static void fullscreennotify(struct wl_listener *listener, void *data);
- static void incnmaster(const Arg *arg);
-+static void incgaps(const Arg *arg);
-+static void incigaps(const Arg *arg);
-+static void incihgaps(const Arg *arg);
-+static void incivgaps(const Arg *arg);
-+static void incogaps(const Arg *arg);
-+static void incohgaps(const Arg *arg);
-+static void incovgaps(const Arg *arg);
- 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);
-@@ -283,6 +295,7 @@ static void run(char *startup_cmd);
- static void setcursor(struct wl_listener *listener, void *data);
- static void setfloating(Client *c, int floating);
- static void setfullscreen(Client *c, int fullscreen);
-+static void setgaps(int oh, int ov, int ih, int iv);
- static void setlayout(const Arg *arg);
- static void setmfact(const Arg *arg);
- static void setmon(Client *c, Monitor *m, unsigned int newtags);
-@@ -296,6 +309,7 @@ static void tagmon(const Arg *arg);
- static void tile(Monitor *m);
- static void togglefloating(const Arg *arg);
- static void togglefullscreen(const Arg *arg);
-+static void togglegaps(const Arg *arg);
- static void toggletag(const Arg *arg);
- static void toggleview(const Arg *arg);
- static void unlocksession(struct wl_listener *listener, void *data);
-@@ -356,6 +370,8 @@ static struct wlr_box sgeom;
- static struct wl_list mons;
- static Monitor *selmon;
-
-+static int enablegaps = 1; /* enables gaps, used by togglegaps */
-+
- /* global event handlers */
- static struct wl_listener cursor_axis = {.notify = axisnotify};
- static struct wl_listener cursor_button = {.notify = buttonpress};
-@@ -899,6 +915,11 @@ createmon(struct wl_listener *listener, void *data)
- /* Initialize monitor state using configured rules */
- for (i = 0; i < LENGTH(m->layers); i++)
- wl_list_init(&m->layers[i]);
-+
-+ m->gappih = gappih;
-+ m->gappiv = gappiv;
-+ m->gappoh = gappoh;
-+ m->gappov = gappov;
- m->tagset[0] = m->tagset[1] = 1;
- for (r = monrules; r < END(monrules); r++) {
- if (!r->name || strstr(wlr_output->name, r->name)) {
-@@ -1055,6 +1076,12 @@ cursorframe(struct wl_listener *listener, void *data)
- wlr_seat_pointer_notify_frame(seat);
- }
-
-+void
-+defaultgaps(const Arg *arg)
-+{
-+ setgaps(gappoh, gappov, gappih, gappiv);
-+}
-+
- void
- destroydragicon(struct wl_listener *listener, void *data)
- {
-@@ -1317,6 +1344,83 @@ incnmaster(const Arg *arg)
- arrange(selmon);
- }
-
-+void
-+incgaps(const Arg *arg)
-+{
-+ setgaps(
-+ selmon->gappoh + arg->i,
-+ selmon->gappov + arg->i,
-+ selmon->gappih + arg->i,
-+ selmon->gappiv + arg->i
-+ );
-+}
-+
-+void
-+incigaps(const Arg *arg)
-+{
-+ setgaps(
-+ selmon->gappoh,
-+ selmon->gappov,
-+ selmon->gappih + arg->i,
-+ selmon->gappiv + arg->i
-+ );
-+}
-+
-+void
-+incihgaps(const Arg *arg)
-+{
-+ setgaps(
-+ selmon->gappoh,
-+ selmon->gappov,
-+ selmon->gappih + arg->i,
-+ selmon->gappiv
-+ );
-+}
-+
-+void
-+incivgaps(const Arg *arg)
-+{
-+ setgaps(
-+ selmon->gappoh,
-+ selmon->gappov,
-+ selmon->gappih,
-+ selmon->gappiv + arg->i
-+ );
-+}
-+
-+void
-+incogaps(const Arg *arg)
-+{
-+ setgaps(
-+ selmon->gappoh + arg->i,
-+ selmon->gappov + arg->i,
-+ selmon->gappih,
-+ selmon->gappiv
-+ );
-+}
-+
-+void
-+incohgaps(const Arg *arg)
-+{
-+ setgaps(
-+ selmon->gappoh + arg->i,
-+ selmon->gappov,
-+ selmon->gappih,
-+ selmon->gappiv
-+ );
-+}
-+
-+void
-+incovgaps(const Arg *arg)
-+{
-+ setgaps(
-+ selmon->gappoh,
-+ selmon->gappov + arg->i,
-+ selmon->gappih,
-+ selmon->gappiv
-+ );
-+}
-+
- void
- inputdevice(struct wl_listener *listener, void *data)
- {
-@@ -1987,6 +2091,16 @@ setfullscreen(Client *c, int fullscreen)
- printstatus();
- }
-
-+void
-+setgaps(int oh, int ov, int ih, int iv)
-+{
-+ selmon->gappoh = MAX(oh, 0);
-+ selmon->gappov = MAX(ov, 0);
-+ selmon->gappih = MAX(ih, 0);
-+ selmon->gappiv = MAX(iv, 0);
-+ arrange(selmon);
-+}
-+
- void
- setlayout(const Arg *arg)
- {
-@@ -2298,7 +2412,7 @@ tagmon(const Arg *arg)
- void
- tile(Monitor *m)
- {
-- unsigned int i, n = 0, mw, my, ty;
-+ unsigned int i, n = 0, h, r, oe = enablegaps, ie = enablegaps, mw, my, ty;
- Client *c;
-
- wl_list_for_each(c, &clients, link)
-@@ -2306,23 +2420,32 @@ tile(Monitor *m)
- n++;
- if (n == 0)
- return;
-+
-+ if (smartgaps == n) {
-+ oe = 0; // outer gaps disabled
-+ }
-
- if (n > m->nmaster)
-- mw = m->nmaster ? m->w.width * m->mfact : 0;
-+ mw = m->nmaster ? (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;
- if (i < m->nmaster) {
-- resize(c, (struct wlr_box){.x = m->w.x, .y = m->w.y + my, .width = mw,
-- .height = (m->w.height - my) / (MIN(n, m->nmaster) - i)}, 0);
-- my += c->geom.height;
-+ r = MIN(n, m->nmaster) - i;
-+ h = (m->w.height - my - m->gappoh*oe - m->gappih*ie * (r - 1)) / r;
-+ 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;
-+ 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++;
- }
-@@ -2345,6 +2468,13 @@ togglefullscreen(const Arg *arg)
- setfullscreen(sel, !sel->isfullscreen);
- }
-
-+void
-+togglegaps(const Arg *arg)
-+{
-+ enablegaps = !enablegaps;
-+ arrange(selmon);
-+}
-+
- void
- toggletag(const Arg *arg)
- {
-
-From 22e829106e95a74da19328246aee033cbdb0a785 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Leonardo=20Hern=C3=A1ndez=20Hern=C3=A1ndez?=
- <leohdz172@protonmail.com>
-Date: Wed, 20 Jul 2022 00:15:32 -0500
-Subject: [PATCH 2/2] allow gaps in monocle layout if requested
-
----
- 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 e58aa9f1..f4472790 100644
---- a/config.def.h
-+++ b/config.def.h
-@@ -2,6 +2,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 66a176fc..2fdaa7d4 100644
---- a/dwl.c
-+++ b/dwl.c
-@@ -1659,7 +1659,11 @@ monocle(Monitor *m)
- wl_list_for_each(c, &clients, link) {
- if (!VISIBLEON(c, m) || c->isfloating || c->isfullscreen)
- continue;
-- resize(c, m->w, 0);
-+ 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 ((c = focustop(m)))
- wlr_scene_node_raise_to_top(&c->scene->node);