dwm-focusbynum-20230720-e81f17d.diff - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
dwm-focusbynum-20230720-e81f17d.diff (2123B)
---
1 From a6b3831c14ecec2d6da4cce031f6dada64ac7565 Mon Sep 17 00:00:00 2001
2 From: dimarogiv <dirsednet.it@gmail.com>
3 Date: Thu, 20 Jul 2023 14:22:32 +0300
4 Subject: [PATCH] With this patch you can focus on any of the currently open
5 windows on the current tagset with just one key combination
6
7 ---
8 config.def.h | 8 ++++++++
9 dwm.c | 14 ++++++++++++++
10 2 files changed, 22 insertions(+)
11
12 diff --git a/config.def.h b/config.def.h
13 index 9efa774..c3718fe 100644
14 --- a/config.def.h
15 +++ b/config.def.h
16 @@ -94,6 +94,14 @@ static const Key keys[] = {
17 TAGKEYS( XK_7, 6)
18 TAGKEYS( XK_8, 7)
19 TAGKEYS( XK_9, 8)
20 + { MODKEY|ShiftMask, XK_j, focusbynum, {.i = 0} },
21 + { MODKEY|ShiftMask, XK_k, focusbynum, {.i = 1} },
22 + { MODKEY|ShiftMask, XK_l, focusbynum, {.i = 2} },
23 + { MODKEY|ShiftMask, XK_colon, focusbynum, {.i = 3} },
24 + { MODKEY|ShiftMask, XK_f, focusbynum, {.i = 4} },
25 + { MODKEY|ShiftMask, XK_d, focusbynum, {.i = 5} },
26 + { MODKEY|ShiftMask, XK_s, focusbynum, {.i = 6} },
27 + { MODKEY|ShiftMask, XK_a, focusbynum, {.i = 7} },
28 { MODKEY|ShiftMask, XK_q, quit, {0} },
29 };
30
31 diff --git a/dwm.c b/dwm.c
32 index f1d86b2..54eb2e2 100644
33 --- a/dwm.c
34 +++ b/dwm.c
35 @@ -211,6 +211,7 @@ static void tagmon(const Arg *arg);
36 static void tile(Monitor *m);
37 static void togglebar(const Arg *arg);
38 static void togglefloating(const Arg *arg);
39 +static void focusbynum(const Arg *arg);
40 static void toggletag(const Arg *arg);
41 static void toggleview(const Arg *arg);
42 static void unfocus(Client *c, int setfocus);
43 @@ -1735,6 +1736,19 @@ togglefloating(const Arg *arg)
44 arrange(selmon);
45 }
46
47 +void
48 +focusbynum(const Arg *arg)
49 +{
50 + int i;
51 + Client *c;
52 +
53 + i = 0;
54 + c = nexttiled(selmon->clients);
55 +
56 + for (; c && i < arg->i; c = nexttiled(c->next), i++);
57 + focus(c);
58 +}
59 +
60 void
61 toggletag(const Arg *arg)
62 {
63 --
64 2.41.0
65