} else if (strcmp(cmd, "toggle_locked") == 0) {
if (mon->desk->focus != NULL)
toggle_locked(mon->desk->focus->client);
+ } else if (strcmp(cmd, "toggle_visibility") == 0) {
+ toggle_visibility();
} else if (strcmp(cmd, "pad") == 0) {
char *name = strtok(NULL, TOK_SEP);
if (name != NULL) {
if (parse_direction(dir, &d)) {
split_mode = MODE_MANUAL;
split_dir = d;
+ char *rat = strtok(NULL, TOK_SEP);
+ if (rat != NULL)
+ sscanf(rat, "%lf", &mon->desk->focus->split_ratio);
window_draw_border(mon->desk->focus, true, true);
}
}
if (m != NULL && m != mon) {
transfer_node(mon, mon->desk, m, m->desk, mon->desk->focus);
arrange(m, m->desk);
+ char *arg = strtok(NULL, TOK_SEP);
+ send_option_t opt;
+ if (parse_send_option(arg, &opt) && opt == SEND_OPTION_FOLLOW)
+ select_monitor(m);
}
}
} else if (strcmp(cmd, "send_to") == 0) {
transfer_node(mon, mon->desk, loc.monitor, loc.desktop, mon->desk->focus);
if (mon != loc.monitor && loc.monitor->desk == loc.desktop)
arrange(loc.monitor, loc.desktop);
+ char *arg = strtok(NULL, TOK_SEP);
+ send_option_t opt;
+ if (parse_send_option(arg, &opt) && opt == SEND_OPTION_FOLLOW) {
+ select_monitor(loc.monitor);
+ select_desktop(loc.desktop);
+ }
}
}
} else if (strcmp(cmd, "rename_monitor") == 0) {
return;
} else if (strcmp(cmd, "adopt_orphans") == 0) {
adopt_orphans();
- } else if (strcmp(cmd, "reload") == 0) {
- load_settings();
- run_autostart();
} else if (strcmp(cmd, "reload_autostart") == 0) {
run_autostart();
} else if (strcmp(cmd, "reload_settings") == 0) {
load_settings();
} else if (strcmp(cmd, "quit") == 0) {
+ char *arg = strtok(NULL, TOK_SEP);
+ if (arg != NULL)
+ sscanf(arg, "%i", &exit_status);
quit();
return;
} else {
bool b;
if (parse_bool(value, &b))
adaptative_raise = b;
- } else if (strcmp(name, "status_stdout") == 0) {
- bool b;
- if (parse_bool(value, &b))
- status_stdout = b;
} else if (strcmp(name, "wm_name") == 0) {
strncpy(wm_name, value, sizeof(wm_name));
ewmh_update_wm_name();
snprintf(rsp, BUFSIZ, "%s", BOOLSTR(focus_follows_mouse));
else if (strcmp(name, "adaptative_raise") == 0)
snprintf(rsp, BUFSIZ, "%s", BOOLSTR(adaptative_raise));
- else if (strcmp(name, "status_stdout") == 0)
- snprintf(rsp, BUFSIZ, "%s", BOOLSTR(status_stdout));
else if (strcmp(name, "wm_name") == 0)
snprintf(rsp, BUFSIZ, "%s", wm_name);
else if (strcmp(name, "button_modifier") == 0)
return false;
}
+bool parse_send_option(char *s, send_option_t *o)
+{
+ if (s == NULL) {
+ *o = SEND_OPTION_DONT_FOLLOW;
+ return true;
+ } else if (strcmp(s, "--follow") == 0) {
+ *o = SEND_OPTION_FOLLOW;
+ return true;
+ }
+ return false;
+}
+
bool parse_rotate(char *s, rotate_t *r)
{
if (strcmp(s, "clockwise") == 0) {