Add alwayscenterp patch

This commit is contained in:
Sravan Balaji
2024-09-27 19:47:15 -04:00
parent d89e40ddaa
commit c385bd6f4c
4 changed files with 63 additions and 0 deletions

View File

@@ -7,6 +7,7 @@
- [[#welcome][Welcome]]
- [[#dwl---dwm-for-wayland][dwl - dwm for Wayland]]
- [[#patches][Patches]]
- [[#always-center][Always Center]]
- [[#attach-top][Attach Top]]
- [[#auto-start][Auto Start]]
- [[#foreign-toplevel-management][Foreign Toplevel Management]]
@@ -57,6 +58,14 @@ See [[./README.md][Upstream README]] for details on project.
* Patches
** [[https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/alwayscenter][Always Center]]
Automatically center floating windows.
#+BEGIN_SRC c :tangle patches.def.h
#define ALWAYSCENTER_PATCH 1
#+END_SRC
** [[https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/attachtop][Attach Top]]
This is a port of attachtop patch for dwm: https://dwm.suckless.org/patches/attachtop

14
dwl.c
View File

@@ -613,6 +613,14 @@ applyrules(Client *c)
}
}
}
#if ALWAYSCENTER_PATCH
if (mon) {
c->geom.x = (mon->w.width - c->geom.width) / 2 + mon->m.x;
c->geom.y = (mon->w.height - c->geom.height) / 2 + mon->m.y;
}
#endif // ALWAYSCENTER_PATCH
setmon(c, mon, newtags);
}
@@ -2383,6 +2391,12 @@ mapnotify(struct wl_listener *listener, void *data)
* try to apply rules for them */
if ((p = client_get_parent(c))) {
c->isfloating = 1;
#if ALWAYSCENTER_PATCH
if (p->mon) {
c->geom.x = (p->mon->w.width - c->geom.width) / 2 + p->mon->m.x;
c->geom.y = (p->mon->w.height - c->geom.height) / 2 + p->mon->m.y;
}
#endif // ALWAYSCENTER_PATCH
setmon(c, p->mon, p->tags);
} else {
applyrules(c);

View File

@@ -1,3 +1,5 @@
#define ALWAYSCENTER_PATCH 1
#define ATTACHTOP_PATCH 1
#define AUTOSTART_PATCH 1

View File

@@ -0,0 +1,38 @@
From 6616470ef135019ef4c767003a66df76df45f53e Mon Sep 17 00:00:00 2001
From: Guido Cella <guido@guidocella.xyz>
Date: Wed, 5 Jun 2024 12:05:16 +0200
Subject: [PATCH] center floating windows
---
dwl.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/dwl.c b/dwl.c
index 6f041a0..79ace52 100644
--- a/dwl.c
+++ b/dwl.c
@@ -472,6 +472,10 @@ applyrules(Client *c)
}
}
}
+ if (mon) {
+ c->geom.x = (mon->w.width - c->geom.width) / 2 + mon->m.x;
+ c->geom.y = (mon->w.height - c->geom.height) / 2 + mon->m.y;
+ }
setmon(c, mon, newtags);
}
@@ -1677,6 +1681,10 @@ mapnotify(struct wl_listener *listener, void *data)
* try to apply rules for them */
if ((p = client_get_parent(c))) {
c->isfloating = 1;
+ if (p->mon) {
+ c->geom.x = (p->mon->w.width - c->geom.width) / 2 + p->mon->m.x;
+ c->geom.y = (p->mon->w.height - c->geom.height) / 2 + p->mon->m.y;
+ }
setmon(c, p->mon, p->tags);
} else {
applyrules(c);
--
2.45.1