当前位置: 首页 > news >正文

Mac 定时重启 TouchBar 脚本(缓解闪烁问题)

背景

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
http://www.lryc.cn/news/107653.html

相关文章:

  • Redis主从复制、哨兵机制、集群分片
  • 字段填充策略 FieldFill
  • Docker run 启动容器报错
  • Golang之路---03 面向对象——类型断言
  • Atcoder 做题记录
  • C++之观察者模式(发布-订阅)
  • 无头单链表,有完整测试程序
  • 2023年第四届“华数杯”数学建模思路 - 案例:FPTree-频繁模式树算法
  • MySQL做分布式锁
  • Python学习笔记:变量类型、字符串基本操作
  • JVM的组件、自动垃圾回收的工作原理、分代垃圾回收过程、可用的垃圾回收器类型
  • 【elementui】解决el-select组件失去焦点blur事件每次获取的是上一次选中值的问题
  • 通过了PMP考试,还有什么证书值得考?
  • 页面技术基础-html
  • /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28‘ not found
  • 解决SVN或GIT忽略提交文件的问题
  • Django框架之路由用法
  • 回文链表 LeetCode热题100
  • 如何在群晖NAS中使用cpolar内网穿透
  • 无头单向不循环链表和带头双向循环链表的创建
  • 超简单的fastapi链接websocket用例
  • MySQL详解
  • Vue [Day2]
  • 【前端|Javascript第1篇】一文搞懂Javascript的基本语法
  • 【Linux命令200例】cp用于复制文件和目录(常用)
  • C高级_第二讲_shell指令和shell脚本_递归练习
  • 静态路由综合实验
  • Spring核心IOC控制反转思想-----Spring框架
  • 中小企业如何做好MES管理系统实施建设
  • java环境搭建 Ubuntu Linux