8 个版本
0.5.1 | 2023年10月31日 |
---|---|
0.5.0 | 2023年3月8日 |
0.4.3 | 2023年2月26日 |
0.3.1 | 2023年2月7日 |
#677 在 命令行工具
28KB
537 行
caffeinate2
caffeinate
但它是用Rust编写的,并具有更多选项。保持您的Mac处于唤醒状态。
当前状态
开发中。运行良好,但我想在1.0.0版本之前添加更多功能并记录不同类型的睡眠。
安装
GitHub版本
从这里下载最新版本:这里。
Homebrew
此功能将在1.0.0版本之前不可用。
Cargo
cargoinstall caffeinate2
用法
Usage: caffeinate2 [OPTIONS] [COMMAND]...
Arguments:
[COMMAND]... Wait for given command to complete (takes priority above timeout and pid)
Options:
-v, --verbose Verbose mode
--dry-run Dry run. Don't actually sleep. Useful for testing
--drop-root Drop root privileges in command. Some programs don't want to work as root, but you need root to disable sleep entirely
-d, --display Disable display sleep
-m, --disk Disable disk idle sleep
-i, --system Disable idle system sleep. Default if no other options are specified
-s, --system-on-ac Disable system sleep while not on battery
-e, --entirely Disable system sleep entirely (ignores lid closing)
-u, --user-active Declare the user is active. If the display is off, this option turns it on and prevents it from going into idle sleep
-t, --timeout <DURATION> Wait for X seconds. Also supports time units (like "1 day 2 hours 3mins 4s")
-w, --waitfor <PID> Wait for program with PID X to complete
-h, --help Print help
-V, --version Print version
睡眠计时器(按优先级排序)
命令
直到命令完成,睡眠被禁用。您应该用引号将命令括起来,尽管有时不需要。如果指定了命令,则忽略超时和PID。
caffeinate2"sleep 5"
超时和PID
睡眠被禁用一定时间或直到具有指定PID的程序完成。如果都指定了,则等待其中一个完成。
超时可以是秒数或持续时间字符串。例如,您可以使用 -t 600
或 -t 10m
等待10分钟。您还可以创建更具描述性的持续时间,例如 -t "1 hour and 30 minutes"
,但它只查看第一个字母(因此“3 movies”只是3分钟)。任何不是数字后跟字母的东西都将被忽略(上一个例子中的“ and”)。您必须使用引号才能使其生效。否则,它将尝试解析任何超过空格的东西作为命令,并忽略超时。
caffeinate2-t600
caffeinate2-t"1小时30分钟"
caffeinate2-w1234
caffeinate2-t600 -w1234
以上都不是
将一直禁用睡眠,直到您按下 Ctrl+C
。
caffeinate2
许可证
本项目采用MIT许可证 - 请参阅 许可证文件 了解详细信息。
待办事项
- 使超时和PID一起工作
- 找出如何伪造tty(例如,
caffeinate2 brew list
未着色) - 更好地打印睡眠类型
- 记录所有睡眠类型(它们有些模糊)
- 不读取plist获取系统休眠状态
- 通过Grand Central Dispatch获取PID信息,而不是使用奇怪的
lsof
技巧 - 延期,因为它很混乱,目前只是正常工作™️
依赖项
~8–20MB
~274K SLoC