背景
Mac 笔记本 TouchBar 是真的脆啊,合盖使用一段时间就废了,右侧一直闪烁简直亮瞎眼 😂
经过观察,总结出闪烁规律如下:
- 工作状态:不断操作电脑时,触控栏处于工作状态,几乎不闪烁;
- 中间状态:停止操作电脑一段时间后,触控栏变暗,闪烁较明显;
- 闲置状态:停止操作电脑直到熄屏,TouchBar 不再显示内容,却闪烁剧烈;
因此,网上提出一种定时重启 TouchBar,防止其进入休眠的方法,从而规避其闪烁问题。
创建重启 TouchBar 脚本
打开 「脚本编辑器」,编写重启 TouchBar 脚本
set idleTime to (do shell script "ioreg -c IOHIDSystem | awk '/HIDIdleTime/ {print $NF; exit}'") as integerif idleTime is greater than 4.5E+10 thendo shell script "pkill TouchBarServer" user name "USERNAME" password "PASSWORD" with administrator privileges
end if
上述代码,首先获取电脑闲置的时间,如果超过 45 秒,则重启 TouchBar。
注意,需要替换
USERNME
为你电脑的用户名
,PASSWORD
为你电脑的密码
。
点击「文件」=>「导出」,将上述代码导出为脚本,存储路径可以放到任意位置,例如 /Users/xxx
/TouchBar/TouchBar.scpt,其中 xxx
为你的用户名。
创建定时任务
打开 Terminal 终端命令行,执行如下代码:
进入任务脚本目录
cd /Library/LaunchDaemons
创建配置文件
sudo vi my.touchbar.cron.plist
贴入如下内容
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict><key>Label</key><string>my.touchbar.cron.plist</string><key>ProgramArguments</key><array><string>osascript</string><!-- 下面的 string 是创建的脚本的带名字的路径 --><string>/Users/xxx/TouchBar/TouchBar.scpt</string></array><!-- 运行间隔,与StartCalenderInterval使用其一,单位为秒 --><!-- 如果是弹出窗口点击是或取消,计时器会从你点击之后开始计时 --><key>StartInterval</key><integer>30</integer><!-- 标准输入文件 --><key>StandardInPath</key><string>/Users/xxx/TouchBar/log/run-in-drink.log</string><!-- 标准输出文件 --><key>StandardOutPath</key><string>/Users/xxx/TouchBar/log/run-out-drink.log</string><!-- 标准错误输出文件 --><key>StandardErrorPath</key><string>/Users/xxx/TouchBar/log/run-err-drink.log</string></dict>
</plist>
大概意思就是每 30 秒执行一次 /Users/xxx
/TouchBar/TouchBar.scpt
执行如下命令,加载定时任务
launchctl load my.touchbar.cron.plist
检查任务是否已成功加载(以下命令显示出 my.touchbar.cron.plist 即证明加载成功)
launchctl list | grep touchbar
如果需要停止定时任务,可以通过如下命令卸载
launchctl unload my.touchbar.cron.plist