pychroma 是一个调用 Razer Chroma SDK 的第三方 Python 库,可以让脚本在 Razer Synapse/Chroma Connect 中注册应用并控制键盘、鼠标、灯带等设备的灯效。仓库目前未归档,但最后一次代码推送停留在 2020 年,PyPI 包版本为 0.0.2,因此更适合学习和旧设备实验,不应默认认为兼容所有新版 Synapse。
兼容性说明:先确认 Razer Synapse 和 Chroma Connect 能识别设备。第三方库失效时不要关闭系统安全功能或安装来源不明的 SDK 补丁;优先查看 pychroma GitHub 仓库和 Razer 当前开发文档。
pychroma 当前维护状态与安装包名
项目的 setup.py 声明包名为 pychroma、版本 0.0.2、Python 3.6 及以上,并依赖 requests 和 pynput。旧文中的 pip install chroma 包名不正确,应使用:
py -m venv .venv
.venvScriptsactivate
python -m pip install --upgrade pip
python -m pip install pychroma
安装后可以运行 python -c "import pychroma; print(pychroma.__file__)" 检查实际加载位置。
准备 Chroma 应用配置 JSON
配置文件用于在 Chroma Connect 中显示应用名称、作者和支持设备。不要把私人邮箱或不准备公开的信息写进准备分享的示例。
{
"chroma": {
"developerName": "WorldCovert",
"developerContact": "contact@example.com",
"category": "application",
"supportedDevices": [
"keyboard", "mouse", "mousepad", "keypad", "headset", "chromalink"
],
"description": "Python Chroma lighting demo",
"title": "pychroma demo"
},
"devices": {
"keyboard": "Razer keyboard",
"mouse": "Razer mouse"
}
}
最小可运行的 pychroma 程序
from pychroma import Controller, Sketch
class DemoSketch(Sketch):
def setup(self):
self.frame_rate = 10
def update(self):
pass
def render(self):
pass
with Controller("config.json") as controller:
controller.run_sketch(DemoSketch)
运行脚本后,Synapse/Chroma Connect 应出现对应应用。没有设备时先检查 Synapse、模块安装和设备是否支持 Chroma SDK,而不是立即修改 Python 代码。
制作 HSV 彩虹流动效果
下面示例把 ChromaLink 切换为 HSV 模式,通过色相递增制造流动效果。设备分区数量并不统一,原测试笔记本映射为 4 个区域;其他设备需要查看库的映射和实际能力。
from pychroma import Controller, Sketch
class RainbowSketch(Sketch):
def setup(self):
self.frame_rate = 24
self.chromalink.color_mode("hsv")
self.hue = 0
def update(self):
self.hue = (self.hue + 5) % 360
def render(self):
variation = 36
for index in range(4):
color = ((self.hue - variation * index) % 360, 100, 100)
self.chromalink.set_array(index + 1, color)
with Controller("config.json") as controller:
controller.run_sketch(RainbowSketch)
刷新率越高,动画越流畅,但 CPU 占用和 SDK 通信频率也会上升。温度提示、状态灯等慢变化场景可以把刷新率降到 1-2 FPS。
pychroma 无法连接 Razer Synapse 怎么办
- 确认 Synapse 和 Chroma Connect 模块正在运行。
- 确认设备在 Synapse 内能正常显示基础灯效。
- 使用虚拟环境里的 Python 运行,避免导入了另一个同名包。
- 检查
config.json路径和 JSON 语法。 - 新版 Synapse 不兼容时,记录版本并查看项目 issue;不要盲目降级整套系统驱动。