Skip to content

ndrco/Razeru-linux

Repository files navigation

Razeru Linux

A Linux user-space daemon that tracks the current keyboard layout and controls Razer lighting through OpenRazer.

Features

  • Layout-based scenes (static, gradient_shift, breath, wave_sweep)
  • Event-driven layout detection on GNOME (gsettings monitor) with polling fallback
  • Fixed keys (persistent custom color per key)
  • Keypress overlay effects (reactive / ripple) via evdev
  • Automatic config reload on file changes
  • GTK4 GUI (razeru-linux-gui) with color pickers and a visual fixed-keys editor

System Requirements

Install with apt:

  • python3-openrazer
  • python3-gi
  • gir1.2-gtk-4.0
  • python3-venv
  • python3-evdev

OpenRazer must already detect your device.

Installation

./scripts/install_user.sh

Quick Checks

~/.venvs/razeru-linux/bin/razeru-linux --list-devices
~/.venvs/razeru-linux/bin/razeru-linux --dump-capabilities
~/.venvs/razeru-linux/bin/razeru-linux --print-layout
~/.venvs/razeru-linux/bin/razeru-linux --once --verbose
~/.venvs/razeru-linux/bin/razeru-linux --validate-config
~/.venvs/razeru-linux/bin/razeru-linux-gui

GUI Overview

  • Layout Scene: set scene/effect and primary/secondary colors for each layout
  • Key Press: choose keypress effect color and blend mode (max / replace)
  • Fixed Keys: paint specific keys in a 6x22 matrix, erase, or clear all
  • General:
    • Disable All Effects keeps only static layout color
    • Sync Mouse Lighting With Keyboard applies layout color to mouse zones

Configuration

After installation, config is located at:

~/.config/razeru-linux/config.toml

See the example config:

cat examples/config.toml

poll_interval is used as a fallback/health-check interval. When GNOME event watcher is active, polling is reduced to max(1.0, poll_interval).

Note About evdev Keypress Effects

If keypress effects are enabled, the process needs access to /dev/input/event*. Usually this means running as a user in the input group.

systemd --user

systemctl --user status razeru-linux
journalctl --user -u razeru-linux -f
systemctl --user restart razeru-linux

The installer binds razeru-linux.service to graphical-session.target, so the daemon is restarted cleanly when the desktop session ends and starts again (helpful for GNOME Remote Login / RDP session switches).

The GTK GUI also includes a Restart Service button that runs the same systemctl --user restart razeru-linux.service command.

About

RAZER keyboard layout indicator for linux

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors