Support WLR_INPUT_DEVICE_SWITCH in sway

This commit adds support for laptop lid and tablet
mode switches as provided by evdev/libinput and
handled by wlroots.

Adds a new bindswitch command with syntax:
bindswitch <switch>:<state> <command>

Where <switch> is one of:
tablet for WLR_SWITCH_TYPE_TABLET_MODE
lid for WLR_SWITCH_TYPE_LID

<state> is one of:
on for WLR_SWITCH_STATE_ON
off for WLR_SWITCH_STATE_OFF
toggle for WLR_SWITCH_STATE_TOGGLE

(Note that WLR_SWITCH_STATE_TOGGLE doesn't map to
libinput and will trigger at both on and off events)
This commit is contained in:
Ryan Walklin 2019-03-20 14:47:29 +11:00 committed by Brian Ashworth
parent bfa20e65d8
commit bdb402404c
14 changed files with 339 additions and 9 deletions

View file

@ -12,6 +12,7 @@
// Must be in order for the bsearch
static struct cmd_handler mode_handlers[] = {
{ "bindcode", cmd_bindcode },
{ "bindswitch", cmd_bindswitch },
{ "bindsym", cmd_bindsym }
};
@ -54,6 +55,7 @@ struct cmd_results *cmd_mode(int argc, char **argv) {
mode->keysym_bindings = create_list();
mode->keycode_bindings = create_list();
mode->mouse_bindings = create_list();
mode->switch_bindings = create_list();
mode->pango = pango;
list_add(config->modes, mode);
}