- if (name == NULL || value == NULL)
- return;
-
- if (strcmp(name, "inner_border_width") == 0) {
- sscanf(value, "%u", &inner_border_width);
- border_width = inner_border_width + main_border_width + outer_border_width;
- } else if (strcmp(name, "main_border_width") == 0) {
- sscanf(value, "%u", &main_border_width);
- border_width = inner_border_width + main_border_width + outer_border_width;
- } else if (strcmp(name, "outer_border_width") == 0) {
- sscanf(value, "%u", &outer_border_width);
- border_width = inner_border_width + main_border_width + outer_border_width;
- } else if (strcmp(name, "window_gap") == 0) {
- sscanf(value, "%i", &window_gap);
- } else if (strcmp(name, "left_padding") == 0) {
- sscanf(value, "%i", &mon->left_padding);
- } else if (strcmp(name, "right_padding") == 0) {
- sscanf(value, "%i", &mon->right_padding);
- } else if (strcmp(name, "top_padding") == 0) {
- sscanf(value, "%i", &mon->top_padding);
- } else if (strcmp(name, "bottom_padding") == 0) {
- sscanf(value, "%i", &mon->bottom_padding);
- } else if (strcmp(name, "focused_border_color") == 0) {
- strncpy(focused_border_color, value, sizeof(focused_border_color));
- focused_border_color_pxl = get_color(focused_border_color);
- } else if (strcmp(name, "active_border_color") == 0) {
- strncpy(active_border_color, value, sizeof(active_border_color));
- active_border_color_pxl = get_color(active_border_color);
- } else if (strcmp(name, "normal_border_color") == 0) {
- strncpy(normal_border_color, value, sizeof(normal_border_color));
- normal_border_color_pxl = get_color(normal_border_color);
- } else if (strcmp(name, "inner_border_color") == 0) {
- strncpy(inner_border_color, value, sizeof(inner_border_color));
- inner_border_color_pxl = get_color(inner_border_color);
- } else if (strcmp(name, "outer_border_color") == 0) {
- strncpy(outer_border_color, value, sizeof(outer_border_color));
- outer_border_color_pxl = get_color(outer_border_color);
- } else if (strcmp(name, "presel_border_color") == 0) {
- strncpy(presel_border_color, value, sizeof(presel_border_color));
- presel_border_color_pxl = get_color(presel_border_color);
- } else if (strcmp(name, "focused_locked_border_color") == 0) {
- strncpy(focused_locked_border_color, value, sizeof(focused_locked_border_color));
- focused_locked_border_color_pxl = get_color(focused_locked_border_color);
- } else if (strcmp(name, "active_locked_border_color") == 0) {
- strncpy(active_locked_border_color, value, sizeof(active_locked_border_color));
- active_locked_border_color_pxl = get_color(active_locked_border_color);
- } else if (strcmp(name, "normal_locked_border_color") == 0) {
- strncpy(normal_locked_border_color, value, sizeof(normal_locked_border_color));
- normal_locked_border_color_pxl = get_color(normal_locked_border_color);
- } else if (strcmp(name, "urgent_border_color") == 0) {
- strncpy(urgent_border_color, value, sizeof(urgent_border_color));
- urgent_border_color_pxl = get_color(urgent_border_color);
- } else if (strcmp(name, "borderless_monocle") == 0) {
- bool b;
- if (parse_bool(value, &b))
- borderless_monocle = b;
- } else if (strcmp(name, "gapless_monocle") == 0) {
- bool b;
- if (parse_bool(value, &b))
- gapless_monocle = b;
- } else if (strcmp(name, "focus_follows_mouse") == 0) {
- bool b;
- if (parse_bool(value, &b))
- focus_follows_mouse = b;
- } else if (strcmp(name, "adaptative_raise") == 0) {
- bool b;
- if (parse_bool(value, &b))
- adaptative_raise = b;
- } else if (strcmp(name, "status_stdout") == 0) {
+ if (streq("window", *args)) {
+ return cmd_window(++args, --num);
+ } else if (streq("desktop", *args)) {
+ return cmd_desktop(++args, --num);
+ } else if (streq("monitor", *args)) {
+ return cmd_monitor(++args, --num);
+ } else if (streq("query", *args)) {
+ return cmd_query(++args, --num, rsp);
+ } else if (streq("restore", *args)) {
+ return cmd_restore(++args, --num);
+ } else if (streq("control", *args)) {
+ return cmd_control(++args, --num);
+ } else if (streq("rule", *args)) {
+ return cmd_rule(++args, --num, rsp);
+ } else if (streq("pointer", *args)) {
+ return cmd_pointer(++args, --num);
+ } else if (streq("config", *args)) {
+ return cmd_config(++args, --num, rsp);
+ } else if (streq("quit", *args)) {
+ return cmd_quit(++args, --num);
+ }
+
+ return false;
+}
+
+bool set_setting(char *name, char *value)
+{
+ if (streq("border_width", name)) {
+ if (sscanf(value, "%u", &border_width) != 1)
+ return false;
+ } else if (streq("window_gap", name)) {
+ if (sscanf(value, "%i", &window_gap) != 1)
+ return false;
+ } else if (streq("split_ratio", name)) {
+ if (sscanf(value, "%lf", &split_ratio) != 1)
+ return false;
+ } else if (streq("left_padding", name)) {
+ if (sscanf(value, "%i", &mon->left_padding) != 1)
+ return false;
+ } else if (streq("right_padding", name)) {
+ if (sscanf(value, "%i", &mon->right_padding) != 1)
+ return false;
+ } else if (streq("top_padding", name)) {
+ if (sscanf(value, "%i", &mon->top_padding) != 1)
+ return false;
+ } else if (streq("bottom_padding", name)) {
+ if (sscanf(value, "%i", &mon->bottom_padding) != 1)
+ return false;
+#define SETCOLOR(s) \
+ } else if (streq(#s, name)) { \
+ if (get_color(value, &s ## _pxl)) \
+ strncpy(s, value, sizeof(s)); \
+ else \
+ return false;
+ SETCOLOR(focused_border_color)
+ SETCOLOR(active_border_color)
+ SETCOLOR(normal_border_color)
+ SETCOLOR(presel_border_color)
+ SETCOLOR(focused_locked_border_color)
+ SETCOLOR(active_locked_border_color)
+ SETCOLOR(normal_locked_border_color)
+ SETCOLOR(urgent_border_color)
+#undef SETCOLOR
+ } else if (streq("focus_follows_pointer", name)) {