6个版本
0.2.0 | 2020年6月22日 |
---|---|
0.1.1 | 2020年5月8日 |
0.0.7 | 2020年5月1日 |
0.0.6 | 2020年4月29日 |
#87 in macOS和iOS API
用于 nightshift
25KB
555 行
nightlight
macOS上配置“夜视仪”的命令行工具 🌕🌖🌗🌘🌑
此crate也是一个Rust库。 🦀
为什么?
macOS上的“夜视仪”功能是一个方便的内置功能,理论上可以完成大多数第三方替代方案(如 f.lux®)所能完成的事情。然而,截至目前,尚无法通过编程方式配置夜视仪(无需进入系统偏好设置GUI),这使得其当前的使用更加受限。
此 nightlight
CLI旨在通过几个简单的命令来实现这种访问。(或者,通过库访问其他Rust工具。)
安装
通过Homebrew
brew tap smudge/smudge
brew install nightlight
通过Cargo
设置Rust/Cargo 并运行以下命令从crates.io安装
cargo install nightlight
用法
首先,确保您正在运行macOS Sierra或更高版本。
命令行界面
手动开关
开启夜视仪(直到明天日出或日出)
nightlight on
关闭夜视仪
nightlight off
查看当前开关状态
nightlight status
控制温度
查看当前温度设置
nightlight temp
设置颜色温度(一个从0到100的数字)
nightlight temp 70
计划
查看当前计划
nightlight schedule
从日落开始至日出开始计划
nightlight schedule start
开始自定义计划(12小时或24小时时间格式)
nightlight schedule 19:45 6:00
nightlight schedule 7:45pm 6am
停止当前计划
nightlight schedule off
Rust API
除了命令行界面外,nightlight
还可以作为其他Rust crate的依赖项引入
nightlight = "0.2.0"
以下是一个示例 fn
,它切换夜视仪的开关,更改计划和颜色温度首选项,然后再次切换功能
extern crate nightlight;
use nightlight::{NightLight, Schedule};
fn main() {
let night_light = NightLight::new();
if night_light.status().is_on() {
night_light.off().unwrap(),
}
println!("Setting schedule and temperature...");
night_light.set_schedule(Schedule::SunsetToSunrise).unwrap();
night_light.set_temp(70).unwrap();
println!("Turning Night Shift on...");
night_light.on().unwrap();
}
待办事项
- 查看夜视仪当前状态的能力
- 启用/禁用日出/日落计划的能力
- 启用/禁用自定义计划的能力
- 确保更改计划不会影响开关状态。
- 以正确格式显示时间(12小时制)
- 使用系统配置进行时间解析/格式化(12小时制与24小时制)。
- API改进
- 考虑命令输出:简洁、易于阅读、机器可解析。
- 完整库文档
- 解析时间表/时间的测试覆盖率。
- 使用模拟/存根ObjC库的测试。
- 支持“自动调整亮度”功能。
- 其他发布机制(如
brew
) - 跨平台支持(例如Windows的“夜间模式”)
贡献
- 检查问题跟踪器并考虑创建新问题。
- 分支项目并为您自己的贡献创建新分支。
- 编写、提交并将您的贡献推送到您的分支。
- 确保项目构建(
cargo build
)并且功能仍然按预期工作。 - 提交拉取请求。
感谢
- 苹果团队在macOS Sierra中引入了此功能
- GitHub用户
jenghis
提供了(现已归档的) nshift 仓库/CLI - Rust objc crate 的维护者
- Carol Nichols 和 Steve Klabnik 编写的 官方Rust书籍
- ABH、AF、CB、JP 和 MK 与我一起头脑风暴crate名称
许可证
nightlight
在 MIT许可证 下发布。
依赖项
~1.8–3MB
~74K SLoC