Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DoNotSleep

菜单栏小工具,让 CGEventSourceSecondsSinceLastEventType(kCGEventSourceStateCombinedSessionState, kCGAnyInputEventType) 永远返回很小的值,绕过基于系统空闲时间的"离开/隐身"检测(Teams、Slack 等)。

原理

定时向 HID 层注入一个零位移mouseMoved 事件(发到 .cghidEventTap):

  • 系统空闲计时器被重置 → idle 检测失效
  • 光标位置不变、无点击、无按键 → 不影响正常使用
  • 注入事件不需要辅助功能权限

使用

./build-app.sh        # 编译并打包 DoNotSleep.app(ad-hoc 签名)
open DoNotSleep.app   # 运行,出现在菜单栏(咖啡杯图标)

菜单功能:启用/暂停、重置间隔(15/30/60/120 秒)、立即重置一次、登录时启动、实时显示当前空闲秒数。

也可以不打包直接跑:

swift run           # 菜单栏运行(“登录时启动”需打包后才可用)

自测

./DoNotSleep.app/Contents/MacOS/DoNotSleep --self-test

等待 3 秒无输入后注入事件,打印注入前后的空闲秒数,验证机制是否生效。

About

A app to keep your mac awake

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages