mqudsi / syngesture Goto Github PK
View Code? Open in Web Editor NEWSwipes and gestures for Linux with the MT multitouch protocol
License: Other
Swipes and gestures for Linux with the MT multitouch protocol
License: Other
When I start syngestures I only get the evtest: No such file or directory message
libinput-gestures
, touchegg
, fusuma
with libinput
drivers but none of these worked.syngestures
is not working, even though a process is running in the background.device=path
, this is my configuration file:[[device]]
device = "/dev/input/event25"
<SNIP>
I appreciate what you are doing. I am a non-technical person. After using libinput, I switched back to synaptics driver. And you are the only one working on and publishing software to give gestures support to synaptics. However I am having difficulty figuring out "The value of device should be a stable path to your touchpad". Can you make "Syngesture" recognize automatically 'the value of device". I understand it is too much of an ask, erstwhile hoping you could find a way to do it.
Shantanu
Shouldn't /usr/local
in config.rs
be changed to /etc
?
Filesystem Hierarchy Standard - "Note that /usr/etc is still not allowed: programs in /usr should place configuration files in /etc"
Arch Wiki - "Packages should never be installed to /usr/local/".
I'm finding this is causing unwanted gestures in some cases - e.g. I have two-finger back/forward configured, but I also use two finger scrolling; it frequently triggers a back or forward action when I finish my scroll action. I'm not sure how much of this is syngesture's responsibility vs one of the lower level systems. Any pointers to where I can tweak this behaviour?
Great program by the way!
Trying to use this on a GalliumOS (based on XUbuntu).
When I run:
syngestures
I get:
evtest: No such file or directory
Although, I have evtest installed with apt
which evtest
/usr/bin/evtest
Also noting that evtest runs on my system just fine.
evtest is also accessible from the root user, running syngestures
as root does not help.
Any ideas?
Thanks,
Justin
As part of the initial proof-of-concept, I opted into using evtest
(directly installable at least on Debian/Ubuntu/etc via apt install evtest
) to read the input events coming out of the touchpad's libevdev
device and parse the output.
In the name of reducing dependencies and minimizing friction for adoption, we should switch to directly opening the touchpad /dev/whatever
device node and reading the input events directly rather than spawning an evtest
instance and parsing the results. This would presumably additionally bring down the already virtually nil CPU usage by removing the regex matching that takes place when a gesture is in progress.
Seriously thank you so much. Coming from a sway user this is amazing, and the fact its rusty is the proverbial cherry on top of the best cake ever.
I am wondering if, and how, we could finetune sensitivity and treshold of the gestures?
I am using this lib for the one and only purpose to bring two finger gestures (history back and forward) into gnome.
For some reason all other developers insist it is "impossible" to detect a horizontal two-finger gesture, however your implementation clearly proves otherwise, which is why I use it.
However, it is uncontrollable :D
Can you let me know if it is possible to finetune geseture treshold and sensitivity just for the gestures implemented in the syngestures?
My config is very simple as I need just the two finger swipes, the rest I do in fusuma (and synaptics):
##
# Part of a full "MacOS on Gnome X experience setting"
# Here we control only two finger gestures (navigation back and forward)
# Requires syngestures https://github.com/mqudsi/syngesture/
#
# Other settings and controls done with:
# Fusuma https://github.com/iberianpig/fusuma, xdotool
# libinput-three-finger-gestures https://github.com/marsqing/libinput-three-finger-drag
# synaptics https://wiki.archlinux.org/title/Touchpad_Synaptics
# Kinto https://github.com/rbreaves/kinto
# Xorg
##
[[device]]
device = "/dev/input/by-path/pci-0000:04:00.1-usb-0:5:1.2-event-mouse"# Edit as required
gestures = [
# Navigate next
{ type = "swipe", direction = "right", fingers = 2, execute = "xdotool key alt+Left" },
# Navigate previous
{ type = "swipe", direction = "left", fingers = 2, execute = "xdotool key alt+Right" },
]
It would be daft to have something like treshold
and even acceleration
settings for each of the commands.
Basically responsive to the gestures. How the scrolling works with two fingers and apply that to all gestures.
Hi,
Not an issue, more of a call for support :)
I'm trying to make syngestures work on Ubuntu 20.10 but I'm stuck at the evtest sticky bit part: could you precise what command do I need to run to set it? I thought you could only set it on a file, what would be the path to the evtest executable then?
Thanks a lot for your help!
I'm not a os guru but did you mean SUID bit on evtest
, e.g., chmod u+s
not the sticky bit chmod +t
?
The latter works, the former does not (and sorta makes sense that it doesn't to me).
Also, minor thing since the executed commands appear arbitrary, but xdotool
was an additional dependency requirement for me just testing the out of the box config.
Other than that, this worked really well! Thanks!
Can it work with Apple Magic Mouse 1? I tried to install it on ubuntu 22.10, but got this:
# ./syngestures
thread '<unnamed>' panicked at 'index out of bounds: the len is 5 but the index is 7', /home/andrey/.cargo/registry/src/github.com-1ecc6299db9ec823/syngestures-1.0.1/src/events.rs:304:25
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Any { .. }', /home/andrey/.cargo/registry/src/github.com-1ecc6299db9ec823/syngestures-1.0.1/src/main.rs:154:23
Maybe it was wrong to use /dev/input/event9 as a device, but it's the only thing in /dev/input which corresponds to this mouse.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.