#night #shift #macos #configuring #cli #🌕🌖🌗🌘🌑

bin+lib nightlight

macOS上配置“夜视仪”的命令行工具 🌕🌖🌗🌘🌑

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

MIT 许可证

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名称

许可证

nightlightMIT许可证 下发布。

依赖项

~1.8–3MB
~74K SLoC