Wazzaps / fingerpaint

Draw using your laptop's touchpad
GNU General Public License v2.0
134 stars 7 forks source link

Support for wlroots based compositors #25

Open imhemish opened 1 year ago

imhemish commented 1 year ago

Besides GNOME and KDE, wlroots (wlr) is the only big thing on wayland right now on which a lot of compositors are based (like sway, hyprland, river). If wlroots is supported, all these compositors would get supported. Any plans for the support for wlr?

imhemish commented 1 year ago

The events may be read through `libinput debug-events'

Wazzaps commented 1 year ago

The main reason I only support GNOME (at the moment!) is the ability to disable the touchpad while the app is active using the dconf setting. If such a setting exists for wlroots (or for a specific compositor), I can implement it. As always, PRs welcome :)

(P.S. I read the events straight through /dev/input/..., I believe that's more portable than libinput)

imhemish commented 1 year ago

If such a setting exists for wlroots (or for a specific compositor), I can implement it.

Ways to disable and enable touchpad events are available in specific compositors via just commands (eg swaymsg for sway, hyprctl for hyprland)

As always, PR's are welcome

I skimmed through the code, I would have to read it again to find what is actually happening, but can you confirm that I just need to edit the function which disables and enables touchpad events by adding if statements to recognise compositors?

Wazzaps commented 1 year ago

Yea sorry for the mess :sweat_smile: It was a rushed weekend project initially I would probably rename lock_pointer_wayland to lock_pointer_gnome_wayland, create a wrapper lock_pointer that has all the logic in one place, then create new lock_pointer_* functions. We also probably want a helpful check for any new compositor (e.g. https://github.com/Wazzaps/fingerpaint/blob/47ab45304ec306a9608510c896f0239db69055cb/fingerpaint/fingerpaint.py#L303-L322) so maybe that can be refactored out into function too.

Thanks for the initiative :)

imhemish commented 1 year ago

ok let me implement compositor recognition functions and lock_pointer_hyprland (because i am running hyprland) (i would later also add functionality of lock_pointer_sway because a lot of people are using sway, and i may still have sway configuration lying around which i used to use)