aboutsummaryrefslogtreecommitdiff
path: root/sway/commands.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/commands.c')
-rw-r--r--sway/commands.c60
1 files changed, 36 insertions, 24 deletions
diff --git a/sway/commands.c b/sway/commands.c
index 6e2a79f6..8e6d19ec 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -9,30 +9,6 @@
#include "log.h"
#include "commands.h"
-int cmd_set(struct sway_config *config, int argc, char **argv) {
- if (argc != 2) {
- sway_log(L_ERROR, "Invalid set command (expected 2 arguments, got %d)", argc);
- return 1;
- }
- struct sway_variable *var = malloc(sizeof(struct sway_variable));
- var->name = malloc(strlen(argv[0]) + 1);
- strcpy(var->name, argv[0]);
- var->value = malloc(strlen(argv[1]) + 1);
- strcpy(var->value, argv[1]);
- list_add(config->symbols, var);
- return 0;
-}
-
-int cmd_exit(struct sway_config *config, int argc, char **argv) {
- if (argc != 0) {
- sway_log(L_ERROR, "Invalid exit command (expected 1 arguments, got %d)", argc);
- return 1;
- }
- // TODO: Some kind of clean up is probably in order
- exit(0);
- return 0;
-}
-
struct modifier_key {
char *name;
uint32_t mod;
@@ -94,10 +70,46 @@ int cmd_bindsym(struct sway_config *config, int argc, char **argv) {
return 0;
}
+int cmd_exit(struct sway_config *config, int argc, char **argv) {
+ if (argc != 0) {
+ sway_log(L_ERROR, "Invalid exit command (expected 1 arguments, got %d)", argc);
+ return 1;
+ }
+ // TODO: Some kind of clean up is probably in order
+ exit(0);
+ return 0;
+}
+
+
+int cmd_focus_follows_mouse(struct sway_config *config, int argc, char **argv) {
+ if (argc != 1) {
+ sway_log(L_ERROR, "Invalid focus_follows_mouse command (expected 1 arguments, got %d)", argc);
+ return 1;
+ }
+
+ config->focus_follows_mouse = !strcasecmp(argv[0], "yes");
+ return 0;
+}
+
+int cmd_set(struct sway_config *config, int argc, char **argv) {
+ if (argc != 2) {
+ sway_log(L_ERROR, "Invalid set command (expected 2 arguments, got %d)", argc);
+ return 1;
+ }
+ struct sway_variable *var = malloc(sizeof(struct sway_variable));
+ var->name = malloc(strlen(argv[0]) + 1);
+ strcpy(var->name, argv[0]);
+ var->value = malloc(strlen(argv[1]) + 1);
+ strcpy(var->value, argv[1]);
+ list_add(config->symbols, var);
+ return 0;
+}
+
/* Keep alphabetized */
struct cmd_handler handlers[] = {
{ "bindsym", cmd_bindsym },
{ "exit", cmd_exit },
+ { "focus_follows_mouse", cmd_focus_follows_mouse },
{ "set", cmd_set },
};