如何在手动休眠时结束`sleepscript`?

我想唤醒屏幕。 30分钟后关闭屏幕,作为番茄计时器。

我的代码如下:

sleepscript = [[
    tell application "Terminal"
    do script "Control +. C"
    do script "echo 'git add -A' | sudo -S sudo shutdown -s +30"
    end tell
]]

cwatcher = hs.caffeinate.watcher.new(function(ventType)

 if (eventType == hs.caffeinate.watcher.systemWillSleep or
            eventType == hs.caffeinate.watcher.systemWillPowerOff) then
            print ("WillSleep...")
        -- sleep:start()
    elseif (eventType == hs.caffeinate.watcher.screensDidUnlock ) then
        print ("Woken...")
        -- wake:start()
        ok, result = hs.applescript(sleepscript)
        print(result)
        hs.alert.show(ok)
    end
end
)
cwatcher:start()

如何在手动休眠时结束sleepscript

我不想同时运行两个睡眠任务。

我希望在唤醒 Mac 后30分钟内将其休眠。

点赞
用户2305249
用户2305249

可以考虑使用 hs.timer.doAfter() 来实现延迟 30 分钟的关闭操作,这样你可以在需要时调用关闭,同时你还可以与 hs.timer 对象交互,制作菜单图标、热键等等。而且容易取消操作 :)

2018-01-31 19:22:36