diff options
| author | stkhan <personal@slickd.xyz> | 2023-03-31 19:39:34 -0500 |
|---|---|---|
| committer | stkhan <personal@slickd.xyz> | 2023-03-31 19:39:34 -0500 |
| commit | 07afc07ffff324f3a355f2437bd643b616fe0af4 (patch) | |
| tree | d4462f24f19b309d693037ae7ec8fcab5168583b /wm/dwl/main...sevz17:vanitygaps.patch | |
| parent | c0092ba1563cd27086f968db59de420299508947 (diff) | |
basic wm
Diffstat (limited to 'wm/dwl/main...sevz17:vanitygaps.patch')
| -rw-r--r-- | wm/dwl/main...sevz17:vanitygaps.patch | 344 |
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); |