commit ce4feea06dc7c0c40b687cb667b6fdb1d7126d15
parent f3197bf1e7c4e907b7282e30b4f24bb2535ecf53
Author: Britton Leo Kerin <britton.kerin@gmail.com>
Date: Sun, 17 Jul 2016 22:11:26 -0800
pertag: put old version from other site in wiki
Diffstat:
2 files changed, 127 insertions(+), 0 deletions(-)
diff --git a/dwm.suckless.org/patches/historical/dwm-pertag-5.1.diff b/dwm.suckless.org/patches/historical/dwm-pertag-5.1.diff
@@ -0,0 +1,125 @@
+diff -NrU3 dwm-5.1/dwm.c dwm-5.1.playground-pertag/dwm.c
+--- dwm-5.1/dwm.c 2008-07-29 20:18:32.000000000 +0200
++++ dwm-5.1-pertag/dwm.c 2008-08-01 18:46:49.000000000 +0200
+@@ -238,6 +238,11 @@
+ /* configuration, allows nested code to access above variables */
+ #include "config.h"
+
++static int curtag = 1, prevtag = 1;
++static Layout *lts[LENGTH(tags) + 1];
++static double mfacts[LENGTH(tags) + 1];
++static Bool showbars[LENGTH(tags) + 1];
++
+ /* compile-time check if all tags fit into an unsigned int bit array. */
+ struct NumTags { char limitexceeded[sizeof(unsigned int) * 8 < LENGTH(tags) ? -1 : 1]; };
+
+@@ -1307,7 +1312,7 @@
+ if(!arg || !arg->v || arg->v != lt[sellt])
+ sellt ^= 1;
+ if(arg && arg->v)
+- lt[sellt] = (Layout *)arg->v;
++ lt[sellt] = lts[curtag] = (Layout *)arg->v;
+ if(sel)
+ arrange();
+ else
+@@ -1324,7 +1329,7 @@
+ f = arg->f < 1.0 ? arg->f + mfact : arg->f - 1.0;
+ if(f < 0.1 || f > 0.9)
+ return;
+- mfact = f;
++ mfact = mfacts[curtag] = f;
+ arrange();
+ }
+
+@@ -1373,12 +1378,27 @@
+ if(!dc.font.set)
+ XSetFont(dpy, dc.gc, dc.font.xfont->fid);
+
++ /* init mfacts */
++ for(i=0; i < LENGTH(tags) + 1 ; i++) {
++ mfacts[i] = mfact;
++ }
++
++ /* init layouts */
++ for(i=0; i < LENGTH(tags) + 1; i++) {
++ lts[i] = &layouts[0];
++ }
++
++
+ /* init bar */
+ for(blw = i = 0; LENGTH(layouts) > 1 && i < LENGTH(layouts); i++) {
+ w = TEXTW(layouts[i].symbol);
+ blw = MAX(blw, w);
+ }
+
++ for(i=0; i < LENGTH(tags) + 1; i++) {
++ showbars[i] = showbar;
++ }
++
+ wa.override_redirect = 1;
+ wa.background_pixmap = ParentRelative;
+ wa.event_mask = ButtonPressMask|ExposureMask;
+@@ -1479,7 +1499,7 @@
+
+ void
+ togglebar(const Arg *arg) {
+- showbar = !showbar;
++ showbar = showbars[curtag] = !showbar;
+ updategeom();
+ updatebar();
+ arrange();
+@@ -1508,9 +1528,23 @@
+ void
+ toggleview(const Arg *arg) {
+ unsigned int mask = tagset[seltags] ^ (arg->ui & TAGMASK);
++ unsigned int i;
+
+ if(mask) {
++ if(mask == ~0) {
++ prevtag = curtag;
++ curtag = 0;
++ }
++ if(!(mask & 1 << (curtag - 1))) {
++ prevtag = curtag;
++ for (i=0; !(mask & 1 << i); i++);
++ curtag = i + 1;
++ }
+ tagset[seltags] = mask;
++ lt[sellt] = lts[curtag];
++ mfact = mfacts[curtag];
++ if (showbar != showbars[curtag])
++ togglebar(NULL);
+ clearurgent();
+ arrange();
+ }
+@@ -1663,11 +1697,29 @@
+
+ void
+ view(const Arg *arg) {
++ unsigned int i;
++
+ if(arg && (arg->i & TAGMASK) == tagset[seltags])
+ return;
+ seltags ^= 1; /* toggle sel tagset */
+- if(arg && (arg->ui & TAGMASK))
++ if(arg && (arg->ui & TAGMASK)) {
+ tagset[seltags] = arg->i & TAGMASK;
++ prevtag = curtag;
++ if(arg->ui == ~0)
++ curtag = 0;
++ else {
++ for (i=0; !(arg->ui & 1 << i); i++);
++ curtag = i + 1;
++ }
++ } else {
++ prevtag= curtag ^ prevtag;
++ curtag^= prevtag;
++ prevtag= curtag ^ prevtag;
++ }
++ lt[sellt]= lts[curtag];
++ mfact = mfacts[curtag];
++ if(showbar != showbars[curtag])
++ togglebar(NULL);
+ clearurgent();
+ arrange();
+ }
diff --git a/dwm.suckless.org/patches/pertag.md b/dwm.suckless.org/patches/pertag.md
@@ -21,6 +21,7 @@ Patches against different versions of dwm are available at
* [dwm-pertag-5.6.1.diff][5]
* [dwm-pertag-5.4.diff][4]
* [dwm-pertag-5.2.diff][3]
+ * [dwm-pertag-5.1.diff][2]
* Using pertag but with the same barpos
* [dwm-6.1-pertag_without_bar.diff](dwm-6.1-pertag_without_bar.diff) (5.2K) (20151109)
@@ -39,6 +40,7 @@ Authors
* [Jochen Sprickerhof](mailto:project@firstname.lastname.de) (Updated to current git)
[1]: historical/taglayouts
+[2]: historical/dwm-pertag-5.1.diff
[3]: historical/dwm-pertag-5.2.diff
[4]: historical/dwm-pertag-5.4.diff
[5]: historical/dwm-pertag-5.6.1.diff