add ability to specify tag names and fix LICENSE

This commit is contained in:
kolunmi 2023-02-07 17:44:13 -07:00
parent 301a5f77b6
commit 452ae3f2d5
2 changed files with 38 additions and 10 deletions

20
LICENSE
View File

@ -1,5 +1,25 @@
dwlb - bar for dwl dwlb - bar for dwl
Copyright © 2023 kolunmi
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
---
dtao - dzen for Wayland
Copyright © 2021 Devin J. Pohly and dtao team
See also the license information in dtao.c.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or

28
dwlb.c
View File

@ -51,7 +51,7 @@
#define PROGRAM "dwlb" #define PROGRAM "dwlb"
#define VERSION "0.1" #define VERSION "0.1"
#define USAGE \ #define USAGE \
"usage: dwlb [OPTIONS]\n" \ "usage: dwlb [OPTIONS]\n" \
" -status [OUTPUT] [TEXT] send status text to dwlb\n" \ " -status [OUTPUT] [TEXT] send status text to dwlb\n" \
" -hide-vacant-tags do not display empty and inactive tags\n" \ " -hide-vacant-tags do not display empty and inactive tags\n" \
@ -61,6 +61,7 @@
" -inactive-color [COLOR] specify color to indicate inactive tags or monitors\n" \ " -inactive-color [COLOR] specify color to indicate inactive tags or monitors\n" \
" -urg-text-color [COLOR] specify text color on urgent tags\n" \ " -urg-text-color [COLOR] specify text color on urgent tags\n" \
" -urg-bg-color [COLOR] specify color of urgent tags\n" \ " -urg-bg-color [COLOR] specify color of urgent tags\n" \
" -tags [TAG 1]...[TAG 9] specify tag text\n" \
" -v get version information\n" \ " -v get version information\n" \
" -h view this help text\n" " -h view this help text\n"
@ -113,7 +114,9 @@ static bool ready = false;
static bool hide_vacant = false; static bool hide_vacant = false;
static Bar *bars = NULL; static Bar *bars = NULL;
static char *tags[9] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; #define TAGSLEN 9
static char *tags[TAGSLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
static struct fcft_font *font; static struct fcft_font *font;
static pixman_color_t activecolor = { .red = 0x0000, .green = 0x5555, .blue = 0x7777, .alpha = 0xffff, }; static pixman_color_t activecolor = { .red = 0x0000, .green = 0x5555, .blue = 0x7777, .alpha = 0xffff, };
static pixman_color_t inactivecolor = { .red = 0x2222, .green = 0x2222, .blue = 0x2222, .alpha = 0xffff, }; static pixman_color_t inactivecolor = { .red = 0x2222, .green = 0x2222, .blue = 0x2222, .alpha = 0xffff, };
@ -380,7 +383,7 @@ draw_frame(Bar *b)
uint32_t boxs = font->height / 9; uint32_t boxs = font->height / 9;
uint32_t boxw = font->height / 6 + 2; uint32_t boxw = font->height / 6 + 2;
for (uint32_t i = 0; i < 9; i++) { for (uint32_t i = 0; i < TAGSLEN; i++) {
bool active = b->mtags & 1 << i; bool active = b->mtags & 1 << i;
bool occupied = b->ctags & 1 << i; bool occupied = b->ctags & 1 << i;
bool urgent = b->urg & 1 << i; bool urgent = b->urg & 1 << i;
@ -404,13 +407,12 @@ draw_frame(Bar *b)
xpos_left = draw_text(tags[i], xpos_left, ypos, foreground_left, background_left, xpos_left = draw_text(tags[i], xpos_left, ypos, foreground_left, background_left,
&textcolor, active ? &activecolor : &inactivecolor, b->width, b->height, b->textpadding, false); &textcolor, active ? &activecolor : &inactivecolor, b->width, b->height, b->textpadding, false);
} }
xpos_left = draw_text(b->layout, xpos_left, ypos, foreground_left, background_left, xpos_left = draw_text(b->layout, xpos_left, ypos, foreground_left, background_left,
&textcolor, &inactivecolor, b->width, b->height, b->textpadding, false); &textcolor, &inactivecolor, b->width, b->height, b->textpadding, false);
xpos_right = draw_text(b->status, 0, ypos, foreground_right, background_right, xpos_right = draw_text(b->status, 0, ypos, foreground_right, background_right,
&textcolor, &inactivecolor, b->width, b->height, b->textpadding, true); &textcolor, &inactivecolor, b->width, b->height, b->textpadding, true);
if (xpos_right > b->width)
xpos_right = b->width;
draw_text(b->title, 0, ypos, foreground_title, NULL, draw_text(b->title, 0, ypos, foreground_title, NULL,
&textcolor, NULL, b->width, b->height, b->textpadding, false); &textcolor, NULL, b->width, b->height, b->textpadding, false);
@ -466,6 +468,11 @@ layer_surface_closed(void *data, struct zwlr_layer_surface_v1 *surface)
run_display = false; run_display = false;
} }
static const struct zwlr_layer_surface_v1_listener layer_surface_listener = {
.configure = layer_surface_configure,
.closed = layer_surface_closed,
};
static void static void
cleanup(void) cleanup(void)
{ {
@ -473,11 +480,6 @@ cleanup(void)
unlink(socketpath); unlink(socketpath);
} }
static const struct zwlr_layer_surface_v1_listener layer_surface_listener = {
.configure = layer_surface_configure,
.closed = layer_surface_closed,
};
static void static void
output_name(void *data, struct zxdg_output_v1 *xdg_output, const char *name) output_name(void *data, struct zxdg_output_v1 *xdg_output, const char *name)
{ {
@ -875,6 +877,12 @@ main(int argc, char **argv)
DIE("Option -urg-bg-color requires an argument"); DIE("Option -urg-bg-color requires an argument");
if (parse_color(argv[i], &urgbgcolor) == -1) if (parse_color(argv[i], &urgbgcolor) == -1)
DIE("malformed color string"); DIE("malformed color string");
} else if (!strcmp(argv[i], "-tags")) {
if (i + TAGSLEN >= argc)
DIE("Option -tags requires %i arguments", TAGSLEN);
for (int j = 0; j < TAGSLEN; j++)
tags[j] = argv[i + 1 + j];
i += TAGSLEN;
} else if (!strcmp(argv[i], "-v")) { } else if (!strcmp(argv[i], "-v")) {
fprintf(stderr, PROGRAM " " VERSION "\n"); fprintf(stderr, PROGRAM " " VERSION "\n");
return 0; return 0;