Repository navigation
Linux
Tested on Arch/CachyOS (KDE Plasma) and Zorin OS 18 (Ubuntu 24.04, GNOME on Wayland). The release package runs on Ubuntu 20.04 and newer, Debian 11+, Mint, Zorin, Pop!_OS and current Arch and Fedora.
tar xzf padbridge-<version>-linux-x86_64.tar.gz
install -Dm755 padbridge-<version>-linux-x86_64/padbridge ~/.local/bin/padbridge
padbridge # with windowThen set up the permissions below.
PadBridge runs as a normal user. It needs read access to the pads
(/dev/input/event*) and write access to /dev/uinput for the virtual pad
and the virtual keyboard/mouse. Both go through the input group. If
Sunshine is installed, the uinput rule is usually there already. Otherwise:
echo 'KERNEL=="uinput", SUBSYSTEM=="misc", OPTIONS+="static_node=uinput", GROUP="input", MODE="0660", TAG+="uaccess"' \
| sudo tee /etc/udev/rules.d/60-padbridge-uinput.rules
sudo usermod -aG input "$USER" # then log out and back in
sudo udevadm control --reload && sudo udevadm triggerEvery game pad Linux knows shows up in the monitor, also when plugged in or out: the Xbox 360 controller through the kernel driver xpad, the PS4 controller through hid-playstation, and other pads too.
By default the kernel lets only root set controller LEDs. These rules give the
input group write access. Replug the pad afterwards.
Xbox 360 (LED ring):
echo 'ACTION=="add", SUBSYSTEM=="leds", KERNEL=="xpad*", RUN+="/bin/chgrp input /sys%p/brightness", RUN+="/bin/chmod 0664 /sys%p/brightness"' \
| sudo tee /etc/udev/rules.d/71-padbridge-xpad-led.rules
sudo udevadm control --reloadPS4 controller (light bar):
echo 'ACTION=="add", SUBSYSTEM=="leds", KERNEL=="*054C:*|*:rgb:indicator", RUN+="/bin/chgrp input /sys%p/brightness", RUN+="/bin/chmod 0664 /sys%p/brightness", RUN+="/bin/chgrp input /sys%p/multi_intensity", RUN+="/bin/chmod 0664 /sys%p/multi_intensity"' \
| sudo tee /etc/udev/rules.d/72-padbridge-ds4-led.rules
sudo udevadm control --reloadWithout these rules everything else still works; the monitor then shows "Nicht verfügbar" (not available) for the LED ring.
PadBridge needs a current Rust. The cargo/rustc packages of Ubuntu and
Debian are too old, so install Rust with rustup:
# Arch / CachyOS
sudo pacman -S --needed rustup alsa-lib pkgconf && rustup default stable
# Debian / Ubuntu / Mint / Zorin
sudo apt install build-essential libasound2-dev pkg-config curl
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
git clone https://github.com/ThrowingSnow/PadBridge.git
cd PadBridge/rust
cargo build --release -p padbridge
install -Dm755 target/release/padbridge ~/.local/bin/padbridgeA binary built on a rolling-release system (Arch) needs that system's newest
glibc and does not start on Ubuntu. For a package that runs everywhere,
scripts/build-linux.sh builds in an Ubuntu 20.04 container (needs Docker).