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