URI: 
       dwm-swaptags-6.2.diff - sites - public wiki contents of suckless.org
  HTML git clone git://git.suckless.org/sites
   DIR Log
   DIR Files
   DIR Refs
       ---
       dwm-swaptags-6.2.diff (2117B)
       ---
            1 From 9513cc776dc8114967988d4abc32fd7f37446ddb Mon Sep 17 00:00:00 2001
            2 From: fossy <fossy@dnmx.org>
            3 Date: Sun, 28 Nov 2021 21:34:37 +0100
            4 Subject: [PATCH] Move function and it's prototype from config.def.h to dwm.c
            5 
            6 ---
            7  config.def.h |  3 ++-
            8  dwm.c        | 23 +++++++++++++++++++++++
            9  2 files changed, 25 insertions(+), 1 deletion(-)
           10 
           11 diff --git a/config.def.h b/config.def.h
           12 index a2ac963..f31a66d 100644
           13 --- a/config.def.h
           14 +++ b/config.def.h
           15 @@ -50,7 +50,8 @@ static const Layout layouts[] = {
           16          { MODKEY,                       KEY,      view,           {.ui = 1 << TAG} }, \
           17          { MODKEY|ControlMask,           KEY,      toggleview,     {.ui = 1 << TAG} }, \
           18          { MODKEY|ShiftMask,             KEY,      tag,            {.ui = 1 << TAG} }, \
           19 -        { MODKEY|ControlMask|ShiftMask, KEY,      toggletag,      {.ui = 1 << TAG} },
           20 +        { MODKEY|ControlMask|ShiftMask, KEY,      toggletag,      {.ui = 1 << TAG} }, \
           21 +  { Mod4Mask|ShiftMask,           KEY,      swaptags,       {.ui = 1 << TAG} },
           22  
           23  /* helper for spawning shell commands in the pre dwm-5.0 fashion */
           24  #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
           25 diff --git a/dwm.c b/dwm.c
           26 index 5e4d494..d11addd 100644
           27 --- a/dwm.c
           28 +++ b/dwm.c
           29 @@ -234,6 +234,7 @@ static int xerror(Display *dpy, XErrorEvent *ee);
           30  static int xerrordummy(Display *dpy, XErrorEvent *ee);
           31  static int xerrorstart(Display *dpy, XErrorEvent *ee);
           32  static void zoom(const Arg *arg);
           33 +static void swaptags(const Arg *arg);
           34  
           35  /* variables */
           36  static const char broken[] = "broken";
           37 @@ -2127,6 +2128,28 @@ zoom(const Arg *arg)
           38          pop(c);
           39  }
           40  
           41 +void
           42 +swaptags(const Arg *arg)
           43 +{
           44 +        unsigned int newtag = arg->ui & TAGMASK;
           45 +        unsigned int curtag = selmon->tagset[selmon->seltags];
           46 +
           47 +        if (newtag == curtag || !curtag || (curtag & (curtag-1)))
           48 +                return;
           49 +
           50 +        for (Client *c = selmon->clients; c != NULL; c = c->next) {
           51 +                if((c->tags & newtag) || (c->tags & curtag))
           52 +                        c->tags ^= curtag ^ newtag;
           53 +
           54 +                if(!c->tags) c->tags = newtag;
           55 +        }
           56 +
           57 +        selmon->tagset[selmon->seltags] = newtag;
           58 +
           59 +        focus(NULL);
           60 +        arrange(selmon);
           61 +}
           62 +
           63  int
           64  main(int argc, char *argv[])
           65  {
           66 -- 
           67 2.34.1
           68