玩转openrgb,干掉Armoury Crate,节省宝贵内存
缘由
我的asus b760m有rgb,但是华硕Armoury Crate 确实比较臃肿,经常啥也没干它占用3-5%。而开源界有个openrgb,虽然看似简陋但是它小啊。于是采用python脚本+openrgb来玩转它。本方案应该也适用于其他rgb主板。
准备工作
1、下载openrgb,直接去它官网下载openrgb.org
安装好后第一次要扫描设备,错过了用rescan

这里注意,我第一次打开的时候虽然扫描到了设备,addressable 1 2 3,但是有个size让我填,其默认是0,其实这个地方size指的灯珠数量。常见风扇有6个,12个等,面板很多是64,数数量。
这种灯就是ws2812灯珠,5v供电,io信号。定义为+、io、空、-
address可控制每个灯珠的设备在华硕主板上add_gen2_1 或add_gen2_2插针上,这种灯珠的灯带比较贵,好几块1米。搜索5v灯带+ws2812即可,灯珠4个脚。

另外还有一个12v的接口,4针定义分别为12v、green、red、blue。
这个是12v共阳极只能整体变色,不能控制到具体哪个灯珠。这种灯带比较便宜,几块钱好几米。常搜索12vrgb灯带,灯珠4个脚或6个脚。我自己用200欧电阻降压直接接3v灯珠也测试通过,只是它不是我心里想的rgb而是grb线序。

2、安装python,并安装依赖和插件
pip install psutil
pip install openrgb-python
python脚本
import time
import psutil
from openrgb import OpenRGBClient
from openrgb.utils import RGBColor, DeviceType
# 连接到 OpenRGB(默认连接本地 6742 端口)
client = OpenRGBClient()
# 找到你的主板设备
device = None
for dev in client.devices:
if "ASUS" in dev.name or "PRIME" in dev.name: # 根据你的主板名称调整
device = dev
break
if device is None:
print("未找到主板设备,请在脚本中修改设备名称匹配条件")
print("可用的设备:")
for dev in client.devices:
print(f" - {dev.name}")
exit()
# 定义颜色映射规则
def get_color_by_cpu_usage(percent):
if percent <= 5:
return RGBColor(55, 55, 55) # 灰色
elif percent <= 10:
return RGBColor(0, 155, 0) # 绿
elif percent <= 15:
return RGBColor(0, 155, 55) # 绿青
elif percent <= 20:
return RGBColor(0, 155, 155) # 青
elif percent <= 25:
return RGBColor(0, 50, 150) # 蓝青
elif percent <= 30:
return RGBColor(0, 0, 150) # 蓝
elif percent <= 40:
return RGBColor(55, 0, 150) # 蓝紫
elif percent <= 50:
return RGBColor(128, 0, 128) # 紫
elif percent <= 60:
return RGBColor(155, 0, 50) # 玫红
elif percent <= 70:
return RGBColor(150, 0, 0) # 红
elif percent <= 80:
return RGBColor(128, 50, 0) # 橘
elif percent <= 90:
return RGBColor(200, 160, 0) # 黄
else: # >90%
return RGBColor(0, 0, 0) # 黑
print("开始监控 CPU 占用率,按 Ctrl+C 停止")
print("颜色规则:")
print(" 0-5% : 灰色")
print(" 5-10% : 绿色")
print(" 10-15% : 青绿")
print(" 15-20% : 青色")
print(" 20-25% : 青蓝")
print(" 25-30% : 蓝色")
print(" 35-40% : 蓝紫")
print(" 40-50% : 紫色")
print(" 50-60% : 玫红")
print(" 60-70% : 红色")
print(" 70-80% : 橘色")
print(" 80-90% : 黄色")
print(" 90%以上 : 灭灯")
print("-" * 40)
# 降低查询频率:每 2 秒更新一次
UPDATE_INTERVAL = 2
try:
last_color = None # 用于避免重复设置相同颜色
while True:
# 获取 CPU 占用率(采样间隔 2 秒)
cpu_percent = psutil.cpu_percent(interval=2)
# 根据占用率获取颜色
current_color = get_color_by_cpu_usage(cpu_percent)
# 只有颜色改变时才更新灯光(减少通信开销)
if last_color is None or (current_color.red != last_color.red or
current_color.green != last_color.green or
current_color.blue != last_color.blue):
device.set_color(current_color)
last_color = current_color
# 在控制台显示当前状态
color_name = {
(55, 55, 55): "灰色",
(0, 155, 0): "绿",
(0, 155, 55): "绿青",
(0, 155, 155): "青",
(0, 50, 150): "蓝青",
(0, 0, 150): "蓝",
(55, 0, 150): "蓝紫",
(128, 0, 128): "紫",
(155, 0, 50): "玫红",
(150, 0, 0): "红",
(128, 50, 0): "橘",
(200, 160, 0): "黄",
(0, 0, 0): "满载灭灯"
}.get((current_color.red, current_color.green, current_color.blue), "未知")
print(f"CPU占用率: {cpu_percent:5.1f}% -> {color_name} RGB({current_color.red:3d}, {current_color.green:3d}, {current_color.blue:3d})")
# 等待下一次更新
time.sleep(UPDATE_INTERVAL)
except KeyboardInterrupt:
print("\n\n已停止监控")
注意上面代码里面ASUS之类的是根据自己的主板品牌搜索设备,实际使用时要改成自己的。
运行上面的代码前,openrgb应该把SDK server打开。
设置开机自启脚本
在设置里可用软件setting里面直接设置

勾选start at login 最小化和服务即可。
win+r 运行 输入shell:startup就可以打开老系统才看见的启动文件夹。
在里面可以看见刚刚勾选自动启动生成的快捷方式。

然后新建一个bat文件,内容如下
@echo off
echo 正在启动 OpenRGB...
echo 等待 20 秒让 OpenRGB 初始化...
timeout /t 20 /nobreak
echo 启动 CPU 监控脚本...
python "d:\Documents\连接rgb.py"
pause
注意openrgb安装的位置和python脚本的位置。上文中bat保存的时候选择编码要是ansi编码,cmd是老东西,用utf-8这种通用编码它读不对,会造成异常。这样一通操作,就完成了。

有些朋友可能觉得时刻要运行个框不安逸。使用下面这个脚本,让脚本后台运行。
@echo off
if "%1"=="h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
timeout /t 20 /nobreak
python "d:\Documents\连接rgb.py"
openrgb的隐藏是对小图标点击show/hide
不过上面这个脚本运行后,要结束只能在任务管理器里面结束了。
最后分享一下这个
openrgb调整语言
在setting/general setting /language 里面选择简体中文即可

总结
![]()

这一番折腾后,整体cpu占用为0,整体内存占用28m。基本治好了我的强迫症。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)