diff options
| -rw-r--r-- | qubes-dwm-6.2/dwm-rmaster-pertag-6.1.diff | 63 | ||||
| -rw-r--r-- | qubes-dwm-6.2/dwm.c | 8 |
2 files changed, 70 insertions, 1 deletions
diff --git a/qubes-dwm-6.2/dwm-rmaster-pertag-6.1.diff b/qubes-dwm-6.2/dwm-rmaster-pertag-6.1.diff new file mode 100644 index 0000000..8ef3c01 --- /dev/null +++ b/qubes-dwm-6.2/dwm-rmaster-pertag-6.1.diff @@ -0,0 +1,63 @@ +First apply rmaster, then pertag, then this patch for rmaster-pertag + +--- a/dwm.c ++++ b/dwm.c +@@ -136,6 +136,7 @@ struct Monitor { + char ltsymbol[16]; + float mfact; + int nmaster; ++ int rmaster; + int num; + int by; /* bar geometry */ + int mx, my, mw, mh; /* screen size */ +@@ -143,7 +144,6 @@ struct Monitor { + unsigned int seltags; + unsigned int sellt; + unsigned int tagset[2]; +- int rmaster; + int showbar; + int topbar; + Client *clients; +@@ -322,6 +322,7 @@ static Window root, wmcheckwin; + struct Pertag { + unsigned int curtag, prevtag; /* current and previous tag */ + int nmasters[LENGTH(tags) + 1]; /* number of windows in master area */ ++ int rmasters[LENGTH(tags) + 1]; /* rmasters per tag */ + float mfacts[LENGTH(tags) + 1]; /* mfacts per tag */ + unsigned int sellts[LENGTH(tags) + 1]; /* selected layouts */ + const Layout *ltidxs[LENGTH(tags) + 1][2]; /* matrix of tags and layouts indexes */ +@@ -787,6 +788,7 @@ createmon(void) + + for (i = 0; i <= LENGTH(tags); i++) { + m->pertag->nmasters[i] = m->nmaster; ++ m->pertag->rmasters[i] = m->rmaster; + m->pertag->mfacts[i] = m->mfact; + + m->pertag->ltidxs[i][0] = m->lt[0]; +@@ -2076,8 +2078,10 @@ void + togglermaster(const Arg *arg) + { + selmon->rmaster = !selmon->rmaster; ++ selmon->pertag->rmasters[selmon->pertag->curtag] = selmon->rmaster; + /* now mfact represents the left factor */ + selmon->mfact = 1.0 - selmon->mfact; ++ selmon->pertag->mfacts[selmon->pertag->curtag] = selmon->mfact; + if (selmon->lt[selmon->sellt]->arrange) + arrange(selmon); + } +@@ -2120,6 +2124,7 @@ toggleview(const Arg *arg) + + /* apply settings for this view */ + selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag]; ++ selmon->rmaster = selmon->pertag->rmasters[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]; +@@ -2572,6 +2577,7 @@ view(const Arg *arg) + } + + selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag]; ++ selmon->rmaster = selmon->pertag->rmasters[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]; diff --git a/qubes-dwm-6.2/dwm.c b/qubes-dwm-6.2/dwm.c index 05a8974..5c60aae 100644 --- a/qubes-dwm-6.2/dwm.c +++ b/qubes-dwm-6.2/dwm.c @@ -136,6 +136,7 @@ struct Monitor { char ltsymbol[16]; float mfact; int nmaster; + int rmaster; int num; int by; /* bar geometry */ int mx, my, mw, mh; /* screen size */ @@ -143,7 +144,6 @@ struct Monitor { unsigned int seltags; unsigned int sellt; unsigned int tagset[2]; - int rmaster; int showbar; int topbar; Client *clients; @@ -322,6 +322,7 @@ static Window root, wmcheckwin; struct Pertag { unsigned int curtag, prevtag; /* current and previous tag */ int nmasters[LENGTH(tags) + 1]; /* number of windows in master area */ + int rmasters[LENGTH(tags) + 1]; /* rmasters per tag */ float mfacts[LENGTH(tags) + 1]; /* mfacts per tag */ unsigned int sellts[LENGTH(tags) + 1]; /* selected layouts */ const Layout *ltidxs[LENGTH(tags) + 1][2]; /* matrix of tags and layouts indexes */ @@ -787,6 +788,7 @@ createmon(void) for (i = 0; i <= LENGTH(tags); i++) { m->pertag->nmasters[i] = m->nmaster; + m->pertag->rmasters[i] = m->rmaster; m->pertag->mfacts[i] = m->mfact; m->pertag->ltidxs[i][0] = m->lt[0]; @@ -2076,8 +2078,10 @@ void togglermaster(const Arg *arg) { selmon->rmaster = !selmon->rmaster; + selmon->pertag->rmasters[selmon->pertag->curtag] = selmon->rmaster; /* now mfact represents the left factor */ selmon->mfact = 1.0 - selmon->mfact; + selmon->pertag->mfacts[selmon->pertag->curtag] = selmon->mfact; if (selmon->lt[selmon->sellt]->arrange) arrange(selmon); } @@ -2120,6 +2124,7 @@ toggleview(const Arg *arg) /* apply settings for this view */ selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag]; + selmon->rmaster = selmon->pertag->rmasters[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]; @@ -2572,6 +2577,7 @@ view(const Arg *arg) } selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag]; + selmon->rmaster = selmon->pertag->rmasters[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]; |
