mirror of
https://github.com/swaywm/sway.git
synced 2024-11-26 09:51:29 +00:00
Implement default name for workspace command
This implements commands such as: workspace number 9: test If a workspace with the given number exists then it will be focused, otherwise a new workspace with the given name will be created.
This commit is contained in:
parent
d98c26d0ed
commit
64d463142f
|
@ -5,21 +5,23 @@
|
||||||
#include "sway/workspace.h"
|
#include "sway/workspace.h"
|
||||||
#include "list.h"
|
#include "list.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
#include "stringop.h"
|
||||||
|
|
||||||
struct cmd_results *cmd_workspace(int argc, char **argv) {
|
struct cmd_results *cmd_workspace(int argc, char **argv) {
|
||||||
struct cmd_results *error = NULL;
|
struct cmd_results *error = NULL;
|
||||||
if ((error = checkarg(argc, "workspace", EXPECTED_AT_LEAST, 1))) {
|
if ((error = checkarg(argc, "workspace", EXPECTED_AT_LEAST, 1))) {
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
if (argc == 1 || (argc == 2 && strcasecmp(argv[0], "number") == 0) ) {
|
if (argc == 1 || (argc >= 2 && strcasecmp(argv[0], "number") == 0) ) {
|
||||||
if (config->reading || !config->active) {
|
if (config->reading || !config->active) {
|
||||||
return cmd_results_new(CMD_DEFER, "workspace", NULL);
|
return cmd_results_new(CMD_DEFER, "workspace", NULL);
|
||||||
}
|
}
|
||||||
// Handle workspace next/prev
|
|
||||||
swayc_t *ws = NULL;
|
swayc_t *ws = NULL;
|
||||||
if (argc == 2) {
|
if (argc >= 2) {
|
||||||
if (!(ws = workspace_by_number(argv[1]))) {
|
if (!(ws = workspace_by_number(argv[1]))) {
|
||||||
ws = workspace_create(argv[1]);
|
char *name = join_args(argv + 1, argc - 1);
|
||||||
|
ws = workspace_create(name);
|
||||||
|
free(name);
|
||||||
}
|
}
|
||||||
} else if (strcasecmp(argv[0], "next") == 0) {
|
} else if (strcasecmp(argv[0], "next") == 0) {
|
||||||
ws = workspace_next();
|
ws = workspace_next();
|
||||||
|
|
Loading…
Reference in a new issue