feat: configurable touch gestures#1
Conversation
- Brings the touchscreen gestures to parity with touchpad/trackpad gestures, as best I can tell - Matches behavior of touchpad gestures closely - Updated docs with `Since` annotation - Added natural-scroll config option for touchscreen gestures
Adds configurable multi-finger touch gesture support with per-gesture settings for finger count, sensitivity, and natural scroll. A standalone GTK4/Libadwaita settings app (niri-touch-settings) is available as a separate project. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Have you taken a look at the discussions on the gesture bindings upstream? There's a lot of things to consider for this. And one thing I really want is exposing the gesture progress state somehow so users can make their own custom animated gestures through scripts and stuff. Right now, I want this PR to only match existing touchpad gestures. I'm open to building on your work here on a separate PR branch, or something, where we can experiment with more designs to the interface. |
|
I would actually suggest that you PR this work upstream, at least as a draft, so that it'll have more eyes on it. |
|
Thankyou, I will look upstream and take on recommended suggestions. |
|
Nice. Also, sidenote; is it that easy to work with GTK4/libadwaita in Rust? You built a whole GUI settings app with it! Also, have you considered adding any scaffolding/infra for screen-edge gestures (only top/bottom, since the discussion in niri-wm#372 mentions we should leave left/right for apps)? |
|
Ill be honest, ClaudeCode did all he heavy lifting in regards to building. I have had a good read of the 372 discussion. |
Do you mean my lua or lua-stable branchs? If so, then most of those I constructed with Opus 4.5 on the OpenCode harness back in December-January. When pricing on that was much more liberal through gh-copilot. There's a ton of bloat, and over-engineering in them and I'm also exploring a better approach to doing with hooks into the core niri API using trampolines or something in a way that Hyprland does it. I was much less knowledgeable about the codebase and WL compositors and graphics in general back then. Haven't gotten to cleaning that up yet. |
|
I'm trying to get a better understanding of the config files. The niri kdl config file is good when you manually editing it manually but when you have a gui interface that wants to write to it that's where things got complicated for me. I'm a big fan of the gui to save config settings. config settings are going to get pretty big pretty fast with Also the structure of the manual kdl file seems open and no defined standards just some concepts? |
0e4c279 to
fc3b467
Compare
Really like the touch gesture implementation — great foundation to build on. I've made some
improvements based on a few of the suggestions: