diff --git a/sway/commands/backend.c b/sway/commands/backend.c index 900315f70..fed2515fc 100644 --- a/sway/commands/backend.c +++ b/sway/commands/backend.c @@ -21,6 +21,11 @@ static struct cmd_results *backend_cmd_add(int argc, char **argv) { return error; } + const char *name = NULL; + if (argc > 1) { + name = argv[1]; + } + const char *type_name = argv[0]; enum sway_backend_type type; if (strcasecmp(type_name, "wayland") == 0) { @@ -39,7 +44,7 @@ static struct cmd_results *backend_cmd_add(int argc, char **argv) { } struct sway_backend *backend = - sway_backend_create(type, NULL); + sway_backend_create(type, name); sway_server_add_backend(&server, backend); return cmd_results_new(CMD_SUCCESS, NULL, NULL); @@ -47,7 +52,6 @@ static struct cmd_results *backend_cmd_add(int argc, char **argv) { static struct cmd_results *backend_cmd_add_output(int argc, char **argv, struct sway_backend *backend) { - // TODO allow to name the output char *name = NULL; if (argc > 0) { name = argv[0]; @@ -90,8 +94,8 @@ struct cmd_results *cmd_backend(int argc, char **argv) { return error; } - int argc_new = argc-2; - char **argv_new = argv+2; + int argc_new = argc-1; + char **argv_new = argv+1; if (strcasecmp("add", argv[0]) == 0) { return backend_cmd_add(argc_new, argv_new); @@ -107,6 +111,9 @@ struct cmd_results *cmd_backend(int argc, char **argv) { "Cannot find backend: %s", argv[0]); } + --argc_new; + ++argv_new; + if (strcasecmp("add-output", argv[1]) == 0) { return backend_cmd_add_output(argc_new, argv_new, backend); } else if (strcasecmp("del-output", argv[1]) == 0) { diff --git a/sway/server.c b/sway/server.c index aaf118f6d..5fff0c9d4 100644 --- a/sway/server.c +++ b/sway/server.c @@ -146,6 +146,8 @@ struct sway_backend *sway_server_get_backend(struct sway_server *server, return NULL; } +static int backend_count = 0; + struct sway_backend *sway_backend_create(enum sway_backend_type type, const char *name) { struct sway_backend *backend = @@ -159,6 +161,9 @@ struct sway_backend *sway_backend_create(enum sway_backend_type type, // TODO: figure out what to call the backend based on what the backend // type is and how many other backends are configured of that type // (-). + char new_name[256]; + snprintf(new_name, sizeof(new_name), "backend-%d", ++backend_count); + backend->name = strdup(new_name); } else { backend->name = strdup(name); } @@ -232,7 +237,7 @@ void sway_server_add_backend(struct sway_server *server, break; } - if (backend == NULL) { + if (wlr_backend == NULL) { wlr_log(L_ERROR, "could not create backend '%s'", backend->name); sway_backend_destroy(backend); return;