> 🌐 语言:[English](README.md) | [Русский](README.ru.md) | [简体中文](README.zh-CN.md) [![GitHub Release](https://img.shields.io/github/v/release/CHerSun/NoSleep)](https://github.com/CHerSun/NoSleep/releases/latest) # NoSleep NoSleep 是一款轻量级工具,用于防止 Windows 自动激活屏幕保护程序、睡眠模式或锁屏。它专为那些你无法自行更改这些设置的场景而设计——例如,因公司强制策略限制而无法修改时。灵感来自 Linux 的 Caffeine。 NoSleep 能够感知睡眠模式:它会检测你的设备使用传统睡眠 (S1–S3) 还是新式待机 (S0),并相应调整——参见[睡眠模式](#睡眠模式新式待机与传统)。 > **注意:** Windows PowerToys 包含一款名为 Awake 的工具,功能相同,但 PowerToys 可能需要管理员权限,且体积较大。NoSleep 致力于尽可能精简,运行时无需任何额外权限。 ## 安装 NoSleep 可通过 [Scoop](https://scoop.sh/) 包管理器安装: ```sh scoop bucket add extras scoop install extras/nosleep ``` 你也可以从[发布页面](https://github.com/CHerSun/NoSleep/releases/latest)手动下载最新版本。每个发布包含三个可执行文件——任选其一即可: - **`NoSleep.exe`** — 面向所有用户的默认版本(基于 .NET Framework 4.8 运行,Windows 已预装)。 - **`NoSleep-net8.exe`** / **`NoSleep-net10.exe`** — 面向已安装 .NET 8 或 .NET 10 运行时的单文件版本。 ## 使用方法 NoSleep 采用"设置后即忘"的设计。一旦运行,它会驻留在 Windows 系统托盘中,防止你的电脑进入睡眠状态。 - **左键单击**托盘图标可切换启用或禁用状态。图标会随之变化以反映当前状态;禁用时「zzz」图标会跟随 Windows 颜色模式(深色任务栏上显示为白色),确保清晰可见。 - **右键单击**托盘图标可打开菜单,包含以下附加选项: - **登录时自动启动** – 在你登录时自动启动 NoSleep。 - **保持屏幕常亮** – 在 NoSleep 启用时,防止显示器关闭。 - **合盖时阻止睡眠** *(仅限新式待机笔记本;默认关闭)* – 当 NoSleep 启用时,合上盖子不会使设备进入睡眠;禁用或退出 NoSleep 时会恢复原来的盖子动作。(自 v1.6.0 起可用) - **模拟活动** *(仅限新式待机设备;默认关闭)* – 参见[睡眠模式](#睡眠模式新式待机与传统)。(自 v1.6.0 起可用) - **记住启用状态** – 在应用程序重启后保存启用状态。 - **配置要监视的应用程序** – 定义一个应用程序列表。如果这些应用都没有运行,NoSleep 会自动禁用自身;如果任意一个被监视的应用正在运行,NoSleep 会启用自身并阻止睡眠。此动态行为仅在用户启用 NoSleep 时生效。(自 v1.4.0 起可用) 要完全停止 NoSleep,请右键单击托盘图标并选择 **关闭**。 ### 语言 界面会自动跟随 Windows 显示语言,在 **English、Русский 和 简体中文** 之间选择。如需显式指定语言,可使用 `--lang` 参数启动: ```sh NoSleep.exe --lang zh-CN # 本次运行使用简体中文 NoSleep.exe --lang ru # 俄语 NoSleep.exe --lang list # 显示可用语言 ``` 要固定语言选择,请将参数添加到 NoSleep 快捷方式的目标中。 ## 系统要求 - **`NoSleep.exe`**(默认版本):.NET Framework 4.8 或更高版本——通常在 Windows 10 及更高版本中已预装。如需安装,可从 [Microsoft](https://dotnet.microsoft.com/en-us/download/dotnet-framework) 下载。 - **`NoSleep-net8.exe`** / **`NoSleep-net10.exe`**:需要安装对应的 .NET 运行时。 ## 工作原理 NoSleep 每 10 秒重新声明一次 Windows 电源请求(`SetThreadExecutionState`)来保持系统唤醒——CPU 占用极低,内存消耗很少;编译后的二进制文件包含图标(约 180 KB)和核心代码。在新式待机设备上,NoSleep 还会应用[睡眠模式](#睡眠模式新式待机与传统)中描述的 S0 专属保护。 ## 睡眠模式(新式待机与传统) Windows 设备以两种方式之一进入睡眠,NoSleep 会在托盘菜单的第一行显示当前适用的是哪一种。可在终端运行 `powercfg /a` 查看自己的设备。 **当 NoSleep 处于启用状态时,它能阻止什么:** | 事件 | 传统 (S3) | 新式待机 (S0) | S0 电池供电 | | --- | --- | --- | --- | | 自动睡眠 | ✅ 已阻止 | ✅ 已阻止 | ✅ 已阻止——至睡眠超时 + 5 分钟
✔ 无限期(模拟活动) | | 屏幕关闭 | ✅ 已阻止(保持屏幕常亮) | ✅ 已阻止(保持屏幕常亮) | ✅ 已阻止(保持屏幕常亮) | | 合盖导致的睡眠 | ✅ 已阻止 | ✔ 可通过选项阻止(合盖时阻止睡眠) | ✔ 可通过选项阻止(合盖时阻止睡眠) | | 电源菜单 / 睡眠键触发的睡眠 | ✅ 已阻止 | — | — | *✅ = 默认即可阻止 · ✔ = 可通过选项阻止 · — = 不针对。本表展示的是有效(启用)状态——当 NoSleep 被禁用,或应用监视开启但没有被监视应用在运行时,Windows 按正常方式运行。盖子是 NoSleep 唯一会改写的手动睡眠触发;睡眠键属于有意不覆盖的范围。* **传统 (S3)** – 经典睡眠。只要 NoSleep 处于启用状态,就会完全阻止睡眠,包括手动触发的睡眠:设备只是*看起来*在睡眠,实际仍在运行。这是 NoSleep 一贯的行为。 **新式待机 (S0)** – 多数新款笔记本采用的新模型。在这种模式下,当*您*明确要求睡眠时,Windows 会有意忽略应用程序的保持唤醒请求,因此 NoSleep 无法直接否决。两个附加选项(均默认关闭)覆盖了这些缺口: - **合盖时阻止睡眠** – NoSleep 启用时,会临时把盖子动作设为“不采取任何操作”,并在禁用或退出时恢复原始设置(如果 NoSleep 被强制终止,下次启动时也会自动恢复)。合上盖子后设备继续运行、屏幕关闭——就像外接显示器一样。 - **模拟活动** – NoSleep 如何应对现代待机下电源请求无法覆盖的睡眠触发: - *阻止睡眠尝试* – 尽力而为:当系统尝试睡眠时(睡眠键、电源菜单),NoSleep 以一阵短暂的模拟输入作出反应,力图立即将其唤醒。您在聊天中可能会瞬间显示“活跃”。对于合盖场景,请优先使用上方确定性的**合盖时阻止睡眠**选项。 - *模拟用户在线* – NoSleep 持续模拟不可见的用户活动(不会移动任何东西的输入事件——光标保持不动),防止**自动**睡眠。**副作用:** 您将始终显示为活跃(聊天不会空闲),屏幕和会话也不会自动锁定。 - *移动鼠标(可见)* – 与在线模拟目的相同,但使用真实、可见的鼠标移动(光标每次都会回到原位)——适用于不可见活动不够用的系统。 - 持续模式以随机化的节奏运行(事件不会呈现完美的周期性);高级用户可通过标准设置文件中的 `JiggleIntervalMs` / `JiggleJitterPercent` 值进行调整(默认:10 秒,±20%)。 > ⚠️ **笔记本安全——过热风险。** 上面的所有功能(以及 NoSleep 本身)的目的都是让设备保持唤醒。在闭合的包或内胆袋中保持唤醒的笔记本电脑无法散热:可能过热、耗尽电池,最坏情况下可能损坏自身或附近物品。这一风险是*任何*保持唤醒工具固有的——包括 NoSleep 在 S3 上的经典行为(在那里合盖从来就不意味着设备会睡眠)。因此**两个现代待机选项默认关闭**:在您明确开启之前,系统不会有任何改变。NoSleep 还会在禁用或退出时立即恢复其更改的所有系统设置,并在下次启动时修复遗留的盖子设置。养成习惯:把笔记本放进包里之前,看一眼托盘——咖啡图标意味着它不会睡眠——然后禁用 NoSleep。 **现代待机下的诚实限制:** - **使用电池时**,Windows 会在睡眠超时后 5 分钟终止电源请求——这是操作系统行为,任何保持唤醒请求都无法绕过。持续的在线模拟(*模拟用户在线*或*移动鼠标*)是唯一能在电池供电下无限防止**自动**睡眠的方式。 - 在现代待机下,从电源菜单显式选择**睡眠**(或按电源按钮)始终会被系统执行——只有模拟活动能对抗它。如果您想让设备睡眠,正确做法是禁用 NoSleep。 如果您不需要 NoSleep 的动态行为,自行将盖子动作设为“不采取任何操作”(电源选项 → 选择关闭盖子的功能)可以达到同样效果;NoSleep 的优势是一键切换并自动还原。 ## 图标归属 | 用途 | 图标及来源 | 许可证 | 作者 | | -------------- | ---------------------------------------------------------------------------------------------- | ------------------------ | --------------------------------------------------------------------------- | | 启用状态 | [Coffee icon](https://www.iconarchive.com/show/food-icons-by-martin-berube/coffee-icon.html) | 免费软件 | [Martin Berube](https://www.iconarchive.com/artist/martin-berube.html) | | 禁用状态 | [Sleep icon](https://www.iconarchive.com/show/material-icons-by-pictogrammers/sleep-icon.html)(黑色;深色任务栏使用白色重绘版) | Apache 2.0(开源) | [Pictogrammers Team](https://www.iconarchive.com/artist/pictogrammers.html) | 衷心感谢这些图标的作者!