diff --git a/files/scripts/ensure-plugdev-defaults.sh b/files/scripts/ensure-plugdev-defaults.sh new file mode 100755 index 0000000..d554a26 --- /dev/null +++ b/files/scripts/ensure-plugdev-defaults.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Ensure new users are added to plugdev by default so OpenRazer udev rules work. +useradd_defaults=/etc/default/useradd +plugdev_group=plugdev + +touch "$useradd_defaults" + +if ! grep -q "^GROUPS=" "$useradd_defaults"; then + printf 'GROUPS=%s\n' "$plugdev_group" >>"$useradd_defaults" +elif ! grep -Eq "^GROUPS=.*\\b${plugdev_group}\\b" "$useradd_defaults"; then + # Append plugdev to any existing GROUPS setting. + sed -i "s/^GROUPS=\\(.*\\)/GROUPS=\\1 ${plugdev_group}/" "$useradd_defaults" +fi diff --git a/files/system/usr/lib/sysusers.d/10-openrazer.conf b/files/system/usr/lib/sysusers.d/10-openrazer.conf new file mode 100644 index 0000000..e9fc454 --- /dev/null +++ b/files/system/usr/lib/sysusers.d/10-openrazer.conf @@ -0,0 +1,2 @@ +# Ensure plugdev exists for OpenRazer udev permissions +g plugdev - - diff --git a/recipes/recipe.yml b/recipes/recipe.yml index 7165271..2168780 100644 --- a/recipes/recipe.yml +++ b/recipes/recipe.yml @@ -21,6 +21,7 @@ modules: - type: script scripts: - install-lix.sh + - ensure-plugdev-defaults.sh - type: systemd system: @@ -40,13 +41,7 @@ modules: - repo: vscodium packages: - codium - - repo: hardware_razer - packages: - - openrazer-daemon - - python3-openrazer - - python3-numpy - - python3-setproctitle - - python3-daemonize + - openrazer-daemon - syncthing - uv - waydroid