mirror of
https://github.com/swaywm/sway.git
synced 2026-04-21 06:46:22 -04:00
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:
parent
bfa20e65d8
commit
bdb402404c
14 changed files with 339 additions and 9 deletions
|
|
@ -56,6 +56,12 @@ static void free_mode(struct sway_mode *mode) {
|
|||
}
|
||||
list_free(mode->mouse_bindings);
|
||||
}
|
||||
if (mode->switch_bindings) {
|
||||
for (int i = 0; i < mode->switch_bindings->length; i++) {
|
||||
free_switch_binding(mode->switch_bindings->items[i]);
|
||||
}
|
||||
list_free(mode->switch_bindings);
|
||||
}
|
||||
free(mode);
|
||||
}
|
||||
|
||||
|
|
@ -195,6 +201,7 @@ static void config_defaults(struct sway_config *config) {
|
|||
if (!(config->current_mode->keysym_bindings = create_list())) goto cleanup;
|
||||
if (!(config->current_mode->keycode_bindings = create_list())) goto cleanup;
|
||||
if (!(config->current_mode->mouse_bindings = create_list())) goto cleanup;
|
||||
if (!(config->current_mode->switch_bindings = create_list())) goto cleanup;
|
||||
list_add(config->modes, config->current_mode);
|
||||
|
||||
config->floating_mod = 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue