Home

Awesome

Steam-Deck.Auto-Disable-Steam-Controller

Script to Automatically disable the built in Steam Controller when an External Controller (or Mouse or Keyboard) is connected and then enable once they are disconnected.

"This is cool! How can I thank you?"

Why not drop me a sub over on my youtube channel ;) Chinballs Gaming

Also Check out all these other things I'm making

WORK IN PROGRESS!

This will probably have bugs, so beware! log bugs under issues!

:exclamation: This has only been tested on one Deck (eg mine)!

The Deck registers:

These will be ignored by this script.

Video Guide

https://youtu.be/0sACNVwWXw4

About

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 an External Controller is connected (either by Bluetooth or 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 all External Controllers are disconnected.

Update

This has been massively simplified over previous versions and should now would with any Controller (as long as it identifies itself as a "Joystick") and can also work with External Mouse & Keyboards.

Currently Works With

This script has been tested to work with the following Bluetooth Controllers:

The script also works with the following USB Controllers:

The script can also been configure to work with External Mouse & Keyboards both USB & Bluetooth, select your preferences on install

Installation

Via Curl (One Line Install)

In Konsole type curl -sSL https://raw.githubusercontent.com/scawp/Steam-Deck.Auto-Disable-Steam-Controller/main/curl_install.sh | bash

a sudo password is required (run passwd if required first)

Uninstallation

Run the following codes:

sudo rm -r /home/deck/.local/share/scawp/SDADSC #To delete the code

sudo rm -r /etc/udev/rules.d/99-disable-steam-input.rules #To delete the rule

sudo udevadm control --reload #To reload the service

You may need to reboot if you ran these lines when a bluetooth controller was connected.

Troubleshooting

Some basic logs are stored /tmp/scawp/SDADSC/debug.log, these are deleted on rebooting, may come in handy when raising an issue ;)