Skip to content

Releases: CUinspace233/keep-awake

KeepAwake v1.4

Choose a tag to compare

@CUinspace233 CUinspace233 released this 29 Jul 05:37
<title>KeepAwake</title> <title>1.4</title> Wed, 29 Jul 2026 13:36:19 +0800 1.4 1.4 14.0 arm64 <title>1.3</title> Tue, 28 Jul 2026 09:18:30 +0800 1.3 1.3 14.0 arm64 <title>1.2</title> Sat, 25 Jul 2026 23:48:45 +0800 1.2 1.2 14.0 arm64

KeepAwake v1.3

Choose a tag to compare

@CUinspace233 CUinspace233 released this 28 Jul 01:20
<title>KeepAwake</title> <title>1.3</title> Tue, 28 Jul 2026 09:18:30 +0800 1.3 1.3 14.0 arm64 <title>1.2</title> Sat, 25 Jul 2026 23:48:45 +0800 1.2 1.2 14.0 arm64 <title>1.1</title> Sat, 25 Jul 2026 22:50:47 +0800 1.1 1.1 14.0 arm64

KeepAwake v1.2

Choose a tag to compare

@CUinspace233 CUinspace233 released this 25 Jul 15:52

KeepAwake v1.2

macOS 菜单栏保活工具 —— 自定义开始时间、时长、星期。屏幕可黑但 CPU / Wi-Fi / Terminal 等进程持续工作。

[English below | 英文说明在下方]


🚀 一键升级 / Quick Upgrade

如果你已经安装了 v1.1:菜单栏点 🌙 月亮 → 「检查更新…」 → 自动下载 13 KB 增量包升级。

If you already have v1.1: click 🌙 in menu bar → "检查更新…" → Sparkle auto-downloads a 13 KB delta and upgrades.

📥 首次安装 / First-time Install

  1. 下载 KeepAwake-v1.2.dmg(1.6 MB)
  2. 双击挂载 → 把 KeepAwake.app 拖到右边的 Applications 快捷方式
  3. 启动 App → 弹窗提示
  4. 推荐点「打开终端并执行」 —— 自动在 Terminal.app 里跑安装命令
  5. 装好后在 Terminal 按 ⌘W 关窗口(或输入 exit + 回车)
  6. 重新启动 KeepAwake 即可使用

首次启动若提示"无法打开,因为它来自身份不明的开发者",请到「系统设置 → 隐私与安全性」点「仍要打开」。

If macOS warns "cannot be opened because the developer cannot be verified", go to System Settings → Privacy & Security → click Open Anyway.


✨ v1.2 主要变化 / What's New

用户体验 / UX

  • 🪟 NSAlert 安装引导新增「打开终端并执行」按钮 —— 一键在 Terminal.app 里自动跑安装脚本
  • 📝 install.sh 跑完后明确提示关闭 Terminal —— 不会再有"卡在原地"的感觉
  • 📦 build.sh 自动把 InstallHelper 注入 ~/Applications/KeepAwake.app —— 即使从源码 build 也能用引导功能

修复 / Bug Fixes

  • 🔧 install.sh 用 launchctl print 判定 LaunchAgent 启动 —— 修复 macOS 26 上偶发的"LaunchAgent 加载失败"误报
  • Sparkle 自动升级支持增量包 —— v1.1 → v1.2 仅需下载 13 KB

v1.1 → v1.2 增量包

  • 完整 DMG:1.6 MB
  • 增量包:13 KB(v1.1 → v1.2)

📋 功能 / Features

  • 🌙 菜单栏 App —— 一键开启/关闭
  • 三种调度模式:立即保活 / 定时单次 / 每周循环
  • 🌃 跨天时间段支持 —— 例如 工作日 22:00 → 次日 09:00 自动识别
  • 🔒 自动锁屏 —— 保活期间屏幕可黑,CPU 继续工作
  • 🚀 开机自启 —— LaunchAgent 守护后台引擎
  • 🪶 轻量原生 —— Swift + SwiftUI,单二进制 ~250 KB
  • 🔄 自动升级 —— Sparkle 集成,菜单里一键检查更新

🖥️ 使用方式 / Usage

点击菜单栏 🌙 月亮图标:

菜单项 作用
状态: 空闲 / 保活中 · 至 09:00 当前状态
保活 1 小时 立即保活 60 分钟
保活到明早 9:00 立即保活到次日 09:00
无限时长保活 永不停止(需手动停)
立即停止 解除保活
详细设置… 打开 SwiftUI 面板(定时、星期、跨天)
检查更新… 自动检查新版本(Sparkle)
退出 KeepAwake 完全退出 App

每周循环示例 / Weekly Examples

场景 days startTime endTime
工作日上班 [1,2,3,4,5] 09:00 18:00
工作日晚加班(跨天 [1,2,3,4,5] 22:00 09:00
周末全天 [6,7] 00:00 23:59

引擎自动识别跨天:startTime > endTime 时判定为"今天晚 → 次日早"。


⚙️ 系统要求 / Requirements

  • macOS 14.0+ (Sonoma 或更新)
  • Apple Silicon 或 Intel
  • 启动时需要允许"打开未知开发者 App"

🗑 卸载 / Uninstall

一键卸载(不需要 App 安装包):

curl -fsSL https://raw.githubusercontent.com/CUinspace233/keep-awake/main/uninstall.sh | bash

或者本地:

bash uninstall.sh            # 完整卸载
bash uninstall.sh --keep-app # 只卸载后台引擎,保留 App

完整卸载清理:

  • GUI App 进程
  • LaunchAgent ~/Library/LaunchAgents/com.cuinspace.keep-awake.plist
  • 后台引擎 ~/Library/Scripts/keep-awake.sh
  • 配置 + PID ~/.config/keep-awake.{json,pid}
  • 日志 ~/Library/Logs/keep-awake.*
  • App 本体 ~/Applications/KeepAwake.app

📂 文件位置 / File Locations

路径 用途
~/Applications/KeepAwake.app App 主体
~/Library/Scripts/keep-awake.sh 后台保活引擎
~/Library/LaunchAgents/com.cuinspace.keep-awake.plist LaunchAgent 配置
~/Library/Logs/keep-awake.log 引擎日志
~/.config/keep-awake.json 调度配置

🔐 安全 / Security

  • DMG 内的 App 是 ad-hoc 签名(无 Apple Developer 账号),未做 Apple 公证
  • 后台引擎只读 JSON + 调用系统 caffeinate无网络通信
  • 完整源码公开可审计:https://github.com/CUinspace233/keep-awake
  • 自动升级用 Sparkle + EdDSA 签名验证,确保 DMG 来源可信

❓ 常见问题 / FAQ

Q:保活期间屏幕黑了,远程 SSH 会断吗?
A:不会。pmset displaysleepnow 只关显示器,CPU、Wi-Fi、SSH 全部继续。

Q:合盖时还能保活吗?
A:本 App 设计为开盖 + 锁屏场景。合盖时 macOS 强制系统睡眠,无法绕过。

Q:合上笔记本能保持网络吗?
A:用 caffeinate -s 也无法阻止合盖睡眠(macOS SMC 硬件行为)。建议合盖前先 caffeinate -t 3600 + 接电源。

Q:怎么验证保活生效?
A:在终端跑 bash ~/Library/Scripts/keep-awake.sh --status,应看到 caffeinate running: yes


🔧 从源码构建 / Build from Source

git clone https://github.com/CUinspace233/keep-awake.git
cd keep-awake
bash icons.sh         # 生成 App 图标(可选)
bash build.sh         # 编译 ~/Applications/KeepAwake.app
bash install.sh       # 安装后台引擎
open ~/Applications/KeepAwake.app

需要 Xcode Command Line Tools (xcode-select --install)。

📦 打包 / Package

bash package.sh       # 输出 build/KeepAwake-v1.2.dmg + appcast

技术栈:Swift + SwiftUI + AppKit,标准 swiftc 编译(不依赖 Xcode 工程),集成 Sparkle 2.9.4。


📝 License

MIT


Full Changelog: v1.1...v1.2

KeepAwake v1.1

Choose a tag to compare

@CUinspace233 CUinspace233 released this 25 Jul 13:58

KeepAwake v1.1

macOS 熄屏保活工具 —— 自定义开始时间、时长、星期。屏幕可黑但 CPU / Wi-Fi / Terminal 等进程持续工作。

升级方式 / Upgrade

应用内点击“检查更新”升级。

新版本变化 / What's new

  • 🔧 日志自动轮转(保留 30 天,单文件 >1MB 时切割)
  • 🗑 独立卸载脚本 `uninstall.sh`(不依赖 App 安装包)
  • ✅ 修了 install.sh 在 macOS 26 上偶发的"LaunchAgent 加载失败"误报
  • 🎨 自定义 App 图标 + DMG 卷标图标(月亮渐变背景)

安装步骤 / Install

  1. 双击挂载 DMG
  2. 拖 `KeepAwake.app` 到 Applications
  3. 启动 App → 弹窗提示运行一次性安装命令
  4. 在终端粘贴(已自动复制到剪贴板)→ 回车
  5. 装好后重启 App

系统要求 / Requirements: macOS 14.0+

KeepAwake v1.0

Choose a tag to compare

@CUinspace233 CUinspace233 released this 25 Jul 13:20

KeepAwake v1.0

macOS 锁屏保活工具 —— 自定义开始时间、时长、星期。屏幕可黑但 CPU / Wi-Fi / Terminal 等进程持续工作。

下载 / Download

下载 `KeepAwake-v1.0.dmg`,双击挂载后把 `KeepAwake.app` 拖到 Applications。

安装步骤 / Install

  1. 双击挂载 DMG
  2. 拖 `KeepAwake.app` 到 Applications
  3. 启动 App → 弹窗提示运行一次性安装命令
  4. 在终端粘贴(已自动复制到剪贴板)→ 回车
  5. 装好后重启 App

主要功能 / Features

  • 🌙 菜单栏 App,一键开启/关闭
  • ⏰ 三种调度:立即、定时单次、每周循环
  • 🌃 跨天时间段支持(如工作日 22:00 → 次日 09:00)
  • 🔒 保活期间自动锁屏,CPU 继续工作
  • 🚀 LaunchAgent 守护,进程异常自动重启

系统要求 / Requirements: macOS 14.0+