Skip to content

feat: 新增 --night-mode 夜间模式(蓝光衰减)支持#5

Merged
SMWHff merged 1 commit into
mainfrom
feat/night-mode
Jul 9, 2026
Merged

feat: 新增 --night-mode 夜间模式(蓝光衰减)支持#5
SMWHff merged 1 commit into
mainfrom
feat/night-mode

Conversation

@SMWHff

@SMWHff SMWHff commented Jul 9, 2026

Copy link
Copy Markdown
Owner

变更内容

新增 --night-mode 参数,利用现有的 SetDeviceGammaRamp API 实现蓝光衰减,原理与 f.lux 相同。

用法

# 使用预设强度(应用到所有显示器)
winrandr --night-mode light      # 减弱 20% 蓝光
winrandr --night-mode medium     # 减弱 50% 蓝光
winrandr --night-mode heavy      # 减弱 80% 蓝光

# 使用数值强度
winrandr --night-mode 0.3        # 减弱 30% 蓝光

# 指定显示器
winrandr --output DISPLAY1 --night-mode medium

涉及文件

  • winrandr/features/gamma.py — 新增 set_night_mode() 核心函数
  • winrandr/api.py — 重新导出 set_night_mode
  • winrandr/cli/parser.py — 新增 --night-mode 参数定义
  • winrandr/cli/handlers.py — 新增 _handle_night_mode 处理函数
  • winrandr/cli/__init__.py — 接入调度与全局操作分支
  • winrandr/cli/common.py — 加入 _MOD_OP_ATTRS
  • winrandr/__init__.py — 导出 set_night_mode

测试

  • ruff check . — 通过(新增代码无 lint 错误)
  • pytest tests/ -q — 400 passed(全部通过)

新增 --night-mode 参数,通过伽马校正表衰减蓝光通道实现夜间模式。
支持 light(20%)/medium(50%)/heavy(80%) 预设及 0.0-1.0 数值强度,
不带 --output 时批量设置所有显示器。

- gamma.py: 新增 set_night_mode() 核心函数
- api.py: 重新导出 set_night_mode
- cli/parser.py: 新增 --night-mode 参数
- cli/handlers.py: 新增 _handle_night_mode 处理函数
- cli/__init__.py: 接入调度与全局操作分支
- cli/common.py: 加入 _MOD_OP_ATTRS
- __init__.py: 导出 set_night_mode
@SMWHff SMWHff merged commit f4f5a91 into main Jul 9, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant