implementing support for gestures with edge and corner detection

Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
This commit is contained in:
Maarten van Gompel 2020-08-09 16:23:45 +02:00
parent ee47ac2a5b
commit 827d4c8f2c
5 changed files with 233 additions and 54 deletions

View file

@ -4,7 +4,7 @@ Lisgd (libinput **synthetic** gesture daemon) lets you bind gestures based on
libinput touch events to run specific commands to execute. For example,
dragging left to right with one finger could execute a particular command
like launching a terminal. Directional L-R, R-L, U-D, and D-U gestures and
diagnol LD-RU, RD-LU, UR-DL, UL-DR gestures are supported with 1 through
diagnol LD-RU, RD-LU, UR-DL, UL-DR gestures are supported with 1 through
n fingers.
Unlike other libinput gesture daemons, lisgd uses touch events to
@ -32,25 +32,24 @@ Flags:
- **-d [devicenodepath]**: Defines the dev filesystem device to monitor
- Example: `lisgd -d /dev/input/input1`
- **-g [nfingers,gesture,command]**: Allows you to bind a gesture wherein
nfingers is an integer, gesture is one of {LR,RL,DU,UD,DLUR,URDL,ULDR,DLUR},
and command is the shell command to be executed. The -g option can be used
- **-g [nfingers,gesture,edge,distance,command]**: Allows you to bind a gesture wherein nfingers is an integer, gesture is
one of {LR,RL,DU,UD,DLUR,URDL,ULDR,DLUR}, edge is one of * (any), N (none), L (left), R (right), T (top), B (bottom), TL (top left), TR (top right), BL (bottom left), BR (bottom right) and distance is one of * (any), S (short), M (medium), L (large). command is the shell command to be executed. The -g option can be used
multiple times to bind multiple gestures.
- Single Gesture Example: `lisgd -g "1,LR,notify-send swiped lr"`
- Multiple Gestures Example: `lisgd -g "1,LR,notify-send swiped lr" -g "1,RL,noitfy-send swiped rl"`
- **-m [timeoutms]**: Number of milliseconds gestures must be performed within
- Single Gesture Example: `lisgd -g "1,LR,*,*,notify-send swiped lr"`
- Multiple Gestures Example: `lisgd -g "1,LR,*,*,notify-send swiped lr" -g "1,RL,R,*,noitfy-send swiped rl from right edge"`
- **-m [timeoutms]**: Number of milliseconds gestures must be performed within
to be registered. After the timeoutms value; the gesture won't be registered.
- Example: `lisgd -m 1200`
- **-o [orientation]**: Number of 90-degree rotations to translate gestures by.
Can be set to 0-3. For example using 1; a L-R gesture would become a U-D
- **-o [orientation]**: Number of 90-degree rotations to translate gestures by.
Can be set to 0-3. For example using 1; a L-R gesture would become a U-D
gesture. Meant to be used for screen-rotation.
- Example `lisgd -o 1`
- **-r [degrees]**: Number of degrees offset each 45-degree interval may still
be recognized within. Maximum value is 45. Default value is 15. E.g. U-D
is a 180 degree gesture but with 15 degrees of leniency will be recognized
- **-r [degrees]**: Number of degrees offset each 45-degree interval may still
be recognized within. Maximum value is 45. Default value is 15. E.g. U-D
is a 180 degree gesture but with 15 degrees of leniency will be recognized
between 165-195 degrees.
- Example: `lisgd -r 20`
- **-t [threshold_units]**: Threshold in libinput units (pixels) after which a
- **-t [threshold_units]**: Threshold in libinput units (pixels) after which a
gesture registers. Defaults to 300.
- Example: `lisgd -t 400`
- **-v**: Verbose mode, useful for debugging