summaryrefslogtreecommitdiff
path: root/sway/commands.c
diff options
context:
space:
mode:
authorLuminarys <[email protected]>2015-08-30 19:59:14 -0500
committerLuminarys <[email protected]>2015-08-30 19:59:14 -0500
commitfe2ec8a676ddabc52e0a2ac360fd8e07e6546f6b (patch)
treeea1834e610deaa13b3a54eb1b22d0c946205fe2f /sway/commands.c
parent7fbb8b785e229341171470228fea22caac3ee896 (diff)
Added in workspace back_and_forth
Diffstat (limited to 'sway/commands.c')
-rw-r--r--sway/commands.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/sway/commands.c b/sway/commands.c
index 9a90fe5f..caf8d928 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -800,26 +800,37 @@ static bool cmd_workspace(struct sway_config *config, int argc, char **argv) {
if (argc == 1) {
// Handle workspace next/prev
- if (strcmp(argv[0], "next") == 0) {
+ if (strcasecmp(argv[0], "next") == 0) {
workspace_switch(workspace_next());
return true;
}
- if (strcmp(argv[0], "prev") == 0) {
+ if (strcasecmp(argv[0], "prev") == 0) {
workspace_switch(workspace_prev());
return true;
}
// Handle workspace output_next/prev
- if (strcmp(argv[0], "next_on_output") == 0) {
+ if (strcasecmp(argv[0], "next_on_output") == 0) {
workspace_switch(workspace_output_next());
return true;
}
- if (strcmp(argv[0], "prev_on_output") == 0) {
+ if (strcasecmp(argv[0], "prev_on_output") == 0) {
workspace_switch(workspace_output_prev());
return true;
}
+ if (strcasecmp(argv[0], "back_and_forth") == 0) {
+ if (prev_workspace_name) {
+ sway_log(L_INFO, "Trying to switch to WS wtih name %s", prev_workspace_name);
+ if (workspace_by_name(prev_workspace_name)) {
+ workspace_switch(workspace_by_name(prev_workspace_name));
+ } else {
+ workspace_switch(workspace_create(prev_workspace_name));
+ }
+ }
+ return true;
+ }
swayc_t *workspace = workspace_by_name(argv[0]);
if (!workspace) {