Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 25 additions & 11 deletions scripts/openrgb-udev-install.sh
Original file line number Diff line number Diff line change
@@ -1,17 +1,31 @@
#! /bin/bash
#!/bin/bash

# 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

# Run all privileged operations in one batch
$PRIVILEGED_CMD bash <<'EOF'
set -e

# If we don't have write permissions then we're running on an immutable distro
if sudo 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
# Determine target directory
if test -w /usr/lib/udev/rules.d; then
TARGET_DIR="/usr/lib/udev/rules.d"
else
sudo mv 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
sudo udevadm control --reload-rules
sudo udevadm trigger
udevadm control --reload-rules
udevadm trigger

echo "Done. Rules installed to $TARGET_DIR"
EOF