一聚教程网:一个值得你收藏的教程网站

热门教程

AppleScript 自动化控制显示器色温设置脚本

时间:2026-08-10 16:07:49 编辑:袖梨 来源:一聚教程网

AppleScript无法直接控制macOS显示器色温,但可通过shell命令开关Night Shift、模拟快捷键(如⌥⌘N)、UI脚本操作设置界面,或借助快捷指令App实现更可靠自动化,所有方式均需提前在隐私设置中授权。

AppleScript 本身无法直接控制 macOS 显示器的色温(如 Night Shift 或 True Tone 的开关与色温强度),因为这些功能受系统私有 API 保护,不向 AppleScript 开放。但你可以通过间接方式实现自动化——调用系统命令、触发快捷键或操作系统偏好设置界面。

使用 shell 命令切换 Night Shift

macOS 提供了 defaultstouch 等命令行工具来修改 Night Shift 状态(需配合重启相关进程)。虽然不能精细调节色温滑块,但可开关 Night Shift 或设为“从日落到日出”等预设模式。

  1. 启用 Night Shift(暖色温):

    defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.displayNightShiftAgent.* AutoNightShiftEnabled -bool true

  2. 禁用 Night Shift:

    defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.displayNightShiftAgent.* AutoNightShiftEnabled -bool false

  3. 执行后需重启 displaynightshiftagent 进程:

    killall -KILL displaynightshiftagent

模拟键盘快捷键快速切换

如果你已为 Night Shift 设置了快捷键(系统设置 > 键盘 > 快捷键 > 显示器 > “打开或关闭夜览”),AppleScript 可模拟按键触发:

  1. 确保快捷键已启用(例如默认是 ⌥⌘N
  2. 脚本示例:

    tell application "System Events" to key code 47 using {option down, command down}

    (对应 ⌥⌘N;key code 47 是 N 键)

  3. 注意:需在“系统设置 > 隐私与安全性 > 自动化”中允许该脚本控制“系统事件”

通过 UI 元素操作(有限但可控)

若需精确设置色温滑块(如拖动 Night Shift 色温强度),可借助 UI Scripting 操作“显示器”设置面板。稳定性较低,依赖界面元素层级和本地化语言,仅建议用于固定环境(如英文系统):

  1. 打开“系统设置 > 显示器 > Night Shift”
  2. 用 AppleScript 定位并点击/拖动滑块(需逐级遍历 AXSlider 元素)
  3. 示例片段(简化版,实际需更多容错):

    tell application "System Settings"

    activate

    end tell

    tell application "System Events"

    tell process "System Settings"

    click button "Display" of group 1 of scroll area 1 of window "System Settings"

    delay 0.5

    click row 1 of table 1 of scroll area 1 of group 1 of window "Display"

    -- 后续定位 slider 并 set value...

    end tell

    end tell

更可靠替代方案:Shortcuts + AppleScript 混合

macOS 的“快捷指令”App 支持“设置夜览”动作(含开启/关闭/设定时间范围),且能接收 AppleScript 调用:

  1. 在“快捷指令”中新建一个快捷指令,添加“设置夜览”动作(选择“开启”或“自定义色温”)
  2. 保存为“NightShiftOn”等名称
  3. AppleScript 中运行:

    do shell script "shortcuts run 'NightShiftOn'"

  4. 此方式无需权限弹窗,兼容性更好,推荐日常使用

不复杂但容易忽略:所有涉及系统设置的操作,首次运行前务必在“系统设置 > 隐私与安全性 > 自动化”中授权对应脚本或应用访问权限。

热门栏目