A GNOME Shell extension that automatically synchronizes your GNOME accent colors with OpenRGB devices.
- 🎨 Automatically syncs GNOME accent colors to all OpenRGB devices
- 🔄 Real-time color synchronization when accent color changes
- ⚙️ Configurable sync settings and delays
- 🔌 Automatic reconnection handling for OpenRGB
Wanna build a GNOME extension with OpenRGB support? The implementation of the OpenRGB-SDK in this repo might help you
- GNOME Shell 45+
- OpenRGB server running and accessible, preferable with
--mode directflag - Node.js 20+ and pnpm for building from source
# Clone the repository
git clone https://github.com/evertonstz/openrgb-sync-accent-color.git
cd openrgb-sync-accent-color
# Install dependencies
pnpm install
# Build the extension
pnpm run build:all
# Install locally
pnpm run install
# Package for distribution
pnpm run pack
# Run unit and integration tests
pnpm test
# Development workflow (lint + test + build)
pnpm run dev
# Lint and format code
pnpm run check:fixFor the extension to work properly, OpenRGB needs to be running in server mode. You can set this up as a systemd user service for automatic startup.
Create a systemd user service file at ~/.config/systemd/user/openrgb.service:
[Unit]
Description=OpenRGB server mode
After=graphical-session.target
[Service]
ExecStartPre=/usr/bin/udevadm settle
ExecStart=/usr/bin/openrgb --server --server-host 127.0.0.1 --server-port 6742 --mode direct --col>
ExecStop=/usr/bin/openrgb --client 127.0.0.1:6742 --mode direct --color 000000 --brightness 0
Restart=on-failure
Environment=DISPLAY=:0
Environment=XAUTHORITY=%h/.Xauthority
[Install]
WantedBy=default.targetThen enable and start the service:
# Reload systemd user configuration
systemctl --user daemon-reload
# Enable the service to start on login
systemctl --user enable openrgb.service
# Start the service immediately
systemctl --user start openrgb.service
# Check service status
systemctl --user status openrgb.serviceThis project was made possible thanks to the excellent work and documentation from:
- OpenRGB Documentation - Official OpenRGB SDK protocol documentation
- OpenRGB Python SDK - Python implementation that served as reference for protocol implementation
- Artemis OpenRGB Plugin - Excellent example of OpenRGB integration patterns
- OpenRGB.NET - C# SDK implementation providing additional protocol insights
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
