Skip to content

evertonstz/openrgb-sync-accent-color

Repository files navigation

OpenRGB Accent Color Sync

License: GPL v3 TypeScript GNOME Shell OpenRGB CI Status GitHub Release GitHub Downloads


Get it on GNOME Extensions

A GNOME Shell extension that automatically synchronizes your GNOME accent colors with OpenRGB devices.

Features

  • 🎨 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

Documentation

Wanna build a GNOME extension with OpenRGB support? The implementation of the OpenRGB-SDK in this repo might help you

Installation

Prerequisites

  • GNOME Shell 45+
  • OpenRGB server running and accessible, preferable with --mode direct flag
  • Node.js 20+ and pnpm for building from source

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:fix

OpenRGB Setup

For 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.

Systemd User Service (Recommended)

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.target

Then 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.service

Special Thanks

This project was made possible thanks to the excellent work and documentation from:

License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details.