Skip to content

Automatically launch/close Steam big picture mode when a controller is connected or disconnected on linux.

License

Notifications You must be signed in to change notification settings

goatvisuals/Auto-Big-Picture

Repository files navigation

Auto-Big-Picture 🎮

Automatically launch/close Steam Big Picture mode when a controller is connected or disconnected on linux.


Features

  • 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.

Supported Distros

Arch CachyOS Ubuntu Linux Mint Fedora Bazzite Nobara Pop!_OS Manjaro Garuda

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)

Supported Controllers

Tested with Xbox Wireless Controller both via bluetooth and USB, but should work with any controller


Installation

Arch based

Use your fav AUR helper

yay -S auto-big-picture

and run auto-big-picture-setup to go through setup


Note: After updates you will need to run auto-big-picture-setup again 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 version

Run the setup:

auto-big-picture-setup

Everyone 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.sh

The script will handle dependencies if needed (bluez/bluez-utils for Bluetooth mode)



Uninstall

Arch based

First run the uninstaller

auto-big-picture-uninstall

and remove with your AUR helper yay -Rns auto-big-picture


Debian based

Run the uninstaller:

auto-big-picture-uninstall

Remove the package:

sudo dpkg -r auto-big-picture

Everyone else

Just run the uninstaller and that's it.

./uninstall.sh

Manual 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.service

2 Reload systemd:

systemctl --user daemon-reload

3 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-picture


For the nerds (how does it work?)

It'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)

About

Automatically launch/close Steam big picture mode when a controller is connected or disconnected on linux.

Topics

Resources

License

Stars

Watchers

Forks