Files
8bitdo-Command-Center/scripts/setup-linux.sh
oceans2alaska 6507f5f8b3 Initial release of 8BitDo Control Center
Provide a Linux desktop controller configuration app with evdev input, uinput remapping, profiles, calibration, and reconnect recovery.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 12:18:10 -07:00

33 lines
1.0 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
# Installs the least-privilege access rule needed for evdev/uinput. This
# script intentionally changes host state only when the user runs it.
readonly GROUP_NAME="8bitdo"
readonly RULE_FILE="99-8bitdo-control-center.rules"
readonly PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
readonly SOURCE_RULE="${PROJECT_ROOT}/resources/udev/${RULE_FILE}"
readonly DESTINATION_RULE="/etc/udev/rules.d/${RULE_FILE}"
if [[ ! -f "${SOURCE_RULE}" ]]; then
echo "Missing udev rule: ${SOURCE_RULE}" >&2
exit 1
fi
if ! getent group "${GROUP_NAME}" >/dev/null; then
sudo groupadd --system "${GROUP_NAME}"
fi
sudo install -Dm644 "${SOURCE_RULE}" "${DESTINATION_RULE}"
sudo usermod -aG "${GROUP_NAME}" "${USER}"
sudo udevadm control --reload-rules
sudo udevadm trigger --subsystem-match=input
cat <<EOF
Installed ${DESTINATION_RULE}.
${USER} was added to the ${GROUP_NAME} group. Log out and back in (or reboot)
before starting 8BitDo Control Center, then verify permissions in Settings.
EOF