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