From e9c46c8624e3de1fba021c30bbc42707ef51353c Mon Sep 17 00:00:00 2001 From: Acid Bong Date: Wed, 19 Oct 2022 13:23:34 +0300 Subject: [PATCH] patch: focusurgent --- config.def.h | 3 +++ focusurgent.c | 14 ++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 focusurgent.c diff --git a/config.def.h b/config.def.h index b8f0908..1de3c06 100644 --- a/config.def.h +++ b/config.def.h @@ -59,6 +59,7 @@ static const char *termcmd[] = { "st", NULL }; #include #include "movestack.c" +#include "focusurgent.c" static const Key keys[] = { /* modifier key function argument */ { MODKEY, XK_space, spawn, {.v = dmenucmd } }, @@ -124,6 +125,8 @@ static const Key keys[] = { { MODKEY|ShiftMask, XK_k, movestack, {.i = -1 } }, { MODKEY|ShiftMask, XK_Down, movestack, {.i = +1 } }, /* arrow keys */ { MODKEY|ShiftMask, XK_Up, movestack, {.i = -1 } }, + /* focusurgent patch */ + { MODKEY, XK_a, focusurgent, {0} }, }; /* button definitions */ diff --git a/focusurgent.c b/focusurgent.c new file mode 100644 index 0000000..bc6eee6 --- /dev/null +++ b/focusurgent.c @@ -0,0 +1,14 @@ +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); + } + } +} -- 2.38.0