focusurgent - dwm - dynamic window manager HTML git clone https://git.parazyd.org/dwm DIR Log DIR Files DIR Refs DIR README DIR LICENSE --- DIR commit 5d724733483b327aa3173a59022b751b38085909 DIR parent ab128d39306091645ffa318cd8baab08d1128bd8 HTML Author: parazyd <parazyd@dyne.org> Date: Sun, 24 Apr 2022 11:56:57 +0200 focusurgent Diffstat: M config.def.h | 2 ++ M config.h | 2 ++ A focusurgent.c | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 0 deletions(-) --- DIR diff --git a/config.def.h b/config.def.h @@ -68,6 +68,7 @@ static const char *termcmd[] = { "st", NULL }; static const char scratchpadname[] = "scratchpad"; static const char *scratchpadcmd[] = { "st", "-t", scratchpadname, "-g", "120x34", NULL }; +#include "focusurgent.c" #include "movestack.c" static const Key keys[] = { @@ -109,6 +110,7 @@ static const Key keys[] = { TAGKEYS( XK_8, 7) TAGKEYS( XK_9, 8) { MODKEY|ShiftMask, XK_q, quit, {0} }, + { MODKEY, XK_u, focusurgent, {0} }, }; /* button definitions */ DIR diff --git a/config.h b/config.h @@ -81,6 +81,7 @@ static const char *glyphcmd[] = { "glyph", NULL }; static const char *rickcmd[] = { "mpv", "--no-video", "never_gonna_give_you_up.mp3", NULL }; +#include "focusurgent.c" #include "movestack.c" static Key keys[] = { /* modifier key function argument */ @@ -129,6 +130,7 @@ static Key keys[] = { TAGKEYS( XK_8, 7) TAGKEYS( XK_9, 8) { MODKEY|ShiftMask, XK_q, quit, {0} }, + { MODKEY, XK_u, focusurgent, {0} }, }; /* button definitions */ DIR diff --git a/focusurgent.c b/focusurgent.c @@ -0,0 +1,15 @@ +static void +focusurgent(const Arg *arg) { + Client *c; + int i; + + for (c = selmon->clients; c && !c->isurgent; c = c->next); + if (c) { + for (i = 0; i < LENGTH(tags) && !((1 << i) & c->tags); i++); + if (i < LENGTH(tags)) { + const Arg a = { .ui = 1 << i }; + view(&a); + focus(c); + } + } +}