Cmd-Drag to move ✅ Cmd-Click in app ❌

Hey folks, as a KDE refugee I like how BTT lets me assign Cmd-Drag to move windows, and Cmd-Right-Drag to resize: the muscle memory applies to both OS’s because the command button becomes Alt in windows/linux layout.

HOWEVER I also use IDEA all day every day, where Cmd-Click is the “go to symbol” action, and with Cmd-LeftClick assigned to window movement, Cmd-Click is no longer dispatched to apps. What I really want is when the mouse has moved very little since the MouseDown event (e.g. less than a handful of pixels), the Cmd-Click should be passed through to the app rather than initiating a move immediately. This may already be an advanced condition feature but it needs to be stateful so…?

My config looks like this:

Another, related feature request that might be already present in some encoded form:

When I Cmd-Drag to move the window, the Cmd-Click should not be passed to the window, but when I Cmd-Drag without moving very much, the Cmd-Click should be passed through. :sweat_smile:

Currently I have this script on the Cmd-Click, I guess I could add another action with the predicate inverted, and have it synthesize a Cmd-Click :thinking:

left_mouse_down == 1 AND trackpad_mouse_distance_since_initial_touch > 10

(edit: doesn’t work; the second script with inverted logic doesn’t seem to do anything)

Worst case scenario, I could use Option-Drag instead of Cmd-Drag but that confuses the muscle memory. :sweat_smile:

there is currently no perfect solution for this I think, maybe this works well enough:


This would make it pass through quick cmd+clicks but longer presses would start moving the window

I'll think about other ways to achieve this

Thanks! Adding the delay doesn't help, the Cmd-Click gets eaten regardless of how long I hold the button.

FWIW Swift Shift does it properly pretty much out the box, but it also introduces catastrophic input lag if you leave it running for more than about 15 minutes. :roll_eyes:

ooh it might work if I make the passthrough script an OR condition in the first one :thinking:

edit: I think I would need to dispatch actions conditionally, not just have a more complex condition expression