aboutsummaryrefslogtreecommitdiff
path: root/sway
diff options
context:
space:
mode:
Diffstat (limited to 'sway')
-rw-r--r--sway/commands/mode.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/sway/commands/mode.c b/sway/commands/mode.c
index ef2c5d79..e5ddec4a 100644
--- a/sway/commands/mode.c
+++ b/sway/commands/mode.c
@@ -15,6 +15,9 @@ static struct cmd_handler mode_handlers[] = {
{ "bindswitch", cmd_bindswitch },
{ "bindsym", cmd_bindsym },
{ "set", cmd_set },
+ { "unbindcode", cmd_unbindcode },
+ { "unbindswitch", cmd_unbindswitch },
+ { "unbindsym", cmd_unbindsym },
};
struct cmd_results *cmd_mode(int argc, char **argv) {
@@ -23,10 +26,6 @@ struct cmd_results *cmd_mode(int argc, char **argv) {
return error;
}
- if (argc > 1 && !config->reading) {
- return cmd_results_new(CMD_FAILURE, "Can only be used in config file");
- }
-
bool pango = strcmp(*argv, "--pango_markup") == 0;
if (pango) {
argc--; argv++;
@@ -35,6 +34,10 @@ struct cmd_results *cmd_mode(int argc, char **argv) {
}
}
+ if (config->reading && argc == 1) {
+ return cmd_results_new(CMD_DEFER, NULL);
+ }
+
char *mode_name = *argv;
strip_quotes(mode_name);
struct sway_mode *mode = NULL;
@@ -64,14 +67,12 @@ struct cmd_results *cmd_mode(int argc, char **argv) {
error = cmd_results_new(CMD_INVALID, "Unknown mode `%s'", mode_name);
return error;
}
- if ((config->reading && argc > 1) || (!config->reading && argc == 1)) {
- sway_log(SWAY_DEBUG, "Switching to mode `%s' (pango=%d)",
- mode->name, mode->pango);
- }
// Set current mode
config->current_mode = mode;
if (argc == 1) {
// trigger IPC mode event
+ sway_log(SWAY_DEBUG, "Switching to mode `%s' (pango=%d)",
+ mode->name, mode->pango);
ipc_event_mode(config->current_mode->name,
config->current_mode->pango);
return cmd_results_new(CMD_SUCCESS, NULL);