Script to Automatically disable the built in Steam Controller when a dock is connected and then enable once disconnected.
This will probably have bugs, so beware! log bugs under issues!
When using External Controllers with the Steam Deck, sometimes the build in Steam Controller gets in the way by either not allowing the use of an External Controller at all, Having to Reassign Controller in the config each time you play a game, or interfering with Multiplayer games. This script simply listens to udev
for when the dock is connected via USB then disables the Built in Steam Controller so that the (first) External Controller Defaults to Player One.
The Built in Steam Controller will be disabled until the dock is disconnected.
To add another device, run lsusb
to identify the device you'd like to add, then run the following command:
usb_addr=$(lsusb | grep -i 'My USB Device' | cut -d' ' -f2,4 | cut -d: -f1 | tr ' ' '/')
sudo udevadm info --query=property --name "/dev/bus/usb/$usb_addr" | grep PRODUCT | cut -d'=' -f2 >> /etc/SDADSC/conf/simple_device_list.txt
In Konsole type:
curl -sSL https://raw.githubusercontent.com/Sarev0k/Steam-Deck.Auto-Disable-Steam-Controller/main/curl_install.sh | bash
a sudo
password is required (run passwd
if required first)
sudo touch /etc/SDADSC/conf/disabled
to re-enable:
sudo rm /etc/SDADSC/conf/disabled
Run the following commands:
# To delete the code
sudo rm -r /etc/SDADSC
# To delete the rule
sudo rm -r /etc/udev/rules.d/99-disable-steam-input.rules
# To reload the service
sudo udevadm control --reload