diff options
Diffstat (limited to 'sway/commands.c')
-rw-r--r-- | sway/commands.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/sway/commands.c b/sway/commands.c index eb77c172..7605a36b 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -561,7 +561,6 @@ static enum cmd_status cmd_orientation(int argc, char **argv) { } static enum cmd_status cmd_output(int argc, char **argv) { - if (!config->reading) return CMD_FAILURE; if (!checkarg(argc, "output", EXPECTED_AT_LEAST, 1)) { return CMD_FAILURE; } @@ -619,9 +618,23 @@ static enum cmd_status cmd_output(int argc, char **argv) { list_add(config->output_configs, output); - sway_log(L_DEBUG, "Configured output %s to %d x %d @ %d, %d", + sway_log(L_DEBUG, "Config stored for output %s (%d x %d @ %d, %d)", output->name, output->width, output->height, output->x, output->y); + if (output->name) { + // Try to find the output container and apply configuration now. If + // this is during startup then there will be no container and config + // will be applied during normal "new output" event from wlc. + swayc_t *cont = NULL; + for (int i = 0; i < root_container.children->length; ++i) { + cont = root_container.children->items[i]; + if (cont->name && strcmp(cont->name, output->name) == 0) { + apply_output_config(output, cont); + break; + } + } + } + return CMD_SUCCESS; } |