};
void
-action_arg_add_str(struct action *action, char *key, const char *value)
+action_arg_add_str(struct action *action, const char *key, const char *value)
{
+ assert(action);
+ assert(key);
assert(value && "Tried to add NULL action string argument");
struct action_arg_str *arg = znew(*arg);
arg->base.type = LAB_ACTION_ARG_STR;
- if (key) {
- arg->base.key = xstrdup(key);
- }
+ arg->base.key = xstrdup(key);
arg->value = xstrdup(value);
wl_list_append(&action->args, &arg->base.link);
}
static void
-action_arg_add_bool(struct action *action, char *key, bool value)
+action_arg_add_bool(struct action *action, const char *key, bool value)
{
+ assert(action);
+ assert(key);
struct action_arg_bool *arg = znew(*arg);
arg->base.type = LAB_ACTION_ARG_BOOL;
- if (key) {
- arg->base.key = xstrdup(key);
- }
+ arg->base.key = xstrdup(key);
arg->value = value;
wl_list_append(&action->args, &arg->base.link);
}
static void
-action_arg_add_int(struct action *action, char *key, int value)
+action_arg_add_int(struct action *action, const char *key, int value)
{
+ assert(action);
+ assert(key);
struct action_arg_int *arg = znew(*arg);
arg->base.type = LAB_ACTION_ARG_INT;
- if (key) {
- arg->base.key = xstrdup(key);
- }
+ arg->base.key = xstrdup(key);
arg->value = value;
wl_list_append(&action->args, &arg->base.link);
}
static const char *
get_arg_value_str(struct action *action, const char *key, const char *default_value)
{
+ assert(action);
assert(key);
struct action_arg *arg;
wl_list_for_each(arg, &action->args, link) {
- if (!arg->key) {
- continue;
- }
if (!strcasecmp(key, arg->key)) {
return action_str_from_arg(arg);
}
static bool
get_arg_value_bool(struct action *action, const char *key, bool default_value)
{
+ assert(action);
assert(key);
struct action_arg *arg;
wl_list_for_each(arg, &action->args, link) {
- if (!arg->key) {
- continue;
- }
if (!strcasecmp(key, arg->key)) {
assert(arg->type == LAB_ACTION_ARG_BOOL);
return ((struct action_arg_bool *)arg)->value;
static int
get_arg_value_int(struct action *action, const char *key, int default_value)
{
+ assert(action);
assert(key);
struct action_arg *arg;
wl_list_for_each(arg, &action->args, link) {
- if (!arg->key) {
- continue;
- }
if (!strcasecmp(key, arg->key)) {
assert(arg->type == LAB_ACTION_ARG_INT);
return ((struct action_arg_int *)arg)->value;
}
static struct {
- const char *binding, *action, *command;
+ const char *binding, *action, *attribute, *value;
} key_combos[] = {
- { "A-Tab", "NextWindow", NULL },
- { "W-Return", "Execute", "alacritty" },
- { "A-F3", "Execute", "bemenu-run" },
- { "A-F4", "Close", NULL },
- { "W-a", "ToggleMaximize", NULL },
- { "A-Left", "MoveToEdge", "left" },
- { "A-Right", "MoveToEdge", "right" },
- { "A-Up", "MoveToEdge", "up" },
- { "A-Down", "MoveToEdge", "down" },
- { "W-Left", "SnapToEdge", "left" },
- { "W-Right", "SnapToEdge", "right" },
- { "W-Up", "SnapToEdge", "up" },
- { "W-Down", "SnapToEdge", "down" },
- { "A-Space", "ShowMenu", "client-menu"},
- { "XF86_AudioLowerVolume", "Execute", "amixer sset Master 5%-" },
- { "XF86_AudioRaiseVolume", "Execute", "amixer sset Master 5%+" },
- { "XF86_AudioMute", "Execute", "amixer sset Master toggle" },
- { "XF86_MonBrightnessUp", "Execute", "brightnessctl set +10%" },
- { "XF86_MonBrightnessDown", "Execute", "brightnessctl set 10%-" },
- { NULL, NULL, NULL },
+ { "A-Tab", "NextWindow", NULL, NULL },
+ { "W-Return", "Execute", "command", "alacritty" },
+ { "A-F3", "Execute", "command", "bemenu-run" },
+ { "A-F4", "Close", NULL, NULL },
+ { "W-a", "ToggleMaximize", NULL, NULL },
+ { "A-Left", "MoveToEdge", "direction", "left" },
+ { "A-Right", "MoveToEdge", "direction", "right" },
+ { "A-Up", "MoveToEdge", "direction", "up" },
+ { "A-Down", "MoveToEdge", "direction", "down" },
+ { "W-Left", "SnapToEdge", "direction", "left" },
+ { "W-Right", "SnapToEdge", "direction", "right" },
+ { "W-Up", "SnapToEdge", "direction", "up" },
+ { "W-Down", "SnapToEdge", "direction", "down" },
+ { "A-Space", "ShowMenu", "menu", "client-menu"},
+ { "XF86_AudioLowerVolume", "Execute", "command", "amixer sset Master 5%-" },
+ { "XF86_AudioRaiseVolume", "Execute", "command", "amixer sset Master 5%+" },
+ { "XF86_AudioMute", "Execute", "command", "amixer sset Master toggle" },
+ { "XF86_MonBrightnessUp", "Execute", "command", "brightnessctl set +10%" },
+ { "XF86_MonBrightnessDown", "Execute", "command", "brightnessctl set 10%-" },
+ { NULL, NULL, NULL, NULL },
};
static void
action = action_create(key_combos[i].action);
wl_list_append(&k->actions, &action->link);
- if (key_combos[i].command) {
- action_arg_add_str(action, NULL, key_combos[i].command);
+ if (key_combos[i].attribute && key_combos[i].value) {
+ action_arg_add_str(action, key_combos[i].attribute, key_combos[i].value);
}
}
}
* slightly more sophisticated approach will be needed.
*/
if (current->attribute && current->value) {
- action_arg_add_str(action, (char *)current->attribute, current->value);
+ action_arg_add_str(action, current->attribute, current->value);
}
}
wlr_log(WLR_DEBUG, "Loaded %u merged mousebinds", count);