1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
From e9c46c8624e3de1fba021c30bbc42707ef51353c Mon Sep 17 00:00:00 2001
From: Acid Bong <acid-bong@cock.lt>
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 <X11/XF86keysym.h>
#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
|