From 4d41dd530c41226ab6617ac4b3c5cf765a2c672e Mon Sep 17 00:00:00 2001 From: Filip Rojek Date: Sat, 3 Dec 2022 16:38:08 +0100 Subject: [PATCH] added pertag patch --- drw.o | Bin 10744 -> 10744 bytes dwm | Bin 72752 -> 72800 bytes dwm.c | 88 ++++++++++- dwm.o | Bin 55904 -> 56456 bytes patches/dwm-pertag-20200914-61bb8b2.diff | 177 +++++++++++++++++++++++ util.o | Bin 2240 -> 2240 bytes 6 files changed, 259 insertions(+), 6 deletions(-) create mode 100644 patches/dwm-pertag-20200914-61bb8b2.diff diff --git a/drw.o b/drw.o index e6e86e54762097f972308d442c8b502ee0dead42..03063ca58c1958ec9ddcdbcfcdb746a16dda3560 100644 GIT binary patch delta 35 rcmewn{3Ce7OI|TULnA{4jiA&N1&_oM1w$h}BRxZ1lg5vRA delta 35 rcmewn{3Ce7OI|Sp3qwlc$K? diff --git a/dwm b/dwm index 5e37591afc36ca1a26446752cd1749f27f59803b..2e2a94cea741f1e7c7943240c310837055586d53 100755 GIT binary patch delta 12404 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 R1*=w`q+sgGfN(?e{{#M4cmDtY delta 11736 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 pgWDON8VoTTtQ`z}4X 31 ? -1 : 1]; }; @@ -634,6 +645,7 @@ Monitor * createmon(void) { Monitor *m; + unsigned int i; m = ecalloc(1, sizeof(Monitor)); m->tagset[0] = m->tagset[1] = 1; @@ -644,6 +656,20 @@ createmon(void) m->lt[0] = &layouts[0]; m->lt[1] = &layouts[1 % LENGTH(layouts)]; strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol); + m->pertag = ecalloc(1, sizeof(Pertag)); + m->pertag->curtag = m->pertag->prevtag = 1; + + for (i = 0; i <= LENGTH(tags); i++) { + m->pertag->nmasters[i] = m->nmaster; + m->pertag->mfacts[i] = m->mfact; + + m->pertag->ltidxs[i][0] = m->lt[0]; + m->pertag->ltidxs[i][1] = m->lt[1]; + m->pertag->sellts[i] = m->sellt; + + m->pertag->showbars[i] = m->showbar; + } + return m; } @@ -969,7 +995,7 @@ grabkeys(void) void incnmaster(const Arg *arg) { - selmon->nmaster = MAX(selmon->nmaster + arg->i, 0); + selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag] = MAX(selmon->nmaster + arg->i, 0); arrange(selmon); } @@ -1498,9 +1524,9 @@ void setlayout(const Arg *arg) { if (!arg || !arg->v || arg->v != selmon->lt[selmon->sellt]) - selmon->sellt ^= 1; + selmon->sellt = selmon->pertag->sellts[selmon->pertag->curtag] ^= 1; if (arg && arg->v) - selmon->lt[selmon->sellt] = (Layout *)arg->v; + selmon->lt[selmon->sellt] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt] = (Layout *)arg->v; strncpy(selmon->ltsymbol, selmon->lt[selmon->sellt]->symbol, sizeof selmon->ltsymbol); if (selmon->sel) arrange(selmon); @@ -1519,7 +1545,7 @@ setmfact(const Arg *arg) f = arg->f < 1.0 ? arg->f + selmon->mfact : arg->f - 1.0; if (f < 0.05 || f > 0.95) return; - selmon->mfact = f; + selmon->mfact = selmon->pertag->mfacts[selmon->pertag->curtag] = f; arrange(selmon); } @@ -1695,7 +1721,7 @@ tile(Monitor *m) void togglebar(const Arg *arg) { - selmon->showbar = !selmon->showbar; + selmon->showbar = selmon->pertag->showbars[selmon->pertag->curtag] = !selmon->showbar; updatebarpos(selmon); XMoveResizeWindow(dpy, selmon->barwin, selmon->wx, selmon->by, selmon->ww, bh); arrange(selmon); @@ -1734,9 +1760,33 @@ void toggleview(const Arg *arg) { unsigned int newtagset = selmon->tagset[selmon->seltags] ^ (arg->ui & TAGMASK); + int i; if (newtagset) { selmon->tagset[selmon->seltags] = newtagset; + + if (newtagset == ~0) { + selmon->pertag->prevtag = selmon->pertag->curtag; + selmon->pertag->curtag = 0; + } + + /* test if the user did not select the same tag */ + if (!(newtagset & 1 << (selmon->pertag->curtag - 1))) { + selmon->pertag->prevtag = selmon->pertag->curtag; + for (i = 0; !(newtagset & 1 << i); i++) ; + selmon->pertag->curtag = i + 1; + } + + /* apply settings for this view */ + selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag]; + selmon->mfact = selmon->pertag->mfacts[selmon->pertag->curtag]; + selmon->sellt = selmon->pertag->sellts[selmon->pertag->curtag]; + selmon->lt[selmon->sellt] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt]; + selmon->lt[selmon->sellt^1] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt^1]; + + if (selmon->showbar != selmon->pertag->showbars[selmon->pertag->curtag]) + togglebar(NULL); + focus(NULL); arrange(selmon); } @@ -2033,11 +2083,37 @@ updatewmhints(Client *c) void view(const Arg *arg) { + int i; + unsigned int tmptag; + if ((arg->ui & TAGMASK) == selmon->tagset[selmon->seltags]) return; selmon->seltags ^= 1; /* toggle sel tagset */ - if (arg->ui & TAGMASK) + if (arg->ui & TAGMASK) { selmon->tagset[selmon->seltags] = arg->ui & TAGMASK; + selmon->pertag->prevtag = selmon->pertag->curtag; + + if (arg->ui == ~0) + selmon->pertag->curtag = 0; + else { + for (i = 0; !(arg->ui & 1 << i); i++) ; + selmon->pertag->curtag = i + 1; + } + } else { + tmptag = selmon->pertag->prevtag; + selmon->pertag->prevtag = selmon->pertag->curtag; + selmon->pertag->curtag = tmptag; + } + + selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag]; + selmon->mfact = selmon->pertag->mfacts[selmon->pertag->curtag]; + selmon->sellt = selmon->pertag->sellts[selmon->pertag->curtag]; + selmon->lt[selmon->sellt] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt]; + selmon->lt[selmon->sellt^1] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt^1]; + + if (selmon->showbar != selmon->pertag->showbars[selmon->pertag->curtag]) + togglebar(NULL); + focus(NULL); arrange(selmon); } diff --git a/dwm.o b/dwm.o index 66b29691baf22adfc26d057e5b4c964bbba712bd..77af71ad766efcd6a4df0cbaccb58e09cc5d79ee 100644 GIT binary patch delta 15521 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 31 ? -1 : 1]; }; + +@@ -632,6 +643,7 @@ Monitor * + createmon(void) + { + Monitor *m; ++ unsigned int i; + + m = ecalloc(1, sizeof(Monitor)); + m->tagset[0] = m->tagset[1] = 1; +@@ -642,6 +654,20 @@ createmon(void) + m->lt[0] = &layouts[0]; + m->lt[1] = &layouts[1 % LENGTH(layouts)]; + strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol); ++ m->pertag = ecalloc(1, sizeof(Pertag)); ++ m->pertag->curtag = m->pertag->prevtag = 1; ++ ++ for (i = 0; i <= LENGTH(tags); i++) { ++ m->pertag->nmasters[i] = m->nmaster; ++ m->pertag->mfacts[i] = m->mfact; ++ ++ m->pertag->ltidxs[i][0] = m->lt[0]; ++ m->pertag->ltidxs[i][1] = m->lt[1]; ++ m->pertag->sellts[i] = m->sellt; ++ ++ m->pertag->showbars[i] = m->showbar; ++ } ++ + return m; + } + +@@ -967,7 +993,7 @@ grabkeys(void) + void + incnmaster(const Arg *arg) + { +- selmon->nmaster = MAX(selmon->nmaster + arg->i, 0); ++ selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag] = MAX(selmon->nmaster + arg->i, 0); + arrange(selmon); + } + +@@ -1502,9 +1528,9 @@ void + setlayout(const Arg *arg) + { + if (!arg || !arg->v || arg->v != selmon->lt[selmon->sellt]) +- selmon->sellt ^= 1; ++ selmon->sellt = selmon->pertag->sellts[selmon->pertag->curtag] ^= 1; + if (arg && arg->v) +- selmon->lt[selmon->sellt] = (Layout *)arg->v; ++ selmon->lt[selmon->sellt] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt] = (Layout *)arg->v; + strncpy(selmon->ltsymbol, selmon->lt[selmon->sellt]->symbol, sizeof selmon->ltsymbol); + if (selmon->sel) + arrange(selmon); +@@ -1523,7 +1549,7 @@ setmfact(const Arg *arg) + f = arg->f < 1.0 ? arg->f + selmon->mfact : arg->f - 1.0; + if (f < 0.05 || f > 0.95) + return; +- selmon->mfact = f; ++ selmon->mfact = selmon->pertag->mfacts[selmon->pertag->curtag] = f; + arrange(selmon); + } + +@@ -1702,7 +1728,7 @@ tile(Monitor *m) + void + togglebar(const Arg *arg) + { +- selmon->showbar = !selmon->showbar; ++ selmon->showbar = selmon->pertag->showbars[selmon->pertag->curtag] = !selmon->showbar; + updatebarpos(selmon); + XMoveResizeWindow(dpy, selmon->barwin, selmon->wx, selmon->by, selmon->ww, bh); + arrange(selmon); +@@ -1741,9 +1767,33 @@ void + toggleview(const Arg *arg) + { + unsigned int newtagset = selmon->tagset[selmon->seltags] ^ (arg->ui & TAGMASK); ++ int i; + + if (newtagset) { + selmon->tagset[selmon->seltags] = newtagset; ++ ++ if (newtagset == ~0) { ++ selmon->pertag->prevtag = selmon->pertag->curtag; ++ selmon->pertag->curtag = 0; ++ } ++ ++ /* test if the user did not select the same tag */ ++ if (!(newtagset & 1 << (selmon->pertag->curtag - 1))) { ++ selmon->pertag->prevtag = selmon->pertag->curtag; ++ for (i = 0; !(newtagset & 1 << i); i++) ; ++ selmon->pertag->curtag = i + 1; ++ } ++ ++ /* apply settings for this view */ ++ selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag]; ++ selmon->mfact = selmon->pertag->mfacts[selmon->pertag->curtag]; ++ selmon->sellt = selmon->pertag->sellts[selmon->pertag->curtag]; ++ selmon->lt[selmon->sellt] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt]; ++ selmon->lt[selmon->sellt^1] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt^1]; ++ ++ if (selmon->showbar != selmon->pertag->showbars[selmon->pertag->curtag]) ++ togglebar(NULL); ++ + focus(NULL); + arrange(selmon); + } +@@ -2038,11 +2088,37 @@ updatewmhints(Client *c) + void + view(const Arg *arg) + { ++ int i; ++ unsigned int tmptag; ++ + if ((arg->ui & TAGMASK) == selmon->tagset[selmon->seltags]) + return; + selmon->seltags ^= 1; /* toggle sel tagset */ +- if (arg->ui & TAGMASK) ++ if (arg->ui & TAGMASK) { + selmon->tagset[selmon->seltags] = arg->ui & TAGMASK; ++ selmon->pertag->prevtag = selmon->pertag->curtag; ++ ++ if (arg->ui == ~0) ++ selmon->pertag->curtag = 0; ++ else { ++ for (i = 0; !(arg->ui & 1 << i); i++) ; ++ selmon->pertag->curtag = i + 1; ++ } ++ } else { ++ tmptag = selmon->pertag->prevtag; ++ selmon->pertag->prevtag = selmon->pertag->curtag; ++ selmon->pertag->curtag = tmptag; ++ } ++ ++ selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag]; ++ selmon->mfact = selmon->pertag->mfacts[selmon->pertag->curtag]; ++ selmon->sellt = selmon->pertag->sellts[selmon->pertag->curtag]; ++ selmon->lt[selmon->sellt] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt]; ++ selmon->lt[selmon->sellt^1] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt^1]; ++ ++ if (selmon->showbar != selmon->pertag->showbars[selmon->pertag->curtag]) ++ togglebar(NULL); ++ + focus(NULL); + arrange(selmon); + } diff --git a/util.o b/util.o index e1356931d602cd441820942e57d8d856b02bbe2b..05fae9b666c993ae910dcc025499f618a8792bad 100644 GIT binary patch delta 35 qcmX>gctCJNB%_$2p^>42Mo?;sf=6PBf}xR~k)ENh$>w~gctCJNB%_#tg`uT_Mo?;sf=6PBf}xR~k)ENh(dK-{Kz0DM-U(3v