Skip to content

[新建] Matugen配色 #31

Open

Description

@macOS-Terminal

插件 @id

matugen-next

脚本

https://raw.githubusercontent.com/macOS-Terminal/splayer-matugen-plugin/main/matugen-next.js

说明

功能简介

让 SPlayer-Next 的配色实时跟随 Matugen 生成的 Material You 配色,并在「设置 → 外观设置 → 主题色来源」下拉框中新增 Matugen 选项。

换壁纸 → Matugen 重新配色 → 播放器秒级跟随,全程无需重启。

核心特性

  • 🎨 实时跟随:Matugen 每次生成新配色后约 1 秒内播放器自动换色,无需任何操作
  • 🧩 原生集成:下拉框新增「Matugen」选项,与「默认主题色 / 自定义主色 / 跟随封面 / 无主题色」并列
  • 🔄 免重启、免改启动参数:通过 Node inspector 通道注入渲染进程,首次注入后在主进程留常驻 agent,后续换色不再开关通道
  • 🪶 只传种子色:调色板由播放器自身用 material-color-utilities 生成,与原生配色完全一致,不硬编码颜色
  • 💾 状态持久化:重启后仍记得选择,并自动应用最新种子色
  • 🛡️ 零网络请求:只读本地 Matugen 输出与本机回环调试端口,不访问任何外部网络
  • 🌍 多平台:Linux 已实机验证;macOS / FreeBSD / Windows 已完成代码级适配

使用方式

  1. 设置 → 插件管理 → 本地导入 matugen-next.js
  2. 插件首次启动会自动向 matugen/config.toml 追加模板并写出种子色文件(可在设置中关闭,原文件自动备份)
  3. 设置 → 外观设置 → 主题色来源 → Matugen

项目地址与文档

技术说明

插件运行在 SPlayer-Next 的共享插件宿主(node:vm 沙箱,无 DOM)。为了在应用未开启 --remote-debugging-port 的前提下把颜色送进渲染进程,插件通过宿主 Buffer 取得真实 process,再用 process._debugProcess(mainPid) 临时开启主进程 inspector,注入一段常驻 agent 后延时 _debugEnd() 关闭;该 agent 轮询本插件状态文件并负责后续所有换色注入与渲染进程重载后的自动补回。

主题来源未新增真实 source 取值(避免破坏播放器内部枚举判断),而是在 store 上定义虚拟属性 matugenSource,内部映射为 source = 'custom' + customColor = 种子色 + imageBackground.matugenActive = true,因此播放器自身的 watch → applyThemeToDOM 链路完全照常工作。

已知限制

  • 依赖插件沙箱可访问宿主 Buffer(官方文档已说明插件沙箱不是安全边界),当前 apiLevel 5 可用
  • inspector 通道固定占用 127.0.0.1:9229;若该端口被占用则退回 CDP 模式
  • macOS / FreeBSD / Windows 为代码级适配,尚未真机验证

确认

  • 我对脚本内容与合法性负责

Activity

  1. github-actions commented on Nov 14, 2026

    @github-actions
    Contributor

    @macOS-Terminal ✅ 校验通过,新插件,已提交 PR 待维护者审查:#32

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    校验通过机器人静态校验通过

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions