Menu

#43 App is perfection

open
nobody
2026-01-02
2025-12-30
Anonymous
No

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.

https://www.swiftshift.app

Just brain storming and spit balling. Not sure what's possible

Discussion

  • Anonymous

    Anonymous - 2026-01-01

    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.

     
  • Anonymous

    Anonymous - 2026-01-02

    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)

    if wasRunning then
      quitApp()
      hs.alert.show("MiddleDrag OFF (Fn held)")
    end
    

    end

    -- Fn released
    if (not nowFn) and fnDown then
    fnDown = false
    print("[FnClutch] UP")

    if wasRunning then
      hs.timer.doAfter(0.05, function()
        launchApp()
        hs.alert.show("MiddleDrag ON")
      end)
      wasRunning = false
    end
    

    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()")

     

Log in to post a comment.