sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | 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