From 6afb392823d27ec69bedc8fd74263c3d072cca29 Mon Sep 17 00:00:00 2001 From: Brian Ashworth Date: Thu, 30 May 2019 03:30:08 -0400 Subject: bindings: allow unlocked and locked bindings This changes the behavior of bindings to make the `BINDING_LOCKED` flag conflicting, which will allow for both unlocked and locked bindings. If there are two matching bindings and one has `--locked` and the other does not, the one with `--locked` will be preferred when locked and the one without will be preferred when unlocked. If there are two matching bindings and one has both a matching `--input-device=` and `--locked` and the other has neither, the former will be preferred for both unlocked and locked. This also refactors `get_active_binding` in `sway/input/keyboard.c` to make it easier to read. --- sway/sway.5.scd | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'sway/sway.5.scd') diff --git a/sway/sway.5.scd b/sway/sway.5.scd index 74963c9d..6d098d94 100644 --- a/sway/sway.5.scd +++ b/sway/sway.5.scd @@ -331,12 +331,17 @@ runtime. Binds _key combo_ to execute the sway command _command_ when pressed. You may use XKB key names here (*xev*(1) is a good tool for discovering these). With the flag _--release_, the command is executed when the key combo is - released. Unless the flag _--locked_ is set, the command will not be run - when a screen locking program is active. If _input-device_ is given, the - binding will only be executed for that input device and will be executed - instead of any binding that is generic to all devices. By default, if you - overwrite a binding, swaynag will give you a warning. To silence this, use - the _--no-warn_ flag. + released. If _input-device_ is given, the binding will only be executed for + that input device and will be executed instead of any binding that is + generic to all devices. By default, if you overwrite a binding, swaynag + will give you a warning. To silence this, use the _--no-warn_ flag. + + Unless the flag _--locked_ is set, the command will not be run when a + screen locking program is active. If there is a matching binding with + and without _--locked_, the one with will be preferred when locked and the + one without will be preferred when unlocked. If there are matching bindings + and one has both _--input-device_ and _--locked_ and the other has neither, + the former will be preferred even when unlocked. Bindings to keysyms are layout-dependent. This can be changed with the _--to-code_ flag. In this case, the keysyms will be translated into the @@ -380,10 +385,13 @@ runtime. respectively. _toggle_ is also supported to run a command both when the switch is toggled on or off. - Unless the flag _--locked_ is set, the command will not be run - when a screen locking program is active. By default, if you - overwrite a binding, swaynag will give you a warning. To silence this, use - the _--no-warn_ flag. + Unless the flag _--locked_ is set, the command will not be run when a + screen locking program is active. If there is a matching binding with + and without _--locked_, the one with will be preferred when locked and the + one without will be preferred when unlocked. + + By default, if you overwrite a binding, swaynag will give you a warning. To + silence this, use the _--no-warn_ flag. Example: ``` -- cgit v1.2.3-54-g00ecf