This is my fork of sxiv's lisgd.
https://git.sr.ht/~mil/lisgd
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
3.2 KiB
65 lines
3.2 KiB
# lisgd |
|
|
|
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 |
|
n fingers. |
|
|
|
Unlike other libinput gesture daemons, lisgd uses touch events to |
|
recognize **synthetic swipe gestures** rather than using the *libinput*'s |
|
gesture events. The advantage of this is that the synthetic gestures |
|
you define via lisgd can be used on touchscreens, which normal libinput |
|
gestures don't support. |
|
|
|
This program was built for use on the [Pinephone](https://www.pine64.org/pinephone/); |
|
however it could be used in general for any device that supports touch events, |
|
like laptop touchscreens or similar. You may want to adjust the threshold |
|
depending on the device you're using. |
|
|
|
## Configuration |
|
Configuration can be done in two ways: |
|
|
|
1. Through a suckless style `config.h`; see the `config.def.h` |
|
2. Through commandline flags which override the default config.h values |
|
|
|
### Suckless-style config.h based configuration |
|
Copy the example `config.def.h` configuration to `config.h`. |
|
|
|
### Commandline flags based configuration |
|
Flags: |
|
|
|
- **-d [devicenodepath]**: Defines the dev filesystem device to monitor |
|
- Example: `lisgd -d /dev/input/input1` |
|
- **-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,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 |
|
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 |
|
between 165-195 degrees. |
|
- Example: `lisgd -r 20` |
|
- **-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 |
|
- Example: `lisgd -v` |
|
|
|
--- |
|
|
|
All changes below this line have come from Jonathan |
|
|
|
## Usage |
|
|
|
I spent an embarrassingly long amount of time trying to work out why this wasn't |
|
working. Be sure that your user is in the `input` group before running it.
|
|
|