dwm

My fork of dwm.
git clone git://git.alex.balgavy.eu/dwm.git
Log | Files | Refs | README | LICENSE

commit 451fcf9c8f93d7b7142eb24caaf3b86fa372b1a6
parent e6e6154433ce672cc22c35861ec2e7624d15d549
Author: Alex Balgavy <alexander.balgavy@spaceapplications.com>
Date:   Fri, 20 Jun 2025 09:37:48 +0200

Send signal to disable swallowing for next window

Diffstat:
Mdwm.c | 17+++++++++++++++++
1 file changed, 17 insertions(+), 0 deletions(-)

diff --git a/dwm.c b/dwm.c @@ -346,6 +346,8 @@ static unsigned int scratchtag = 1 << LENGTH(tags); /* compile-time check if all tags fit into an unsigned int bit array. */ struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; }; +static unsigned int swallow_next = 1; + /* function implementations */ void applyrules(Client *c) @@ -499,6 +501,10 @@ attachstack(Client *c) void swallow(Client *p, Client *c) { + if (!swallow_next) { + swallow_next = 1; + return; + } if (c->noswallow || c->isterminal) return; @@ -1808,6 +1814,11 @@ setmfact(const Arg *arg) arrange(selmon); } +void no_swallow_next(int signum, siginfo_t *si, void *ucontext) +{ + swallow_next = 0; +} + void setup(void) { @@ -1876,6 +1887,12 @@ setup(void) XSelectInput(dpy, root, wa.event_mask); grabkeys(); focus(NULL); + + struct sigaction sa = { + .sa_sigaction = no_swallow_next, + .sa_flags = SA_SIGINFO, + }; + sigaction(SIGRTMIN+69, &sa, NULL); }