1 个不稳定版本
0.0.5-pre | 2020年4月27日 |
---|---|
0.0.4 |
|
0.0.3 |
|
0.0.2 |
|
0.0.1 |
|
在 #night 中排名第4
2KB
nightlight
一个用于配置 macOS 上“夜视”功能的命令行工具 🌕🌖🌗🌘🌑
这个包同时也是一个 Rust 库。🦀
为什么?
macOS 上的“夜视”功能是一个方便的内置功能,理论上可以完成大多数第三方替代品(如 f.lux®)所能做到的事情。然而,到目前为止,没有方法可以通过程序配置夜视(无需进入系统偏好设置 GUI),这使得其当前的使用更加受限。
这个 nightlight
命令行工具旨在通过一些简单的命令来启用这种访问。(或者,通过库访问为其他 Rust 工具。)
安装
通过 Homebrew
brew install smudge/smudge/nightlight
通过 Cargo
设置 Rust/Cargo 并通过运行
cargo install nightlight
使用方法
首先,请确保您正在运行 macOS Sierra 或更高版本。
命令行界面
手动开关
开启夜视(直到明天日出或日出前)
nightlight on
关闭夜视
nightlight off
查看当前开关状态
nightlight status
根据当前状态切换开关
nightlight toggle
控制温度
查看当前温度设置
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 包的依赖项
nightlight = "0.3.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仓库/命令行界面 - Rust的objc crate的维护者
- Carol Nichols和Steve Klabnik为Rust官方书籍做出了贡献
- ABH, AF, CB, JP, 和 MK与我一起头脑风暴crate名称
许可证
nightlight
在MIT许可证下发布。
依赖关系
约2.5MB
约55K SLoC