From a5c084ba3e85bd9a9b0fa0fce5134f38cea921ff Mon Sep 17 00:00:00 2001 From: x9cf9w73cv7y <43073889+x9cf9w73cv7y@users.noreply.github.com> Date: Mon, 4 May 2026 17:19:09 +0200 Subject: [PATCH 1/2] Add support for non-sudo environments in udev script --- scripts/openrgb-udev-install.sh | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/scripts/openrgb-udev-install.sh b/scripts/openrgb-udev-install.sh index e96661d1e..2e5c465da 100755 --- a/scripts/openrgb-udev-install.sh +++ b/scripts/openrgb-udev-install.sh @@ -3,15 +3,23 @@ # Download udev rules file wget https://openrgb.org/releases/release_0.9/60-openrgb.rules +# Check if sudo is available +if command -v sudo &>/dev/null; then + PRIVILEGED_CMD="sudo" +else + echo "sudo not found. Falling back to run0" + PRIVILEGED_CMD="run0 -i" +fi + # If we don't have write permissions then we're running on an immutable distro -if sudo test -w /usr/lib/udev/rules.d; +if PRIVILEGED_CMD test -w /usr/lib/udev/rules.d; then # Move udev rules file to udev rules directory - sudo mv 60-openrgb.rules /usr/lib/udev/rules.d + PRIVILEGED_CMD mv 60-openrgb.rules /usr/lib/udev/rules.d else - sudo mv 60-openrgb.rules /etc/udev/rules.d + PRIVILEGED_CMD 60-openrgb.rules /etc/udev/rules.d fi # Reload the rules -sudo udevadm control --reload-rules -sudo udevadm trigger +PRIVILEGED_CMD udevadm control --reload-rules +PRIVILEGED_CMD udevadm trigger From 2825603dcd95afb25b31383d62d4d45b194d72dc Mon Sep 17 00:00:00 2001 From: x9cf9w73cv7y <43073889+x9cf9w73cv7y@users.noreply.github.com> Date: Mon, 4 May 2026 17:58:05 +0200 Subject: [PATCH 2/2] Improve udev rules installation script Refactor script to handle udev rules installation in a batch. --- scripts/openrgb-udev-install.sh | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/scripts/openrgb-udev-install.sh b/scripts/openrgb-udev-install.sh index 2e5c465da..0e2957082 100755 --- a/scripts/openrgb-udev-install.sh +++ b/scripts/openrgb-udev-install.sh @@ -1,7 +1,4 @@ -#! /bin/bash - -# Download udev rules file -wget https://openrgb.org/releases/release_0.9/60-openrgb.rules +#!/bin/bash # Check if sudo is available if command -v sudo &>/dev/null; then @@ -11,15 +8,24 @@ else PRIVILEGED_CMD="run0 -i" fi -# If we don't have write permissions then we're running on an immutable distro -if PRIVILEGED_CMD test -w /usr/lib/udev/rules.d; -then - # Move udev rules file to udev rules directory - PRIVILEGED_CMD mv 60-openrgb.rules /usr/lib/udev/rules.d +# Run all privileged operations in one batch +$PRIVILEGED_CMD bash <<'EOF' +set -e + +# Determine target directory +if test -w /usr/lib/udev/rules.d; then + TARGET_DIR="/usr/lib/udev/rules.d" else - PRIVILEGED_CMD 60-openrgb.rules /etc/udev/rules.d + TARGET_DIR="/etc/udev/rules.d" fi +# Download udev rules file +wget -O "$TARGET_DIR/60-openrgb.rules" \ + https://openrgb.org/releases/release_0.9/60-openrgb.rules + # Reload the rules -PRIVILEGED_CMD udevadm control --reload-rules -PRIVILEGED_CMD udevadm trigger +udevadm control --reload-rules +udevadm trigger + +echo "Done. Rules installed to $TARGET_DIR" +EOF