sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

commit e3f6d8e426a6a706566a1d79aff919effae0a737
parent 00cc6df0c5a5e9c2b2eae6c30f8a8cab2ad8dd31
Author: a@0au.de <unknown>
Date:   Wed, 11 Mar 2009 18:47:40 +0100

added pertag patch for 5.4
Diffstat:
Adwm.suckless.org/patches/dwm-5.4-pertag.diff | 123+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdwm.suckless.org/patches/pertag.md | 2++
2 files changed, 125 insertions(+), 0 deletions(-)

diff --git a/dwm.suckless.org/patches/dwm-5.4-pertag.diff b/dwm.suckless.org/patches/dwm-5.4-pertag.diff @@ -0,0 +1,123 @@ +diff -r add6eb26ebaa dwm.c +--- a/dwm.c Sat Dec 20 12:02:14 2008 +0000 ++++ b/dwm.c Sun Dec 21 18:39:14 2008 +0100 +@@ -240,6 +240,11 @@ static Window root, barwin; + static Window root, barwin; + /* 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]; }; +@@ -1244,7 +1249,7 @@ setlayout(const Arg *arg) { + 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 +@@ -1261,7 +1266,7 @@ setmfact(const Arg *arg) { + 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(); + } + +@@ -1309,11 +1314,26 @@ setup(void) { + 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; +@@ -1434,7 +1454,7 @@ tile(void) { + + void + togglebar(const Arg *arg) { +- showbar = !showbar; ++ showbar = showbars[curtag] = !showbar; + updategeom(); + updatebar(); + arrange(); +@@ -1467,9 +1487,23 @@ void + 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); + arrange(); + } + } +@@ -1644,11 +1678,28 @@ updatewmhints(Client *c) { + + void + view(const Arg *arg) { ++ unsigned int i; + if((arg->ui & TAGMASK) == tagset[seltags]) + return; + seltags ^= 1; /* toggle sel tagset */ +- if(arg->ui & TAGMASK) ++ if(arg->ui & TAGMASK) { + tagset[seltags] = arg->ui & 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); + arrange(); + } + diff --git a/dwm.suckless.org/patches/pertag.md b/dwm.suckless.org/patches/pertag.md @@ -6,6 +6,7 @@ More general approach of [taglayouts patch][3]. The patch keeps layout, mwfact, installed) per tag. ## Download ## + * [dwm-5.4-pertag.diff][7] * [dwm-5.2-pertag.diff][6] * [dwm-5.1-pertag.diff][5] * [dwm-5.0-pertag.diff][4] @@ -23,3 +24,4 @@ installed) per tag. [4]: http://www.e-jc.de/dwm/5.0/current/dwm-5.0-pertag.diff [5]: http://v4hn.de/patches/dwm-5.1-pertag.diff [6]: http://www.suckless.org/dwm/patches/dwm-5.2-pertag.diff +[7]: http://www.suckless.org/dwm/patches/dwm-5.4-pertag.diff