Originally created by: garrattg
The latest update is amazing. This app is perfect. It could never change again and I'd be fine with that. But if I find little features to request, I'll take shot. I am running out of ideas though. Haha
So one last idea. Not sure if it's possible. What if you allowed holding command or shift, and it disabled the standard middle drag, and it activated the ability to have four swipes that triggered hot keys.
My current setup is this:
1) I have four finger swipe up for Mission Control
2) Four finger down for app expose.
3) I've have alt tab (the command tab replacement app), to setup when I hold four fingers down and drag, it allows me to cycle my apps, with just the track pad. It's pretty cool. But the negative is that it eliminates me to switch spaces with four fingers.
If I could hold command while dragging my fingers, and instead of doing to middle drag, it activates a keyboard short cut, I could then get a more natural spaces cycle.
Another cool feature is to somehow integrate features from shift swift. I've found the window moving feature is cool. I've found that the resize feature is less natural.
Just brain storming and spit balling. Not sure what's possible
Originally posted by: garrattg
I read read this. I meant to say, that if I held shift or command, it would allow standard THREE finger gestures (essentially disabling the standard middle drag), not four fingers like I said before. This would then allow four types of THREE finger drags, up, down, left, right... These could be tied to short cuts...
I could then bring back three finger swipe to switch spaces (holding shift or command), which I can't use right now.
Sorry for the confusion.
Originally posted by: garrattg
So I managed to figure out a way to do this but its not for the faint hearted, which if you could get this built-in, it would easier for users. So what I did is make a hammerspoon INI that uses function. I then used better touch tool to create a 3 finger swipe, when FN is held down. Works pretty good, so what it does is shut down middle drag when holding fn, and when i let go it relaunches it. Crude but effective.
-- =========================================
-- MiddleDrag clutch using Fn modifier flag
-- Hold Fn => MiddleDrag OFF (quit)
-- Release Fn => MiddleDrag ON (relaunch)
-- =========================================
local appName = "MiddleDrag"
local fnDown = false
local wasRunning = false
local function isRunning()
return hs.application.get(appName) ~= nil
end
local function quitApp()
local app = hs.application.get(appName)
if app then
print("[MiddleDrag] quitting…")
app:kill()
return true
else
print("[MiddleDrag] not running")
return false
end
end
local function launchApp()
print("[MiddleDrag] launching…")
hs.application.launchOrFocus(appName)
return true
end
-- Console helpers
_G.quitMiddleDrag = quitApp
_G.launchMiddleDrag = launchApp
-- Fn clutch watcher (flagsChanged)
if _G.fnClutchTap then _G.fnClutchTap:stop() end
_G.fnClutchTap = hs.eventtap.new({hs.eventtap.event.types.flagsChanged}, function(e)
local f = e:getFlags()
local nowFn = f.fn == true
-- Fn pressed
if nowFn and not fnDown then
fnDown = true
wasRunning = isRunning()
print("[FnClutch] DOWN | MiddleDrag running =", wasRunning)
end
-- Fn released
if (not nowFn) and fnDown then
fnDown = false
print("[FnClutch] UP")
end
return false
end)
_G.fnClutchTap:start()
hs.alert.show("Loaded ✅ Fn clutch for MiddleDrag (flags.fn)")
print("Loaded ✅ Fn clutch for MiddleDrag (flags.fn)")
print("Console tests: quitMiddleDrag(), launchMiddleDrag()")