Automatically launch/close Steam Big Picture mode when a controller is connected or disconnected on linux.
- Works with both bluetooth and USB connections.
- (Optional) If Steam isn't already running it launches on controller connection.
- Keeps big picture open if a game is running when you disconnect the controller.
- Lightweight and runs in the background as a systemd service.
- Quick installer.
The tool should work on most distros from the Arch, Debian/Ubuntu, and Fedora families. It should also play nice with derivatives like CachyOS, Mint, Nobara etc. If your distro works (or doesn't) let me know so I can look into it
Setups I always test on:
- ✅ Arch + KDE Plasma (Wayland)
- ✅ CachyOS + Hyprland (Wayland)
- ✅ Ubuntu + Gnome (Wayland)
- ✅ Mint + Cinnamon (X11)
- ✅ Fedora + KDE Plasma (Wayland)
Tested with Xbox Wireless Controller both via bluetooth and USB, but should work with any controller
Arch based
Use your fav AUR helper
yay -S auto-big-pictureand run auto-big-picture-setup to go through setup
Note: After updates you will need to run
auto-big-picture-setupagain to apply the update.
Debian based
Download the latest .deb file from the releases page
Double click the file or install with:
sudo dpkg -i auto-big-picture_X.X-X_all.deb # Replace X's to match most up to date versionRun the setup:
auto-big-picture-setupEveryone else
Just clone the repo and run the installer script. It will guide you through the rest.
git clone https://github.com/goatvisuals/auto-big-picture.git
cd auto-big-picture
./install.shThe script will handle dependencies if needed (bluez/bluez-utils for Bluetooth mode)
Arch based
First run the uninstaller
auto-big-picture-uninstalland remove with your AUR helper yay -Rns auto-big-picture
Debian based
Run the uninstaller:
auto-big-picture-uninstallRemove the package:
sudo dpkg -r auto-big-pictureEveryone else
Just run the uninstaller and that's it.
./uninstall.shManual uninstall
If you prefer to manually uninstall, you can do it by stopping and disabling the service and then removing the files. The service file is always located at ~/.config/systemd/user/auto-big-picture.service, and the config/script is by default stored in ~/.config/auto-big-picture/auto-big-picture.py (or a different location you chose during installation).
1 Stop and disable the service:
systemctl --user stop auto-big-picture.service
systemctl --user disable auto-big-picture.service2 Reload systemd:
systemctl --user daemon-reload3 Remove the files (change last 2 paths if you chose a custom config dir):
rm -f ~/.config/systemd/user/auto-big-picture.service
rm -f ~/.config/auto-big-picture/auto-big-picture.py
rmdir ~/.config/auto-big-pictureIt's a python script that uses bluetoothctl polling to check bluetooth status and periodically checks /dev/input for USB devices. The game check just looks for processes running from your steamapps/common directory to avoid closing when in game (for example if batteries die or controller goes to sleep because of inactivity)