rxhanson / Multitouch-Community

Issue and feature request tracking for the Multitouch app
https://multitouch.app
38 stars 0 forks source link

How to leverage "window action repetitions"? #175

Open jasonkuhrt opened 1 year ago

jasonkuhrt commented 1 year ago

Hey, amazing app @rxhanson I will be buying :)

Gestures for flicking windows around the screen is a joy.

I want to be able to cycle as I repeat a gesture and was happy to find in the settings "window action repetitions" however it's not clear to me how to use that.

What am I missing? Thanks!

CleanShot 2023-11-18 at 21 24 32@2x

rxhanson commented 1 year ago

Thanks for reporting. Looks like I have a bug here. I'll add this to my backlog for the next release.

jasonkuhrt commented 10 months ago

@rxhanson Hey, my trial is up, this is the feature I need to use on a daily basis and what my purchase decision hinges on. It seems to work better now (you released a patch I think?), but still not what I want I think.

I expected to be able to repeat gestures and have it cycle through a set of positions and also screens. It sort of does this, but in a way that feels random and confusing. And it's not really controllable as far as I can tell, it does something, but I'm not sure why.

Any ETA on this feature becoming flushed out/fixed?

Thanks @rxhanson!

rxhanson commented 10 months ago

Thanks for following up. I am about to start a bug fixing stint this week on Multitouch and will keep you posted. At the very least, Multitouch will continue to operate for a while after the trial is up, with the purchase window displayed. When I make an update you'll still be able to try it out before committing to a purchase.

Would you mind sending me your config so I can replicate your setup? In the menu bar menu, select Help > Debug > Copy Debug Info to Clipboard.

jasonkuhrt commented 10 months ago
Multitouch: 1.27.23 | 178
macOS: Version 14.0 (Build 23A344)
Model: MacBookPro18,3
Devices: ["internalTrackpad2:144115188075855923:51"]
Multitouch Configuration: [{"gid":{"gesture":"threeTap","appId":""},"r":{"type":15,"action":1511}},{"r":{"type":15,"action":1505},"gid":{"gesture":"threeSwipeLeft","appId":""}},{"r":{"type":15,"action":1506},"gid":{"appId":"","gesture":"threeSwipeRight"}},{"gid":{"gesture":"threeSwipeUp","appId":""},"r":{"type":15,"action":1516}},{"gid":{"appId":"","gesture":"threeSwipeDown"},"r":{"action":1515,"type":15}},{"gid":{"appId":"","gesture":"threeClick"},"r":{"action":230,"type":2}}] | tap-to-click | three-finger-drag
rxhanson commented 10 months ago

Alright, so sort of embarrassingly, I believe this is just a poorly communicated part of the Multitouch UI, and it comes from an early Rectangle implementation.

Checking this box will cycle through repeated actions like in Rectangle, but will cycle across displays for left/right half. If you want to get Rectangle's cycling of 1/2, 2/3, 1/3 (but not cycling across displays), then you can execute this terminal command and restart the app to get that:

defaults write com.brassmonkery.Multitouch subsequentExecutionMode -int 2 

In the interest of improving the Multitouch UI and execution here, what would your expected/desired behavior be? I don't think I'll port over the full customization that's in Rectangle Pro as I'm most interested in keeping Multitouch simple while still providing a good basic set of functionality.

jasonkuhrt commented 10 months ago

Hey @rxhanson sure I'll explain the ideal experience I'd like to have, thanks for asking!

So I think my ideal is:

  1. Perform gesture
  2. Perform next gesture in line (custom chose), if none, move to next monitor, if none, loop to first monitor

I think my desire to be able to set a custom list of gestures to cycle through is missing, right?

If that feature is not going to be supported, then my runner up ideal would be:

Perform gesture:

  1. If window not in target position on current monitor, move to target position on current monitor
  2. if window in target position on current monitor, move to target position on next monitor. If no next monitor, loop to first monitor

Make sense?

rxhanson commented 10 months ago

Thanks for your thoughts!

I think my desire to be able to set a custom list of gestures to cycle through is missing, right?

If I understand correctly, you would be looking to make one gesture execute through a custom cycle of window positions. That is not currently in Multitouch, but it is in Rectangle Pro. This UI is fairly complex, and the choice to not put this in Multitouch is an attempt to keep the app simpler. If you want to walk down the Rectangle Pro path to get closest to what you're looking for, I can instruct on how to do that. There are no swipe gestures in Rectangle Pro, but there is the rest/remove all but one (which is my preference over swipes).

If you want your "runner up ideal", try this terminal command followed by restarting Multitouch:

defaults write com.brassmonkery.Multitouch subsequentExecutionMode -int 4 

This is the setting for repeated actions cycling across displays in Rectangle/Pro.

jasonkuhrt commented 10 months ago

Hey @rxhanson when using:

defaults write com.brassmonkery.Multitouch subsequentExecutionMode -int 2

I see some form of cycling being performed but when I try:

defaults write com.brassmonkery.Multitouch subsequentExecutionMode -int 4

There is no more cycling happening at all. Am I doing something wrong?

rxhanson commented 10 months ago

Hmm, let me give things a look and see if something's not hooked up right.