#shift #macos #night #configuring #cli #renamed #nightlight

已废弃 nightshift

<已重命名为nightlight>

1 个不稳定版本

0.0.5-pre2020年4月27日
0.0.4 2020年4月27日
0.0.3 2020年4月25日
0.0.2 2020年4月22日
0.0.1 2020年4月21日

#night 中排名第4

MIT 许可证

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

许可证

nightlightMIT许可证下发布。

依赖关系

约2.5MB
约55K SLoC