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>
This commit is contained in:
2026-07-21 12:18:10 -07:00
commit 6507f5f8b3
121 changed files with 15415 additions and 0 deletions

32
scripts/setup-linux.sh Normal file
View File

@@ -0,0 +1,32 @@
#!/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