diff --git a/vbx.install b/vbx.install new file mode 100644 index 0000000000000..586eefbe970d7 --- /dev/null +++ b/vbx.install @@ -0,0 +1,42 @@ + +post_install() { + echo "==> Setting up VBX permissions..." + + # Reload udev rules + echo "==> Reloading udev rules..." + udevadm control --reload-rules >/dev/null 2>&1 || true + udevadm trigger --subsystem-match=input --action=change >/dev/null 2>&1 || true + + # Determine installing user + CURRENT_USER="${SUDO_USER:-$USER}" + + if [ -n "$CURRENT_USER" ] && [ "$CURRENT_USER" != "root" ]; then + echo "==> Adding user '$CURRENT_USER' to 'input' group..." + if ! id -nG "$CURRENT_USER" | grep -qw input; then + usermod -a -G input "$CURRENT_USER" 2>/dev/null || true + fi + + echo "==> Applying ACLs to existing input devices..." + for dev in /dev/input/event*; do + [ -e "$dev" ] && setfacl -m "u:${CURRENT_USER}:rw" "$dev" 2>/dev/null || true + done + + echo "" + echo "==> VBX setup complete for user '$CURRENT_USER'" + echo " ACLs apply to current devices; future ones are handled by udev (TAG+=uaccess)." + echo " Run 'vbx' to test keyboard sounds." + else + echo "==> Could not determine install user." + echo " To enable VBX manually, run: sudo usermod -a -G input \$USER" + fi +} + +post_upgrade() { + post_install +} + +post_remove() { + echo "==> Removing VBX udev rules..." + udevadm control --reload-rules >/dev/null 2>&1 || true + udevadm trigger --subsystem-match=input --action=change >/dev/null 2>&1 || true +}