aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LICENSE20
-rw-r--r--dwlb.c28
2 files changed, 38 insertions, 10 deletions
diff --git a/LICENSE b/LICENSE
index 1ab54b3..ec87e85 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,5 +1,25 @@
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
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
diff --git a/dwlb.c b/dwlb.c
index 944824e..f951b64 100644
--- a/dwlb.c
+++ b/dwlb.c
@@ -51,7 +51,7 @@
#define PROGRAM "dwlb"
#define VERSION "0.1"
-#define USAGE \
+#define USAGE \
"usage: dwlb [OPTIONS]\n" \
" -status [OUTPUT] [TEXT] send status text to dwlb\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" \
" -urg-text-color [COLOR] specify text color on 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" \
" -h view this help text\n"
@@ -113,7 +114,9 @@ static bool ready = false;
static bool hide_vacant = false;
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 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, };
@@ -380,7 +383,7 @@ draw_frame(Bar *b)
uint32_t boxs = font->height / 9;
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 occupied = b->ctags & 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,
&textcolor, active ? &activecolor : &inactivecolor, b->width, b->height, b->textpadding, false);
}
+
xpos_left = draw_text(b->layout, xpos_left, ypos, foreground_left, background_left,
&textcolor, &inactivecolor, b->width, b->height, b->textpadding, false);
xpos_right = draw_text(b->status, 0, ypos, foreground_right, background_right,
&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,
&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;
}
+static const struct zwlr_layer_surface_v1_listener layer_surface_listener = {
+ .configure = layer_surface_configure,
+ .closed = layer_surface_closed,
+};
+
static void
cleanup(void)
{
@@ -473,11 +480,6 @@ cleanup(void)
unlink(socketpath);
}
-static const struct zwlr_layer_surface_v1_listener layer_surface_listener = {
- .configure = layer_surface_configure,
- .closed = layer_surface_closed,
-};
-
static void
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");
if (parse_color(argv[i], &urgbgcolor) == -1)
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")) {
fprintf(stderr, PROGRAM " " VERSION "\n");
return 0;