Added alttagsdecoration patch.

Unified tag icon handling while adding support for different icons per monitor.

In general LENGTH(tags) has been replaced with a NUMTAGS macro (defaulting to 9)
and the tags[] array has been replaced with a tagicons[][] array, access to which
is done through a single function tagicon.

This allows one central place where alternative tags, alttagsdecoration, or other
future tags logic is handled. This also gives a consistent display of tags
regardless of the module that presents tags.

Additionally the monitor index has been integrated into dwm for easier access.
This commit is contained in:
bakkeby
2020-08-25 16:27:14 +02:00
parent df57bdeb64
commit f45acf8795
22 changed files with 199 additions and 146 deletions

View File

@@ -50,13 +50,13 @@ drawindicator(Monitor *m, Client *c, unsigned int occ, int x, int w, unsigned in
case INDICATOR_RIGHT_TAGS:
if (!c)
break;
for (i = 0; i < LENGTH(tags); i++) {
for (i = 0; i < NUMTAGS; i++) {
drw_rect(drw,
( x + w - 2 - ((LENGTH(tags) / TAGSROWS) * TAGSPX)
- (i % (LENGTH(tags)/TAGSROWS)) + ((i % (LENGTH(tags) / TAGSROWS)) * TAGSPX)
( x + w - 2 - ((NUMTAGS / TAGSROWS) * TAGSPX)
- (i % (NUMTAGS/TAGSROWS)) + ((i % (NUMTAGS / TAGSROWS)) * TAGSPX)
),
( 2 + ((i / (LENGTH(tags)/TAGSROWS)) * TAGSPX)
- ((i / (LENGTH(tags)/TAGSROWS)))
( 2 + ((i / (NUMTAGS/TAGSROWS)) * TAGSPX)
- ((i / (NUMTAGS/TAGSROWS)))
),
TAGSPX, TAGSPX, (c->tags >> i) & 1, 0
);