aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xexamplebar.sh4
-rw-r--r--src/bardata.c14
-rw-r--r--src/bardata.h5
-rw-r--r--src/pipe.c7
-rw-r--r--src/tsar.c8
-rwxr-xr-xtsarc1
6 files changed, 31 insertions, 8 deletions
diff --git a/examplebar.sh b/examplebar.sh
index b11383d..5fef616 100755
--- a/examplebar.sh
+++ b/examplebar.sh
@@ -1,4 +1,4 @@
#! /bin/sh
-./tsarc create test_comp
-./tsarc layout -left test_comp -center test_comp -right test_comp test_comp
+./tsarc create test_comp &
+./tsarc layout -left test_comp -center test_comp -right test_comp test_comp &
diff --git a/src/bardata.c b/src/bardata.c
index 6369aa3..8888ac3 100644
--- a/src/bardata.c
+++ b/src/bardata.c
@@ -51,6 +51,18 @@ void add_component(comp_side_t side, char *name) {
}
}
+void set_component(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) {
+ comp_t* comp = find_comp(argv[1]);
+
+ for (int i = 2; i < argc; i++) {
+ if (strcmp(argv[i], "-text") == 0) {
+ strcpy(comp->data, argv[i + 1]);
+ i++;
+ continue;
+ }
+ }
+}
+
void set_layout(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) {
comp_side_t side = SIDE_LEFT;
@@ -71,7 +83,7 @@ void set_layout(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) {
}
}
-void set_var(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) {
+void set_config(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) {
char *var = argv[1];
if (strcmp(var, "height") == 0) {
int new_bar_height = atoi(argv[2]);
diff --git a/src/bardata.h b/src/bardata.h
index a59c8b8..874f7c6 100644
--- a/src/bardata.h
+++ b/src/bardata.h
@@ -19,9 +19,12 @@ typedef struct {
extern int fontsize;
extern color_t default_fg, default_bg;
extern int bar_height;
+extern comp_t *comps_left[16], *comps_right[16], *comps_center[16];
+extern size_t left_size, right_size, center_size;
void new_component(char *name);
+void set_component(char argv[MAX_ARGS][MAX_ARG_LEN], int argc);
void set_layout(char argv[MAX_ARGS][MAX_ARG_LEN], int argc);
-void set_var(char argv[MAX_ARGS][MAX_ARG_LEN], int argc);
+void set_config(char argv[MAX_ARGS][MAX_ARG_LEN], int argc);
#endif
diff --git a/src/pipe.c b/src/pipe.c
index d688179..fec810d 100644
--- a/src/pipe.c
+++ b/src/pipe.c
@@ -71,10 +71,13 @@ void make_change(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) {
new_component(argv[1]);
return;
}
+ if (strcmp(cmd, "set") == 0) {
+ set_component(argv, argc);
+ }
if (strcmp(cmd, "layout") == 0) {
set_layout(argv, argc);
}
- if (strcmp(cmd, "set") == 0) {
- set_var(argv, argc);
+ if (strcmp(cmd, "config") == 0) {
+ set_config(argv, argc);
}
}
diff --git a/src/tsar.c b/src/tsar.c
index a4a0025..1570b92 100644
--- a/src/tsar.c
+++ b/src/tsar.c
@@ -126,7 +126,13 @@ int main(void) {
XResizeWindow(display, win, width, bar_height);
- draw_text("Hello, world!", 0, 0);
+
+ int x = 0;
+ for (int i = 0; i < left_size; i++) {
+ comp_t* comp = comps_left[i];
+ draw_text(comp->data, x, 0);
+ x += font->max_advance_width * strlen(comp->data);
+ }
XFlush(display);
await_change();
diff --git a/tsarc b/tsarc
index f053d07..3a61553 100755
--- a/tsarc
+++ b/tsarc
@@ -1,3 +1,2 @@
#! /bin/sh
printf "%s\201" "$@" > /tmp/tsarc.pipe
-