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.
The settings app detects Steam's installed executable and lets you choose a different launcher or browse to any program.
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.
- 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
- 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.
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.
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.
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.ps1The 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.ps1Remove that development installation with:
powershell -ExecutionPolicy Bypass -File .\uninstall.ps1
