{kwin,libinputactions}: refactor architecture, implement mouse gestures#81
{kwin,libinputactions}: refactor architecture, implement mouse gestures#81
Conversation
|
I updated the documentation (see first comment for added/changes properties) and example gestures. It only builds on Plasma 6.3 right now but some feedback would be nice. Gesture.gesture_timeout and Gesture.button_timeout currently cannot be changed. |
This reverts commit d851cd4.
|
All working great! I converted my configs to use the new keyboard conditions, also working great. Scroll gestures, drag to resize or move, alt+tab with wheel gestures, all good! I replaced And that's working for my meta+drag resize, but I wasn't able to find an equivalent to and also: But those didn't work. I figured maybe I could use regex? But I feel like I'm doing something wrong. By the way, I think it's awesome to have the ! negation feature, really cool. I wanted to try $cursor_shape and it's working great! I have this gesture for ctrl+clicking links: I noticed that if I do this gesture slowly, so that I exceed press_timeout, it behaves as expected (sends ctrl+click and that opens the link in a new tab) but if I do it quickly, then it seems to click twice, opening the same page in two new tabs. I do still have This is really great though, wow. Conditions v2 rocks. Cheers! |
|
Does it work if you remove the condition? It turns out some applications set the cursor to an image which makes my code for getting the cursor shape not work at all. I don't know if I can work around it. |
Works!
No change. It still fires twice if I'm too quick. So far I'm just using it in firefox and the cursor shape detection does seem to be working well there. |
Should be fixed.
I should update my system more often, GTK now supports the cursor shape protocol so it'll work. Still doesn't work in Easy Effects for some reason though. |
|
Works great! I just noticed that you also got YAML anchors working, nice one. I am not sure if it is possible yet, or perhaps my syntax sucks, but I was trying to see if variables can be used in a command actions like It seems very 'snappy' (fast, responsive) since these last few updates, I don't know if that was expected? Just loving it mate, thank you so much |
I didn't do anything, I probably just didn't use them correctly the first time.
Will be possible in the next version (after v0.6). I don't want to delay this even more. Edit: What you can do is activate the window by pressing left mouse button on it first.
I didn't do anything that would improve speed, in fact I added a few more layers input events must go through and made it so that motion gesture activation is attempted on every motion event. There's a ton of CPU time to be saved, in the future I'll add dynamic event compression that will automatically adjust itself based on the active gestures. |
|
I changed my mind. |
|
Amazing! Thank you!!! I also do not want to cause any more delay so I will shut up now 😁 I have plenty to keep me busy for a while. |
|
With a fresh build of I can record the gesture using the settings dialog without issue (in this case, /, or diagonal up-right), but I am unsure of the correct YAML structure. I have checked the (new) docs, and I realize this is very new functionality, but again, hoping you can advise with an example for a proper stroke gesture. Regardless, this utility is a life-saver, as I am trying to move to Wayland, and have extreme muscle memory (and preference) for gestures as I used Easystroke prior. Thanks much! |
mouse:
gestures:
- type: stroke
strokes: 'AFoA62QJZAA='
mouse_buttons: [ right ]
actions:
- on: end
plasma_shortcut: kwin,Window Maximize # "Maximize Window" is not a shortcuthttps://github.com/InputActions/docs/blob/v0.6.0/example_gestures.md Stroke gestures only support |
|
Thanks for testing. |
One million changes in a single PR, as per usual.
Features
any:,all:,none:condition groupsone:action group - only executes a single action from the group, replaces Action.block_otherChanges
Fixed bugs
Gesture conflicts
All other gestures are now cancelled when:
This makes it no longer necessary to resolve gesture conflicts manually. For example, if you had two of the same gestures , but one required Meta to be pressed and the other didn't, you had to set
keyboard_modifiers: noneon the latter one, otherwise it would always trigger.Fixed bugs
Configuration
New properties
A ton, just look through the configuration.
Changed properties
Removed properties
one:action group instead*Deprecated properties
Those will continue to work until v0.7.