Skip to content

Repository files navigation

Controller Launcher

Controller Launcher opens your preferred game launcher when a supported controller connects to Windows. It runs quietly in the background and reacts to Windows device events, so there is no polling loop and no tray icon.

Screenshots

Controller Launcher settings

The settings app detects Steam's installed executable and lets you choose a different launcher or browse to any program.

Early listener build using 0% CPU and 0.6 MB in Task Manager

The listener remains idle until Windows reports a supported controller connection. The Task Manager screenshot shows the earlier executable name; current releases use controller-launcher.exe.

Features

  • Opens Steam, Playnite, GOG Galaxy, Epic Games Launcher, or a custom program
  • Ignores connection events while the selected program is already running
  • Starts automatically when you sign in to Windows
  • Uses about 1 MB of private memory while idle
  • Includes a separate settings app that can be closed after saving
  • Does not launch when an 8BitDo Ultimate 2C is powered off

Supported controllers

  • 8BitDo Ultimate 2C using the 2.4 GHz receiver
  • Sony DualShock 4 v2 over Bluetooth
  • Xbox Series X|S Wireless Controller over Bluetooth
  • GameSir Nova Lite in Xbox Bluetooth mode

The current hardware IDs are defined in src/main.rs. Reports and pull requests for additional controller IDs are welcome.

Install

Download ControllerLauncher-Setup.exe from the latest GitHub release and run it. The installer adds:

  • the background connection listener;
  • the Controller Launcher Settings app;
  • a Start menu shortcut;
  • an automatic startup entry for the current Windows user; and
  • an uninstaller in Windows Installed Apps.

Open Controller Launcher Settings, choose a preset or browse to an executable, and save. The settings window does not need to stay open.

How the 8BitDo power-off safeguard works

The Ultimate 2C receiver uses PID_301C while idle and exposes PID_310A when the controller is active. Controller Launcher listens only for the active interface. When the controller powers off and the receiver returns to its idle interface, nothing is launched.

Build from source

Requirements:

  • Windows 10 or 11
  • Rust stable with the MSVC target
  • .NET Framework 4 compiler (included with Windows development tools)
  • Inno Setup 6 for the packaged installer

Run:

.\build.ps1

The listener, settings app, and installer are written to target\release and dist. The GitHub Actions workflow performs the same release build.

For a local development installation:

powershell -ExecutionPolicy Bypass -File .\install.ps1

Remove that development installation with:

powershell -ExecutionPolicy Bypass -File .\uninstall.ps1

License

MIT

About

Launch Steam, Playnite, GOG, Epic, or another app when a supported controller connects to Windows.

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages