aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xexamplebar.sh9
-rw-r--r--src/bardata.c16
-rw-r--r--src/tsar.c10
3 files changed, 25 insertions, 10 deletions
diff --git a/examplebar.sh b/examplebar.sh
index dd082f1..ff907f1 100755
--- a/examplebar.sh
+++ b/examplebar.sh
@@ -9,7 +9,10 @@
./tsarc set sep -text " | "
./tsarc create date
-./tsarc set date -text "$(date)"
-./tsarc layout \
- -left test_comp sep date
+./tsarc layout -left test_comp sep date
+
+while true; do
+ ./tsarc set date -text "$(date)"
+ sleep 1
+done
diff --git a/src/bardata.c b/src/bardata.c
index 0bbc52d..493e9b1 100644
--- a/src/bardata.c
+++ b/src/bardata.c
@@ -18,11 +18,6 @@ size_t comps_size = 0;
comp_t *comps_left[16], *comps_right[16], *comps_center[16];
size_t left_size = 0, right_size = 0, center_size = 0;
-void new_component(char *name) {
- strcpy(comps[comps_size].name, name);
- comps_size++;
-}
-
comp_t *find_comp(char *name) {
for (size_t i = 0; i < comps_size; i++) {
if (strcmp(comps[i].name, name) == 0) {
@@ -32,6 +27,14 @@ comp_t *find_comp(char *name) {
return NULL;
}
+void new_component(char *name) {
+ comp_t* existing = find_comp(name);
+ if (existing)
+ return;
+ strcpy(comps[comps_size].name, name);
+ comps_size++;
+}
+
void add_component(comp_side_t side, char *name) {
comp_t *comp = find_comp(name);
if (side == SIDE_LEFT) {
@@ -65,6 +68,9 @@ void set_component(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) {
void set_layout(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) {
comp_side_t side = SIDE_LEFT;
+ left_size = 0;
+ center_size = 0;
+ right_size = 0;
for (int i = 1; i < argc; i++) {
if (strcmp(argv[i], "-left") == 0) {
diff --git a/src/tsar.c b/src/tsar.c
index 1570b92..da21ad3 100644
--- a/src/tsar.c
+++ b/src/tsar.c
@@ -7,6 +7,7 @@
#include <X11/Xft/Xft.h>
#include <X11/Xlib.h>
+#include <X11/Xatom.h>
#include "pipe.h"
#include "bardata.h"
@@ -75,7 +76,13 @@ void init_x(void) {
&win_attr
);
- XMapRaised(display, win);
+ XClassHint class_hint;
+ class_hint.res_name = "tsarbar";
+ class_hint.res_class = "Bar";
+
+ XSetClassHint(display, win, &class_hint);
+
+ XMapWindow(display, win);
load_font("monospace:size=10");
@@ -126,7 +133,6 @@ int main(void) {
XResizeWindow(display, win, width, bar_height);
-
int x = 0;
for (int i = 0; i < left_size; i++) {
comp_t* comp = comps_left[i];