Merge branch 'stachelbeere1248/patched/regions' into stachelbeere1248/fullpatched

This commit is contained in:
Stachelbeere1248 2025-02-17 21:08:15 +01:00
commit e1a7477f5e
2 changed files with 29 additions and 0 deletions

View file

@ -129,6 +129,7 @@ static const Key keys[] = {
{ MODKEY, XKB_KEY_p, spawn, {.v = menucmd} },
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Return, spawn, {.v = termcmd} },
{ MODKEY, XKB_KEY_b, togglebar, {0} },
{ MODKEY, XKB_KEY_r, regions, SHCMD("grim -g \"$(slurp)\"") },
{ MODKEY, XKB_KEY_j, focusstack, {.i = +1} },
{ MODKEY, XKB_KEY_k, focusstack, {.i = -1} },
{ MODKEY, XKB_KEY_i, incnmaster, {.i = +1} },

28
dwl.c
View file

@ -379,6 +379,7 @@ static Monitor *xytomon(double x, double y);
static void xytonode(double x, double y, struct wlr_surface **psurface,
Client **pc, LayerSurface **pl, double *nx, double *ny);
static void zoom(const Arg *arg);
static void regions(const Arg *arg);
/* variables */
static const char broken[] = "broken";
@ -3394,6 +3395,33 @@ zoom(const Arg *arg)
arrange(selmon);
}
void
regions(const Arg *arg)
{
int pipefd[2];
Client *c;
Monitor *m;
if (pipe(pipefd) == -1)
return;
if (fork() == 0) {
close(pipefd[1]);
dup2(pipefd[0], STDIN_FILENO);
close(pipefd[0]);
setsid();
execvp(((char **)arg->v)[0], (char **)arg->v);
die("dwl: execvp %s failed:", ((char **)arg->v)[0]);
}
close(pipefd[0]);
wl_list_for_each(m, &mons, link)
wl_list_for_each(c, &clients, link)
if (VISIBLEON(c, m))
dprintf(pipefd[1], "%d,%d %dx%d\n",
c->geom.x, c->geom.y, c->geom.width, c->geom.height);
close(pipefd[1]);
}
#ifdef XWAYLAND
void
activatex11(struct wl_listener *listener, void *data)