diff options
author | Brian Ashworth <[email protected]> | 2018-06-04 22:24:34 -0400 |
---|---|---|
committer | Brian Ashworth <[email protected]> | 2018-06-05 10:08:00 -0400 |
commit | 067fe9d0472ca24328a962e8704d4e843f2a8af1 (patch) | |
tree | 2ea56856183e855ca2681834d21516b2c2351341 /sway/commands.c | |
parent | 0f715470328cbb5be77f95c7e209ce6bace2ef19 (diff) |
Support runtime var expansion and set at runtime
Diffstat (limited to 'sway/commands.c')
-rw-r--r-- | sway/commands.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sway/commands.c b/sway/commands.c index 3a86ae53..464c9932 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -112,6 +112,7 @@ static struct cmd_handler handlers[] = { { "mouse_warping", cmd_mouse_warping }, { "output", cmd_output }, { "seat", cmd_seat }, + { "set", cmd_set }, { "show_marks", cmd_show_marks }, { "workspace", cmd_workspace }, { "workspace_auto_back_and_forth", cmd_ws_auto_back_and_forth }, @@ -120,7 +121,6 @@ static struct cmd_handler handlers[] = { /* Config-time only commands. Keep alphabetized */ static struct cmd_handler config_handlers[] = { { "default_orientation", cmd_default_orientation }, - { "set", cmd_set }, { "swaybg_command", cmd_swaybg_command }, { "workspace_layout", cmd_workspace_layout }, }; @@ -270,6 +270,13 @@ struct cmd_results *execute_command(char *_exec, struct sway_seat *seat) { goto cleanup; } + // Var replacement, for all but first argument of set + for (int i = handler->handle == cmd_set ? 2 : 1; i < argc; ++i) { + argv[i] = do_var_replacement(argv[i]); + unescape_string(argv[i]); + strip_quotes(argv[i]); + } + if (!config->handler_context.using_criteria) { // without criteria, the command acts upon the focused // container |