V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
onsdriver
V2EX  ›  macOS

有没有什么软件可以把两个窗口粘起来

  •  1
     
  •   onsdriver · 108 天前 · 1808 次点击
    这是一个创建于 108 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有没有什么软件可以把两个窗口粘起来,让它们被拖动的时候一起动

    第 1 条附言  ·  100 天前

    解决方案

    hammerspoon

    效果

    代码

    local function moveChatGPT()
        local targetFrame = hs.application.applicationsForBundleID("ru.keepcoder.Telegram")[1]:focusedWindow():frame()
        local gpt = hs.application.applicationsForBundleID("com.openai.chat")[1]:allWindows()[1]
        targetFrame.y = targetFrame.y + targetFrame.h
        targetFrame.h = targetFrame.h / 2
        gpt:setFrame(targetFrame)
    end
    
    local telegramWindowFilter = hs.window.filter.new(false):setAppFilter('Telegram')
    telegramWindowFilter:subscribe(hs.window.filter.windowMoved, moveChatGPT)
    
    10 条回复    2024-09-13 19:31:36 +08:00
    onsdriver
        1
    onsdriver  
    OP
       108 天前
    这个需求还是太怪了吗
    chenxuuu
        2
    chenxuuu  
       108 天前   ❤️ 1
    AquaSnap
    onsdriver
        3
    onsdriver  
    OP
       108 天前
    @chenxuuu 好像不支持 MacOS

    > AquaSnap is compatible with all Windows versions, from Windows 7 to Windows 11, with true 64-bit support. We will do our absolute best to support all future Windows versions.
    onsdriver
        4
    onsdriver  
    OP
       108 天前
    我去看看类似的软件,感谢!
    @chenxuuu
    onsdriver
        5
    onsdriver  
    OP
       107 天前
    没找到什么靠谱的替代啊,AquaSnap 真是完美符合我所有的需求,但是不支持 MacOS😭😭😭😭

    继续蹲,走过路过的朋友支支招
    chenxuuu
        6
    chenxuuu  
       106 天前
    如果是固定的几个软件,你用 hammerspoon 写个脚本就好了吧
    q534
        7
    q534  
       105 天前
    好怪,好爱,等一个方案
    onsdriver
        8
    onsdriver  
    OP
       100 天前
    已经使用 hammerspoon 解决,虽然不是很丝滑但也足矣!!

    效果:


    代码:
    ```lua
    local function moveChatGPT()
    local targetFrame = hs.application.applicationsForBundleID("ru.keepcoder.Telegram")[1]:focusedWindow():frame()
    local gpt = hs.application.applicationsForBundleID("com.openai.chat")[1]:allWindows()[1]
    targetFrame.y = targetFrame.y + targetFrame.h
    targetFrame.h = targetFrame.h / 2
    gpt:setFrame(targetFrame)
    end

    local telegramWindowFilter = hs.window.filter.new(false):setAppFilter('Telegram')
    telegramWindowFilter:subscribe(hs.window.filter.windowMoved, moveChatGPT)
    ```

    @q534 可以参考我的
    @chenxuuu 感谢指路
    rukeypei
        9
    rukeypei  
       99 天前
    想不到还有这个需求跟脚本
    onsdriver
        10
    onsdriver  
    OP
       97 天前
    @rukeypei 用户的需求千奇百怪,自定义脚本永远的神
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   980 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 21:28 · PVG 05:28 · LAX 13:28 · JFK 16:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.