aboutsummaryrefslogtreecommitdiff
path: root/sway/commands.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/commands.c')
-rw-r--r--sway/commands.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/sway/commands.c b/sway/commands.c
index 4e5bc712..6a316596 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -163,9 +163,25 @@ static struct cmd_results *cmd_bindsym(int argc, char **argv) {
return cmd_results_new(CMD_FAILURE, "bindsym", "Can only be used in config file.");
}
+
struct sway_binding *binding = malloc(sizeof(struct sway_binding));
binding->keys = create_list();
binding->modifiers = 0;
+ binding->release = false;
+
+ // Handle --release
+ if (strcmp("--release", argv[0]) == 0) {
+ if (argc >= 3) {
+ binding->release = true;
+ argv++;
+ argc--;
+ } else {
+ return cmd_results_new(CMD_FAILURE, "bindsym",
+ "Invalid bindsym command"
+ "(expected more than 2 arguments, got %d)", argc);
+ }
+ }
+
binding->command = join_args(argv + 1, argc - 1);
list_t *split = split_string(argv[0], "+");