Skip to content

Releases

v0.5.3

v0.5.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 13:44

DeepSleep For Windows v0.5.3 - Beta

本次更新中修复了下列问题:

  • 托盘图标一直不出现,界面上没有图标也没有报错
  • 切换要修改的电源计划时,下面的设置不刷新,也不说为什么

本次更新中做出了下列优化:

  • 电源设置面板第一行显示「正在编辑:哪个计划」,换计划一眼看得出来
  • 读取电源设置失败时,面板里直接写明原因,不再是一片空白

v0.5.2

v0.5.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 13:08

DeepSleep For Windows v0.5.2 - Beta

本次更新中修复了下列问题:

  • 遥测状态读不出来,界面上显示 argument 1: OverflowError: int too long to convert
  • 托盘图标仍然不出现,装完之后不注销重登就一直看不到

本次更新中做出了下列优化:

  • 托盘图标改由窗口进程自己创建,关掉窗口只是收起来,图标留着,点一下回来
  • 托盘菜单可以打开主界面、立即锁屏、保持唤醒、切换电源计划、退出
  • 老版本留下的独立托盘任务会在启动时清掉,不会再冒出第二个图标
  • 拿到系统句柄的那批调用统一声明了参数类型,不再在 64 位上溢出

v0.5.1

v0.5.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 10:34

DeepSleep For Windows v0.5.1 - Beta

本次更新中修复了下列问题:

  • 安装后台服务时报告 argument 1: OverflowError,UAC 同意之后界面上只剩这一句
  • 切换要修改的电源计划时,下方的电源设置不刷新
  • 电源设置的分组标题显示成一串 UUID
  • 复制过同名计划后,两个同名计划在下拉框里分不开,切换其中一个看起来没反应
  • 托盘图标不出现,装完之后不注销重登就一直看不到

本次更新中做出了下列优化:

  • 托盘图标会在打开窗口时被拉起,不再只依赖登录
  • 托盘只保留一个实例,不会出现两个图标

本次更新中添加了下列功能:

  • 概览页显示当前电源计划和切换原因,以及距空闲阈值还有多久
  • 临时保持唤醒:30 分钟 / 1 小时 / 2 小时 / 8 小时,到点自动恢复,命令行用 hold 30 与 hold off
  • 一条规则可以加多个条件,并支持优先级
  • 电源设置按显示、睡眠、硬盘、处理器等分组展示
  • 日志页支持搜索和按级别筛选
  • Ctrl+1 到 Ctrl+5 切换页面,Esc 关闭进程选择弹窗

v0.5.0

v0.5.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 04:47

DeepSleep For Windows(Beta) 0.5.0

界面重做,加了临时的"别睡一会儿"。

第一页现在说人话

打开窗口第一眼从「后台服务」换成了概览:

  • 大字是当前电源计划
  • 下面一行写着它为什么是这个计划——"你在用电脑"、"已经离开 15 分钟,按空闲计划处理"、"规则「夜间省电」命中"
  • 右边是空闲计时和一条进度条,看得见离阈值还有多远

后台服务那一条从一整块面板收成了一行。它不出问题时不该占地方。

临时不睡觉

概览上有四个按钮:30 分钟、1 小时、2 小时、8 小时。点一下,到点自己恢复,不用记着回来关。

关掉窗口也照样有效,重启程序也不会丢。开始之后上面会显示还剩多久。

托盘图标右键菜单里也有同一组,还有一条「取消,让它照常睡」。

不想点界面的话:

DeepSleepForWindows.exe hold 30     接下来 30 分钟不睡
DeepSleepForWindows.exe hold off    取消

这些只影响睡不睡,不影响用哪个电源计划。空闲逻辑照常切计划。

规则可以加多条条件

以前一条规则只能有一个条件。引擎本来就支持「全部成立才触发」,只是界面只给了一个。

现在是条件列表,加几条都行。比如「周一至周五」+「09:00-18:00」+「空闲超过 5 分钟」可以在同一条规则里。

规则也带优先级了,数字大的先执行。两条同时命中时靠它决定顺序。

电源页

  • 四张卡改成两列,不再出现第四张孤零零掉到第二行
  • 计划设置按「显示 / 睡眠 / 硬盘 / 处理器」分组,不再是十一行数字平铺
  • 下拉框里的选项已经写了「10 分钟」,右边不再重复一个「分钟」

日志

多了搜索框和「全部 / 警告 / 错误」切换,右上角显示当前筛出多少行。

概览页最下面显示最近六条,有警告会标黄。

界面

  • Ctrl+1 到 Ctrl+5 切页
  • Esc 关掉进程选择弹窗

修掉的

进程选择弹窗没有遮罩、不居中。 上一版修「弹窗一进来就显示」的时候,那条隐藏规则被插进了样式块的中间,后半段(居中、半透明遮罩、背景模糊、弹出动画)全部变成解析错误被丢掉。

动作里的计划下拉一开始是空的。 新建规则选「切换电源计划」时,计划列表是空的,要换个动作类型再换回来才出现。

说明

这个版本改的是界面和几个新功能。托盘菜单、电源计划读写、遥测开关都只能在 Windows 上跑,自动化测试用的是假的托盘库和假 DOM,验证的是逻辑不是系统调用。真机上有问题继续报。

v0.4.2

v0.4.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 00:45

DeepSleep For Windows(Beta) 0.4.2

修托盘图标不出现。

消失的图标

用的是第三方托盘库,它调用 Windows 加图标的接口之后不看返回值。那个接口返回 0 表示没加上——托盘区还没建好、或者资源管理器重启过——库既不报错也不重试。于是程序在跑、日志在写,图标就是没有。

两种情况必中:

  • 开机自动启动的任务比资源管理器画出托盘区更早。每次登录都赌一次,输一次这次开机就没图标。
  • 资源管理器重启(崩了,或者你手动重启它)。托盘区里的图标全部被销毁,不主动往回加的程序再也回不来。

现在做法:

  • 加图标之前先等托盘区存在,最多等 60 秒。等不到也照常启动,只是记一条日志。
  • 图标加上之后一直盯着。托盘区消失再出现,就把图标删掉重新加一遍。
  • 顺带修了托盘心跳只在启动时写一次的问题。以前图标明明在,20 秒后所有问「托盘在不在」的地方都会答不在,窗口里显示的状态是错的。

新增:doctor 会告诉你托盘任务在不在

以前 doctor 只报后台服务和代理的状态,不问托盘。于是「图标没出现」和「托盘任务根本没装上」看起来一模一样。

现在多两行:

  tray task:   True
  tray alive:  False

tray task 是任务有没有注册,tray alive 是托盘进程最近 20 秒内有没有写心跳。

如果还是没有图标

Windows 11 默认把新出现的托盘图标收进任务栏右边的小箭头里。先点开那个箭头找一下。

还是找不到,把 %ProgramData%\DeepSleepForWindows\ 或 %LOCALAPPDATA%\DeepSleepForWindows\ 下面的日志发出来,里面有「托盘区等到了没有」和「图标加了几次」的记录。

说明

这个版本只改了 Windows 专用的那段代码,写完没有在真机上验证过。判断依据是那个库的源码里确实不看返回值、以及设置可见性会短路,但没在 Windows 上跑过。有问题继续报。

v0.4.1

v0.4.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 00:40

DeepSleep For Windows(Beta) 0.4.1

修托盘图标不出现。

消失的图标

用的是第三方托盘库,它调用 Windows 加图标的接口之后不看返回值。那个接口返回 0 表示没加上——托盘区还没建好、或者资源管理器重启过——库既不报错也不重试。于是程序在跑、日志在写,图标就是没有。

两种情况必中:

  • 开机自动启动的任务比资源管理器画出托盘区更早。每次登录都赌一次,输一次这次开机就没图标。
  • 资源管理器重启(崩了,或者你手动重启它)。托盘区里的图标全部被销毁,不主动往回加的程序再也回不来。

现在做法:

  • 加图标之前先等托盘区存在,最多等 60 秒。等不到也照常启动,只是记一条日志。
  • 图标加上之后一直盯着。托盘区消失再出现,就把图标删掉重新加一遍。
  • 顺带修了托盘心跳只在启动时写一次的问题。以前图标明明在,20 秒后所有问「托盘在不在」的地方都会答不在,窗口里显示的状态是错的。

如果还是没有图标

Windows 11 默认把新出现的托盘图标收进任务栏右边的小箭头里。先点开那个箭头找一下。

还是找不到,把 %ProgramData%\DeepSleepForWindows\ 或 %LOCALAPPDATA%\DeepSleepForWindows\ 下面的日志发出来,里面有「托盘区等到了没有」和「图标加了几次」的记录。

说明

这个版本只改了 Windows 专用的那段代码,写完没有在真机上验证过。判断依据是那个库的源码里确实不看返回值、以及设置可见性会短路,但没在 Windows 上跑过。有问题继续报。

v0.4.0

v0.4.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Nov 13:00

DeepSleep For Windows(Beta) 0.4.0

这个版本把几处根子上的问题改了。

不用管理员权限也能打开

以前双击打不开、必须右键「以管理员身份运行」,是因为程序一启动就管 Windows 要管理员权限,被拒绝之后就没有窗口了。

现在窗口本身就是普通权限运行,不再要权限。只有装后台服务、改电源计划内容、关遥测这几个动作才提权,而且只是弹一个只做那一件事的小进程,窗口留在原地等你。

程序有一份自己的副本

任务里写死的是那份副本的路径,不是你下载的那个文件。

以前你从下载文件夹跑起来,任务就指着「下载」文件夹里的 exe。你把下载清空了,后台就没了,而且没有任何提示。

现在程序启动时会把自身复制到 %LOCALAPPDATA%\DeepSleepForWindows\app\,用 SHA-256 判断副本是不是当前这个版本:不一样就替换,一样就不动。任务永远指这个固定路径。

后台不会莫名其妙消失

计划任务改成用 XML 注册,多写了这几项:

  • 任务停了自动重启,一分钟后再来,最多十次
  • 不设运行时长上限(默认是三天,到点就杀,看起来就像自己消失)
  • 电池供电时也照常运行
  • 不允许同时跑两份
  • 错过启动时间的话,一有机会就补上

守护进程用 SYSTEM 身份注册,开机就起,不用等人登录。代理和托盘用当前登录用户。

托盘图标

以前的任务写的是「登录时启动」,而你装的时候早就登录过了,所以它要等到下次开机才会出现。

现在装完立刻启动三个任务。窗口里也会直接告诉你图标到底起来没有。

微软遥测

系统页多了一个开关,关掉就是真关:

  • 注册表策略全部写成禁止
  • DiagTrack 等相关服务停掉并设为禁用
  • 遥测域名写进 hosts 屏蔽
  • 计划任务里相关的也禁用

打开或关闭都是即时生效,不需要重启。开关的状态是从机器上读回来的,不是记着「你点过」。

读取这些状态全部走结构化接口(注册表、服务管理器、任务 XML),不解析 sc query 或 schtasks 的输出,所以中文系统的结果和英文系统一样准。

其它

  • 新增 task-xml 命令,可以导出计划任务的 XML 看它到底会做什么
  • 新增 start / stop 命令
  • selftest 会同时检查托盘图标能不能画出来
  • 命令行输出不再在中文系统上乱码
  • 构建和测试全部在 GitHub Actions 上跑,CI 会真的把任务 XML 交给调度器验证一遍,也会验证程序副本确实被复制出来

v0.3.8

v0.3.8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Nov 14:36

DeepSleep For Windows(Beta) 0.3.8

修复双击无响应、WebView2 初始化失败、进程残留锁文件等核心问题。

修复

  • 双击启动无响应:非管理员双击时,提权标记未被命令行解析器识别,导致提权副本启动即报错退出。现已修复命令行解析,--winsleep-elevated 标记正确识别。
  • WebView2 初始化失败 (0x80070578):设置 WEBVIEW2_USER_DATA_FOLDER 环境变量与 pywebview 设置,指向 ProgramData 目录,解决默认位置不可用导致的初始化异常。
  • 后台服务启动后写不进日志:日志文件由提权窗口创建归管理员所有,普通用户运行的守护进程无法写入。现在设置日志时自动补齐用户写权限(core/acl.py)。
  • 进程残留锁文件阻塞启动:守护进程启动时清理 window.lock,防止异常退出留下的锁文件误判为有窗口在运行。
  • 计划任务写死旧路径:安装任务现在永远指向当前 exe 位置,界面显示任务路径与当前 exe 是否一致,启动按钮等待守护进程应答。

改进

  • 自动清理 WebView2 用户数据目录:避免旧版本残留数据导致初始化异常。

其它

  • 版本号同步到 0.3.8
  • CI 校验 tag / version.py / pyproject.toml 三者版本一致

v0.3.7

v0.3.7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Nov 12:16

DeepSleep For Windows(Beta) 0.3.5

主窗口自动提权、托盘图标可见、启动更快。

新增/改进

  • 主窗口自动提权:双击启动时,若检测到非管理员权限,会自动请求提权并重新启动。这样就能直接注册计划任务、切换电源计划,不用再手工右键“以管理员身份运行”了。
  • 托盘图标默认可见(Windows 11):改用 pystray 的 Windows 11 原生后端,图标不再默认被收进“显示隐藏的图标”里。
  • 启动速度优化:窗口启动时去掉了部分不必要的日志初始化,体感打开更快。

修复

  • 后台服务在主窗口关闭后停止:主窗口关闭时不再强制结束进程,而是只是隐藏;后台守护进程、代理进程、托盘进程仍然在后台运行,日志持续写入。
  • 非管理员启动无法看到主窗口:现在双击会自动请求提权,提权成功后重新启动并显示窗口。
  • 主程序双击到主窗口内容加载完成耗时过长:去掉了窗口启动时的冗余日志初始化,webview 直接加载本地 HTML,体感打开更快。

其它

  • 版本号同步到 0.3.5
  • 自动裁剪日志不再写入“已裁剪”记录(后台服务自动裁剪不写日志,手动点击才写)

v0.3.6

v0.3.6 Pre-release
Pre-release

Choose a tag to compare

@Mofan2020 Mofan2020 released this 10 Nov 11:34

DeepSleep For Windows(Beta) 0.3.5

主窗口自动提权、托盘图标可见、启动更快。

新增/改进

  • 主窗口自动提权:双击启动时,若检测到非管理员权限,会自动请求提权并重新启动。这样就能直接注册计划任务、切换电源计划,不用再手工右键“以管理员身份运行”了。
  • 托盘图标默认可见(Windows 11):改用 pystray 的 Windows 11 原生后端,图标不再默认被收进“显示隐藏的图标”里。
  • 启动速度优化:窗口启动时去掉了部分不必要的日志初始化,体感打开更快。

修复

  • 后台服务在主窗口关闭后停止:主窗口关闭时不再强制结束进程,而是只是隐藏;后台守护进程、代理进程、托盘进程仍然在后台运行,日志持续写入。
  • 非管理员启动无法看到主窗口:现在双击会自动请求提权,提权成功后重新启动并显示窗口。
  • 主程序双击到主窗口内容加载完成耗时过长:去掉了窗口启动时的冗余日志初始化,webview 直接加载本地 HTML,体感打开更快。

其它

  • 版本号同步到 0.3.5
  • 自动裁剪日志不再写入“已裁剪”记录(后台服务自动裁剪不写日志,手动点击才写)