mirror of
https://github.com/mintycube/dwm.git
synced 2024-10-22 14:05:45 +02:00
Expanded monitor rules patch to include nmaster, showbar and topbar options.
This commit is contained in:
parent
5848460fff
commit
14b7edd911
@ -15,6 +15,8 @@ Refer to [https://dwm.suckless.org/](https://dwm.suckless.org/) for details on t
|
|||||||
|
|
||||||
### Changelog:
|
### Changelog:
|
||||||
|
|
||||||
|
2020-04-26 - Expanded monitor rules patch to include nmaster, showbar and topbar options
|
||||||
|
|
||||||
2020-04-23 - Improved swallow and switchtag compatibility
|
2020-04-23 - Improved swallow and switchtag compatibility
|
||||||
|
|
||||||
2020-04-16 - Upgraded the scratchpad patch to the multiple scratchpads patch \[[ref](https://lists.suckless.org/hackers/2004/17205.html)\]. Updated the statuscolors patch with the width computation fix \[[ref](https://lists.suckless.org/hackers/2004/17207.html)\].
|
2020-04-16 - Upgraded the scratchpad patch to the multiple scratchpads patch \[[ref](https://lists.suckless.org/hackers/2004/17205.html)\]. Updated the statuscolors patch with the width computation fix \[[ref](https://lists.suckless.org/hackers/2004/17207.html)\].
|
||||||
@ -251,7 +253,7 @@ Refer to [https://dwm.suckless.org/](https://dwm.suckless.org/) for details on t
|
|||||||
- [mdpcontrol](https://dwm.suckless.org/patches/mpdcontrol/)
|
- [mdpcontrol](https://dwm.suckless.org/patches/mpdcontrol/)
|
||||||
- adds keyboard bindings to control MDP (Music Player Daemon)
|
- adds keyboard bindings to control MDP (Music Player Daemon)
|
||||||
|
|
||||||
- monitorrules
|
- [monitorrules](https://github.com/bakkeby/patches/blob/master/dwm/dwm-monitorrules-6.2.diff)
|
||||||
- adds rules per monitor, e.g. have default layouts per monitor
|
- adds rules per monitor, e.g. have default layouts per monitor
|
||||||
- the use case for this is if the second monitor is vertical (i.e. rotated) then you may want to use a different default layout for this monitor than what is used for the main monitor (for example normal vertical split for main monitor and horizontal split for the second)
|
- the use case for this is if the second monitor is vertical (i.e. rotated) then you may want to use a different default layout for this monitor than what is used for the main monitor (for example normal vertical split for main monitor and horizontal split for the second)
|
||||||
|
|
||||||
|
12
config.def.h
12
config.def.h
@ -441,15 +441,15 @@ static const Rule rules[] = {
|
|||||||
#if MONITOR_RULES_PATCH
|
#if MONITOR_RULES_PATCH
|
||||||
#if PERTAG_PATCH
|
#if PERTAG_PATCH
|
||||||
static const MonitorRule monrules[] = {
|
static const MonitorRule monrules[] = {
|
||||||
/* monitor tag layout mfact */
|
/* monitor tag layout mfact nmaster showbar topbar */
|
||||||
{ 1, -1, 2, -1 }, // use a different layout for the second monitor
|
{ 1, -1, 2, -1, -1, -1, -1 }, // use a different layout for the second monitor
|
||||||
{ -1, -1, 0, -1 }, // default
|
{ -1, -1, 0, -1, -1, -1, -1 }, // default
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
static const MonitorRule monrules[] = {
|
static const MonitorRule monrules[] = {
|
||||||
/* monitor layout mfact */
|
/* monitor layout mfact nmaster showbar topbar */
|
||||||
{ 1, 2, -1 }, // use a different layout for the second monitor
|
{ 1, 2, -1, -1, -1, -1 }, // use a different layout for the second monitor
|
||||||
{ -1, 0, -1 }, // default
|
{ -1, 0, -1, -1, -1, -1 }, // default
|
||||||
};
|
};
|
||||||
#endif // PERTAG_PATCH
|
#endif // PERTAG_PATCH
|
||||||
#endif // MONITOR_RULES_PATCH
|
#endif // MONITOR_RULES_PATCH
|
||||||
|
46
dwm.c
46
dwm.c
@ -317,6 +317,9 @@ typedef struct {
|
|||||||
#endif // PERTAG_PATCH
|
#endif // PERTAG_PATCH
|
||||||
int layout;
|
int layout;
|
||||||
float mfact;
|
float mfact;
|
||||||
|
int nmaster;
|
||||||
|
int showbar;
|
||||||
|
int topbar;
|
||||||
} MonitorRule;
|
} MonitorRule;
|
||||||
#endif // MONITOR_RULES_PATCH
|
#endif // MONITOR_RULES_PATCH
|
||||||
|
|
||||||
@ -1280,6 +1283,15 @@ createmon(void)
|
|||||||
m->lt[0] = &layouts[mr->layout];
|
m->lt[0] = &layouts[mr->layout];
|
||||||
m->lt[1] = &layouts[1 % LENGTH(layouts)];
|
m->lt[1] = &layouts[1 % LENGTH(layouts)];
|
||||||
strncpy(m->ltsymbol, layouts[mr->layout].symbol, sizeof m->ltsymbol);
|
strncpy(m->ltsymbol, layouts[mr->layout].symbol, sizeof m->ltsymbol);
|
||||||
|
|
||||||
|
if (mr->mfact > -1)
|
||||||
|
m->mfact = mr->mfact;
|
||||||
|
if (mr->nmaster > -1)
|
||||||
|
m->nmaster = mr->nmaster;
|
||||||
|
if (mr->showbar > -1)
|
||||||
|
m->showbar = mr->showbar;
|
||||||
|
if (mr->topbar > -1)
|
||||||
|
m->topbar = mr->topbar;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1301,16 +1313,27 @@ createmon(void)
|
|||||||
die("fatal: could not malloc() %u bytes\n", sizeof(Pertag));
|
die("fatal: could not malloc() %u bytes\n", sizeof(Pertag));
|
||||||
m->pertag->curtag = m->pertag->prevtag = 1;
|
m->pertag->curtag = m->pertag->prevtag = 1;
|
||||||
for (i = 0; i <= LENGTH(tags); i++) {
|
for (i = 0; i <= LENGTH(tags); i++) {
|
||||||
/* init nmaster */
|
|
||||||
m->pertag->nmasters[i] = m->nmaster;
|
|
||||||
|
|
||||||
#if FLEXTILE_DELUXE_LAYOUT
|
#if FLEXTILE_DELUXE_LAYOUT
|
||||||
m->pertag->nstacks[i] = m->nstack;
|
m->pertag->nstacks[i] = m->nstack;
|
||||||
#endif // FLEXTILE_DELUXE_LAYOUT
|
#endif // FLEXTILE_DELUXE_LAYOUT
|
||||||
|
|
||||||
|
#if !MONITOR_RULES_PATCH
|
||||||
|
/* init nmaster */
|
||||||
|
m->pertag->nmasters[i] = m->nmaster;
|
||||||
|
|
||||||
/* init mfacts */
|
/* init mfacts */
|
||||||
m->pertag->mfacts[i] = m->mfact;
|
m->pertag->mfacts[i] = m->mfact;
|
||||||
|
|
||||||
|
#if PERTAGBAR_PATCH
|
||||||
|
/* init showbar */
|
||||||
|
m->pertag->showbars[i] = m->showbar;
|
||||||
|
#endif // PERTAGBAR_PATCH
|
||||||
|
#endif // MONITOR_RULES_PATCH
|
||||||
|
|
||||||
|
#if ZOOMSWAP_PATCH
|
||||||
|
m->pertag->prevzooms[i] = NULL;
|
||||||
|
#endif // ZOOMSWAP_PATCH
|
||||||
|
|
||||||
/* init layouts */
|
/* init layouts */
|
||||||
#if MONITOR_RULES_PATCH
|
#if MONITOR_RULES_PATCH
|
||||||
for (j = 0; j < LENGTH(monrules); j++) {
|
for (j = 0; j < LENGTH(monrules); j++) {
|
||||||
@ -1318,8 +1341,11 @@ createmon(void)
|
|||||||
if ((mr->monitor == -1 || mr->monitor == mc) && (mr->tag == -1 || mr->tag == i)) {
|
if ((mr->monitor == -1 || mr->monitor == mc) && (mr->tag == -1 || mr->tag == i)) {
|
||||||
m->pertag->ltidxs[i][0] = &layouts[mr->layout];
|
m->pertag->ltidxs[i][0] = &layouts[mr->layout];
|
||||||
m->pertag->ltidxs[i][1] = m->lt[0];
|
m->pertag->ltidxs[i][1] = m->lt[0];
|
||||||
if (mr->mfact != -1)
|
m->pertag->nmasters[i] = (mr->nmaster > -1 ? mr->nmaster : m->nmaster);
|
||||||
m->pertag->mfacts[i] = mr->mfact;
|
m->pertag->mfacts[i] = (mr->mfact > -1 ? mr->mfact : m->mfact);
|
||||||
|
#if PERTAGBAR_PATCH
|
||||||
|
m->pertag->showbars[i] = (mr->showbar > -1 ? mr->showbar : m->showbar);
|
||||||
|
#endif // PERTAGBAR_PATCH
|
||||||
#if FLEXTILE_DELUXE_LAYOUT
|
#if FLEXTILE_DELUXE_LAYOUT
|
||||||
m->pertag->ltaxis[i][LAYOUT] = m->pertag->ltidxs[i][0]->preset.layout;
|
m->pertag->ltaxis[i][LAYOUT] = m->pertag->ltidxs[i][0]->preset.layout;
|
||||||
m->pertag->ltaxis[i][MASTER] = m->pertag->ltidxs[i][0]->preset.masteraxis;
|
m->pertag->ltaxis[i][MASTER] = m->pertag->ltidxs[i][0]->preset.masteraxis;
|
||||||
@ -1342,16 +1368,6 @@ createmon(void)
|
|||||||
#endif // MONITOR_RULES_PATCH
|
#endif // MONITOR_RULES_PATCH
|
||||||
m->pertag->sellts[i] = m->sellt;
|
m->pertag->sellts[i] = m->sellt;
|
||||||
|
|
||||||
#if PERTAGBAR_PATCH
|
|
||||||
/* init showbar */
|
|
||||||
m->pertag->showbars[i] = m->showbar;
|
|
||||||
|
|
||||||
/* swap focus and zoomswap*/
|
|
||||||
#if ZOOMSWAP_PATCH
|
|
||||||
m->pertag->prevzooms[i] = NULL;
|
|
||||||
#endif // ZOOMSWAP_PATCH
|
|
||||||
#endif // PERTAGBAR_PATCH
|
|
||||||
|
|
||||||
#if VANITYGAPS_PATCH
|
#if VANITYGAPS_PATCH
|
||||||
m->pertag->enablegaps[i] = 1;
|
m->pertag->enablegaps[i] = 1;
|
||||||
#endif // VANITYGAPS_PATCH
|
#endif // VANITYGAPS_PATCH
|
||||||
|
Loading…
Reference in New Issue
Block a user