Adding proposed changes to have different gaps on a per tag basis ref. #106

This commit is contained in:
bakkeby 2021-04-04 10:49:25 +02:00
parent 4b22fdc0c3
commit 521f87af13
4 changed files with 29 additions and 6 deletions

View File

@ -15,6 +15,8 @@ Refer to [https://dwm.suckless.org/](https://dwm.suckless.org/) for details on t
### Changelog:
2021-04-04 - Added option for having different gaps on a per tag basis
2021-03-31 - Added tapresize patch (contributed by [verschmelzen](https://github.com/verschmelzen))
2021-03-29 - Removed alwaysfullscreen patch (merged into dwm 6.2)

View File

@ -22,6 +22,9 @@ struct Pertag {
#if VANITYGAPS_PATCH
int enablegaps[NUMTAGS + 1];
#endif // VANITYGAPS_PATCH
#if PERTAG_VANITYGAPS_PATCH && VANITYGAPS_PATCH
unsigned int gaps[NUMTAGS + 1];
#endif // PERTAG_VANITYGAPS_PATCH | VANITYGAPS_PATCH
};
void
@ -56,6 +59,13 @@ pertagview(const Arg *arg)
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 PERTAG_VANITYGAPS_PATCH && VANITYGAPS_PATCH
selmon->gappoh = (selmon->pertag->gaps[selmon->pertag->curtag] & 0xff) >> 0;
selmon->gappov = (selmon->pertag->gaps[selmon->pertag->curtag] & 0xff00) >> 8;
selmon->gappih = (selmon->pertag->gaps[selmon->pertag->curtag] & 0xff0000) >> 16;
selmon->gappiv = (selmon->pertag->gaps[selmon->pertag->curtag] & 0xff000000) >> 24;
#endif // PERTAG_VANITYGAPS_PATCH | VANITYGAPS_PATCH
#if FLEXTILE_DELUXE_LAYOUT
selmon->ltaxis[LAYOUT] = selmon->pertag->ltaxis[selmon->pertag->curtag][LAYOUT];
selmon->ltaxis[MASTER] = selmon->pertag->ltaxis[selmon->pertag->curtag][MASTER];

View File

@ -1,7 +1,7 @@
/* Settings */
#if !PERTAG_PATCH
#if !PERTAG_VANITYGAPS_PATCH || !PERTAG_PATCH
static int enablegaps = 1;
#endif // PERTAG_PATCH
#endif // PERTAG_VANITYGAPS_PATCH | PERTAG_PATCH
static void
setgaps(int oh, int ov, int ih, int iv)
@ -15,6 +15,12 @@ setgaps(int oh, int ov, int ih, int iv)
selmon->gappov = ov;
selmon->gappih = ih;
selmon->gappiv = iv;
#if PERTAG_VANITYGAPS_PATCH && PERTAG_PATCH
selmon->pertag->gaps[selmon->pertag->curtag] =
((oh & 0xFF) << 0) | ((ov & 0xFF) << 8) | ((ih & 0xFF) << 16) | ((iv & 0xFF) << 24);
#endif // PERTAG_VANITYGAPS_PATCH | PERTAG_PATCH
arrange(selmon);
}
@ -60,13 +66,13 @@ setgapsex(const Arg *arg)
iv = (arg->i & 0x7f);
/* Auto enable gaps if disabled */
#if PERTAG_PATCH
#if PERTAG_VANITYGAPS_PATCH && PERTAG_PATCH
if (!selmon->pertag->enablegaps[selmon->pertag->curtag])
selmon->pertag->enablegaps[selmon->pertag->curtag] = 1;
#else
if (!enablegaps)
enablegaps = 1;
#endif // PERTAG_PATCH
#endif // PERTAG_VANITYGAPS_PATCH | PERTAG_PATCH
setgaps(oh, ov, ih, iv);
}
@ -75,11 +81,11 @@ setgapsex(const Arg *arg)
static void
togglegaps(const Arg *arg)
{
#if PERTAG_PATCH
#if PERTAG_VANITYGAPS_PATCH && PERTAG_PATCH
selmon->pertag->enablegaps[selmon->pertag->curtag] = !selmon->pertag->enablegaps[selmon->pertag->curtag];
#else
enablegaps = !enablegaps;
#endif // PERTAG_PATCH
#endif // PERTAG_VANITYGAPS_PATCH | PERTAG_PATCH
arrange(NULL);
}

View File

@ -721,6 +721,11 @@
*/
#define PERTAG_PATCH 0
/* Option to store gaps on a per tag basis rather than on a per monitor basis.
* Depends on both pertag and vanitygaps patches being enabled.
*/
#define PERTAG_VANITYGAPS_PATCH 0
/* This controls whether or not to also store bar position on a per
* tag basis, or leave it as one bar per monitor.
*/