]> git.sur5r.net Git - i3/i3/commitdiff
i3bar: spit out an error on wrong bar id
authorMichael Stapelberg <michael@stapelberg.de>
Fri, 21 Oct 2011 19:04:55 +0000 (20:04 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Fri, 21 Oct 2011 19:04:55 +0000 (20:04 +0100)
i3bar/src/config.c

index caf130293bab80d46b99d1b4d3c0eae0743dfc7d..179bc4642c47d2d23af6e0105b2e71b7d14ac926 100644 (file)
@@ -42,6 +42,22 @@ static int config_map_key_cb(void *params_, const unsigned char *keyVal, unsigne
     return 1;
 }
 
+/*
+ * Parse a null-value (current_workspace)
+ *
+ */
+static int config_null_cb(void *params_) {
+    if (!strcmp(cur_key, "id")) {
+        /* If 'id' is NULL, the bar config was not found. Error out. */
+        ELOG("No such bar config. Use 'i3-msg -t get_bar_config' to get the available configs.\n");
+        ELOG("Are you starting i3bar by hand? You should not:\n");
+        ELOG("Configure a 'bar' block in your i3 config and i3 will launch i3bar automatically.\n");
+        exit(EXIT_FAILURE);
+    }
+
+    return 1;
+}
+
 /*
  * Parse a string
  *
@@ -143,7 +159,7 @@ static int config_boolean_cb(void *params_, int val) {
 
 /* A datastructure to pass all these callbacks to yajl */
 static yajl_callbacks outputs_callbacks = {
-    NULL,
+    &config_null_cb,
     &config_boolean_cb,
     NULL,
     NULL,