X-Git-Url: https://git.sur5r.net/?p=i3%2Fi3;a=blobdiff_plain;f=src%2Fconfig_directives.c;h=0b01d54a4acaf4ffa4a1fa0a6b3ff26ccf1109fc;hp=491c840afbf71db3b52518f7a5b2eb1962e7c272;hb=HEAD;hpb=a5014dc7f84fb820929b36264d058491ecbace93 diff --git a/src/config_directives.c b/src/config_directives.c index 491c840a..0b01d54a 100644 --- a/src/config_directives.c +++ b/src/config_directives.c @@ -318,12 +318,24 @@ CFGFUN(focus_on_window_activation, const char *mode) { DLOG("Set new focus_on_window_activation mode = %i.\n", config.focus_on_window_activation); } +CFGFUN(title_align, const char *alignment) { + if (strcmp(alignment, "left") == 0) { + config.title_align = ALIGN_LEFT; + } else if (strcmp(alignment, "center") == 0) { + config.title_align = ALIGN_CENTER; + } else if (strcmp(alignment, "right") == 0) { + config.title_align = ALIGN_RIGHT; + } else { + assert(false); + } +} + CFGFUN(show_marks, const char *value) { config.show_marks = eval_boolstr(value); } -CFGFUN(workspace, const char *workspace, const char *output) { - DLOG("Assigning workspace \"%s\" to output \"%s\"\n", workspace, output); +CFGFUN(workspace, const char *workspace, const char *outputs) { + DLOG("Assigning workspace \"%s\" to outputs \"%s\"\n", workspace, outputs); /* Check for earlier assignments of the same workspace so that we * don’t have assignments of a single workspace to different * outputs */ @@ -336,10 +348,16 @@ CFGFUN(workspace, const char *workspace, const char *output) { } } - assignment = scalloc(1, sizeof(struct Workspace_Assignment)); - assignment->name = sstrdup(workspace); - assignment->output = sstrdup(output); - TAILQ_INSERT_TAIL(&ws_assignments, assignment, ws_assignments); + char *buf = sstrdup(outputs); + char *output = strtok(buf, " "); + while (output != NULL) { + assignment = scalloc(1, sizeof(struct Workspace_Assignment)); + assignment->name = sstrdup(workspace); + assignment->output = sstrdup(output); + TAILQ_INSERT_TAIL(&ws_assignments, assignment, ws_assignments); + output = strtok(NULL, " "); + } + free(buf); } CFGFUN(ipc_socket, const char *path) { @@ -400,6 +418,11 @@ CFGFUN(assign_output, const char *output) { return; } + if (current_match->window_mode != WM_ANY) { + ELOG("Assignments using window mode (floating/tiling) is not supported\n"); + return; + } + DLOG("New assignment, using above criteria, to output \"%s\".\n", output); Assignment *assignment = scalloc(1, sizeof(Assignment)); match_copy(&(assignment->match), current_match); @@ -414,6 +437,11 @@ CFGFUN(assign, const char *workspace, bool is_number) { return; } + if (current_match->window_mode != WM_ANY) { + ELOG("Assignments using window mode (floating/tiling) is not supported\n"); + return; + } + if (is_number && ws_name_to_number(workspace) == -1) { ELOG("Could not parse initial part of \"%s\" as a number.\n", workspace); return; @@ -440,6 +468,10 @@ CFGFUN(no_focus) { TAILQ_INSERT_TAIL(&assignments, assignment, assignments); } +CFGFUN(ipc_kill_timeout, const long timeout_ms) { + ipc_set_kill_timeout(timeout_ms / 1000.0); +} + /******************************************************************************* * Bar configuration (i3bar) ******************************************************************************/ @@ -479,25 +511,8 @@ CFGFUN(bar_verbose, const char *verbose) { current_bar->verbose = eval_boolstr(verbose); } -CFGFUN(bar_modifier, const char *modifier) { - if (strcmp(modifier, "Mod1") == 0) - current_bar->modifier = M_MOD1; - else if (strcmp(modifier, "Mod2") == 0) - current_bar->modifier = M_MOD2; - else if (strcmp(modifier, "Mod3") == 0) - current_bar->modifier = M_MOD3; - else if (strcmp(modifier, "Mod4") == 0) - current_bar->modifier = M_MOD4; - else if (strcmp(modifier, "Mod5") == 0) - current_bar->modifier = M_MOD5; - else if (strcmp(modifier, "Control") == 0 || - strcmp(modifier, "Ctrl") == 0) - current_bar->modifier = M_CONTROL; - else if (strcmp(modifier, "Shift") == 0) - current_bar->modifier = M_SHIFT; - else if (strcmp(modifier, "none") == 0 || - strcmp(modifier, "off") == 0) - current_bar->modifier = M_NONE; +CFGFUN(bar_modifier, const char *modifiers) { + current_bar->modifier = modifiers ? event_state_from_str(modifiers) : XCB_NONE; } static void bar_configure_binding(const char *button, const char *release, const char *command) { @@ -633,7 +648,7 @@ CFGFUN(bar_start) { TAILQ_INIT(&(current_bar->bar_bindings)); TAILQ_INIT(&(current_bar->tray_outputs)); current_bar->tray_padding = 2; - current_bar->modifier = M_MOD4; + current_bar->modifier = XCB_KEY_BUT_MASK_MOD_4; } CFGFUN(bar_finish) {