[wiki] [sites] [dwm][patch] dwm-pertag-perseltag fix tag 0 || Aaron Duxler
 
commit b418122eafecdaa6d913424ca519ec75a62154c4
Author: Aaron Duxler <aaron_AT_duxler.xyz>
Date:   Mon Jun 22 12:57:07 2020 +0200
    [dwm][patch] dwm-pertag-perseltag fix tag 0
diff --git a/dwm.suckless.org/patches/pertag/dwm-pertag-perseltag-6.2.diff b/dwm.suckless.org/patches/pertag/dwm-pertag-perseltag-6.2.diff
index 7ccfeb3a..743e7c1c 100644
--- a/dwm.suckless.org/patches/pertag/dwm-pertag-perseltag-6.2.diff
+++ b/dwm.suckless.org/patches/pertag/dwm-pertag-perseltag-6.2.diff
_AT_@ -1,6 +1,6 @@
 diff -up a/dwm.c b/dwm.c
---- a/dwm.c	2020-04-17 13:37:50.926942626 +0200
-+++ b/dwm.c	2020-04-17 13:44:30.578373509 +0200
+--- a/dwm.c	2020-05-23 00:20:34.877944603 +0200
++++ b/dwm.c	2020-06-22 12:49:55.298859682 +0200
 _AT_@ -111,6 +111,7 @@ typedef struct {
          void (*arrange)(Monitor *);
  } Layout;
_AT_@ -62,19 +62,24 @@ diff -up a/dwm.c b/dwm.c
          return m;
  }
  
-_AT_@ -966,7 +992,11 @@ grabkeys(void)
+_AT_@ -966,7 +992,16 @@ grabkeys(void)
  void
  incnmaster(const Arg *arg)
  {
 +	unsigned int i;
          selmon->nmaster = MAX(selmon->nmaster + arg->i, 0);
-+	for(i=0; i<=LENGTH(tags); ++i)
++	for(i=0; i<LENGTH(tags); ++i)
 +		if(selmon->tagset[selmon->seltags] & 1<<i)
-+			selmon->pertag->nmasters[(i+1)%(LENGTH(tags)+1)] = selmon->nmaster;
++			selmon->pertag->nmasters[i+1] = selmon->nmaster;
++	
++	if(selmon->pertag->curtag == 0)
++	{
++		selmon->pertag->nmasters[0] = selmon->nmaster;
++	}
          arrange(selmon);
  }
  
-_AT_@ -1500,11 +1530,20 @@ setfullscreen(Client *c, int fullscreen)
+_AT_@ -1500,11 +1535,26 @@ setfullscreen(Client *c, int fullscreen)
  void
  setlayout(const Arg *arg)
  {
_AT_@ -85,17 +90,23 @@ diff -up a/dwm.c b/dwm.c
                  selmon->lt[selmon->sellt] = (Layout *)arg->v;
          strncpy(selmon->ltsymbol, selmon->lt[selmon->sellt]->symbol, sizeof selmon->ltsymbol);
 +
-+	for(i=0; i<=LENGTH(tags); ++i)
++	for(i=0; i<LENGTH(tags); ++i)
 +		if(selmon->tagset[selmon->seltags] & 1<<i)
 +		{
-+			selmon->pertag->ltidxs[(i+1)%(LENGTH(tags)+1)][selmon->sellt] = selmon->lt[selmon->sellt]; 
-+			selmon->pertag->sellts[(i+1)%(LENGTH(tags)+1)] = selmon->sellt;
++			selmon->pertag->ltidxs[i+1][selmon->sellt] = selmon->lt[selmon->sellt]; 
++			selmon->pertag->sellts[i+1] = selmon->sellt;
 +		}
++	
++	if(selmon->pertag->curtag == 0)
++	{
++		selmon->pertag->ltidxs[0][selmon->sellt] = selmon->lt[selmon->sellt]; 
++		selmon->pertag->sellts[0] = selmon->sellt;
++	}
 +
          if (selmon->sel)
                  arrange(selmon);
          else
-_AT_@ -1516,13 +1555,19 @@ void
+_AT_@ -1516,13 +1566,24 @@ void
  setmfact(const Arg *arg)
  {
          float f;
_AT_@ -104,30 +115,41 @@ diff -up a/dwm.c b/dwm.c
          if (!arg || !selmon->lt[selmon->sellt]->arrange)
                  return;
          f = arg->f < 1.0 ? arg->f + selmon->mfact : arg->f - 1.0;
+-	if (f < 0.1 || f > 0.9)
 +	if (arg->f == 0.0)
 +		f = mfact;
- 	if (f < 0.1 || f > 0.9)
++	if (f < 0.05 || f > 0.95)
                  return;
          selmon->mfact = f;
-+	for(i=0; i<=LENGTH(tags); ++i)
++	for(i=0; i<LENGTH(tags); ++i)
 +		if(selmon->tagset[selmon->seltags] & 1<<i)
-+			selmon->pertag->mfacts[(i+1)%(LENGTH(tags)+1)] = f;
++			selmon->pertag->mfacts[i+1] = f;
++
++	if(selmon->pertag->curtag == 0)
++	{
++		selmon->pertag->mfacts[0] = f;
++	}
          arrange(selmon);
  }
  
-_AT_@ -1699,7 +1744,11 @@ tile(Monitor *m)
+_AT_@ -1699,7 +1760,16 @@ tile(Monitor *m)
  void
  togglebar(const Arg *arg)
  {
 +	unsigned int i;
          selmon->showbar = !selmon->showbar;
-+	for(i=0; i<=LENGTH(tags); ++i)
++	for(i=0; i<LENGTH(tags); ++i)
 +		if(selmon->tagset[selmon->seltags] & 1<<i)
-+			selmon->pertag->showbars[(i+1)%(LENGTH(tags)+1)] = selmon->showbar;
++			selmon->pertag->showbars[i+1] = selmon->showbar;
++
++	if(selmon->pertag->curtag == 0)
++	{
++		selmon->pertag->showbars[0] = selmon->showbar;
++	}
          updatebarpos(selmon);
          XMoveResizeWindow(dpy, selmon->barwin, selmon->wx, selmon->by, selmon->ww, bh);
          arrange(selmon);
-_AT_@ -1738,9 +1787,33 @@ void
+_AT_@ -1738,9 +1808,33 @@ void
  toggleview(const Arg *arg)
  {
          unsigned int newtagset = selmon->tagset[selmon->seltags] ^ (arg->ui & TAGMASK);
_AT_@ -161,7 +183,7 @@ diff -up a/dwm.c b/dwm.c
                  focus(NULL);
                  arrange(selmon);
          }
-_AT_@ -2035,11 +2108,37 @@ updatewmhints(Client *c)
+_AT_@ -2035,11 +2129,37 @@ updatewmhints(Client *c)
  void
  view(const Arg *arg)
  {
diff --git a/dwm.suckless.org/patches/pertag/index.md b/dwm.suckless.org/patches/pertag/index.md
index b1136796..22ff19d5 100644
--- a/dwm.suckless.org/patches/pertag/index.md
+++ b/dwm.suckless.org/patches/pertag/index.md
_AT_@ -27,7 +27,7 @@ Download
 * With this version of pertag, changes are always applied to all selected tags.  
   For exmaple: If tag 2 and tag 3 are selected, changes to barpos, layout, mfact, nmaster will apply to both tags.  
   With the original pertag patch, changes only effect the tag which was selected first.
-  * [dwm-pertag-perseltag-6.2.diff](dwm-pertag-perseltag-6.2.diff) (20200418)
+  * [dwm-pertag-perseltag-6.2.diff](dwm-pertag-perseltag-6.2.diff) (20200622)
 
 
 Authors
Received on Mon Jun 22 2020 - 12:57:10 CEST
This archive was generated by hypermail 2.3.0
: Mon Jun 22 2020 - 13:00:45 CEST