macbook 显示器关闭后再开启 夜览失效

2021-11-03 11:42:23 +08:00
 monetto

如题,大家有这个问题吗?

MBP 16 2019

1221 次点击
所在节点    macOS
7 条回复
muntoya
2021-11-03 11:54:38 +08:00
同款,已经一年了,拿去店里说重装系统试试,没法解决。
原彩和夜览都会在显示器重新亮的时候随机失效。网上发现遇到的人不少,用 pmset 重置好过几天,然后就又坏了。
monetto
2021-11-03 13:03:47 +08:00
@muntoya 唉。系统是 Big Sur 11.6.1 ,升级系统也没用。OnyX 重置也没用。
Catalina 的 15 款 MBP13 就没这个问题。

目前想知道 有没有啥办法可以终端调用夜览,做到定时或者检测屏幕唤醒自动执行夜览。
monetto
2021-11-04 16:06:10 +08:00
@muntoya 使用 Hammerspoon 监听屏幕唤醒事件 + LUA 脚本 + nightlight (Terminal 调用夜览),可以做到亮屏的时候先关闭夜览,再开启。一定程度解决。
conver
2022-11-17 09:55:40 +08:00
@monetto 脚本可以分享下吗
monetto
2022-11-17 11:10:06 +08:00
@conver 当时写了一半放弃了,工作太忙...不过查查 Hammerspoon 文档就可以。本质上就是监听 解锁事件,然后通过终端调用 nightlight 先关闭,过 1s 再开启。
conver
2022-11-17 19:51:51 +08:00
这样应该行
```
function nightlightControl(state)
cmd = "/usr/local/bin/nightlight " .. (state)
result = hs.osascript.applescript(string.format('do shell script "%s"', cmd))
end

function caffeinateCallback(eventType)
if (eventType == hs.caffeinate.watcher.screensDidSleep) then
nightlightControl('off')
elseif (eventType == hs.caffeinate.watcher.screensDidWake) then
nightlightControl('on')
elseif (eventType == hs.caffeinate.watcher.screensDidLock) then
nightlightControl('off')
elseif (eventType == hs.caffeinate.watcher.screensDidUnlock) then
nightlightControl('on')
end
end

caffeinateWatcher = hs.caffeinate.watcher.new(caffeinateCallback)
caffeinateWatcher:start()

```
conver
2022-11-18 11:43:57 +08:00
```
-- brew install hammerspoon
-- brew install smudge/smudge/nightlight
function nightlightControl(state)
cmd = "/usr/local/bin/nightlight " .. (state)
ok, result = hs.osascript.applescript(string.format('do shell script "%s"', cmd))
return result
end

function caffeinateCallback(eventType)
if (eventType == hs.caffeinate.watcher.screensDidUnlock) then
if (string.match(nightlightControl('status'), 'on')) then
nightlightControl('off')
nightlightControl('on')
end
end
end

caffeinateWatcher = hs.caffeinate.watcher.new(caffeinateCallback)
caffeinateWatcher:start()
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/812677

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX