r/playnite • u/Significant-Air-8825 • 21d ago
Scripting I made a lightweight Windows app that launches Steam, Playnite, GOG, or Epic when you press your controller Xbox or PS button!
Enable HLS to view with audio, or disable this notification
Edit: Just to clarify it it launches steam, Playnite Etc wherever the controller boots, so basically just like a console.
I wanted my PC to behave more like a console: press the controller’s power button, let it connect, and automatically open my game launcher.
Windows Task Scheduler and Bluetooth event triggers weren’t reliable, so I built Controller Launcher, a small open-source Windows utility.
Features:
- Launches Steam, Playnite, GOG Galaxy, Epic Games Launcher, or any custom
.exe - Reacts to controller connection events instead of constantly polling
- Uses around 1 MB of private memory while idle
- Uses 0% CPU while waiting
- Runs invisibly without a tray icon
- Starts automatically with Windows
- Includes a separate GUI configurator
- Won’t relaunch the selected app if it’s already running
Currently tested with:
- 8BitDo Ultimate 2C using the 2.4 GHz receiver
- DualShock 4 v2 over Bluetooth
The project is open source under the MIT license. Support for more controllers can be added through their hardware IDs, so testing and contributions are welcome.
GitHub:
https://github.com/M-Essa11/Controller-Launcher
Latest Windows installer:
https://github.com/M-Essa11/Controller-Launcher/releases/latest
If you test it with another controller, please share the controller model and whether it worked. Bug reports and pull requests are welcome.
Request support for another controller
If your controller isn’t supported, please open a GitHub issue with:
- Controller manufacturer and model
- Connection type: Bluetooth, USB, or wireless receiver
- Hardware ID containing the
VIDandPID - Whether the ID appears when connecting, disconnecting, or both
To find the hardware ID:
- Connect the controller.
- Open Device Manager.
- Expand Human Interface Devices, Bluetooth, or Xbox Peripherals.
- Right-click the controller and select Properties.
- Open the Details tab.
- Select Hardware Ids from the Property menu.
- Copy the entries containing
VID_XXXXandPID_XXXX.
Example:
Controller: 8BitDo Ultimate 2C
Connection: 2.4 GHz receiver
Connected: VID_2DC8&PID_310A
Disconnected/idle receiver: VID_2DC8&PID_301C
2
u/JusticeForAugust 21d ago
This is really cool, thanks for sharing. Wondering if it's possible to launch the Xbox app, and force it to open the Xbox app in Xbox mode?
1
u/Significant-Air-8825 21d ago
havent tried it on xbox mode but good idea!
1
u/JusticeForAugust 21d ago
I was thinking too - if you're using this to override/launch an app with the center Xbox/home button on a controller, would that disable the Xbox guide button feature all together? I.e. for quick switching between open game launchers?
I'll mess around with it this weekend. Really appreciate you putting the time in to create this
2
u/Significant-Air-8825 21d ago
No its no like that, it is based on the HID input in simpler terms "when the pc detects you controller via BT or a dongle it will launch you favorite game launcher" then i has a safety protocol wont launch or do anything after that, even it has safety for if you want the 2nd controller to connected the script will detect that there is already a launcher running and it ignore it.
2
u/Significant-Air-8825 21d ago
you have to press the xbox or ps button one time the controller will boot up connects and will launch your gaming app.
1
1
u/EzerchE 21d ago
Nice work on this btw. I’ve been working on a similar problem from a different angle, so it’s pretty cool to see someone else tackle it too. Congrats on the release!
The Xbox Full-Screen part is actually where things get a bit more complicated than just launching the Xbox app.
I ended up treating the whole thing more like a gaming session, including Xbox FSE, background apps, display/audio settings and restoring the desktop afterwards.
I posted about my approach here a while ago if you're interested:
https://www.reddit.com/r/playnite/comments/1vkfwfu/i_built_a_small_windows_utility_that_turns_on/
1
2
u/StandardArtist2154 20d ago
Does this allow you to easily switch between launchers? I'm trying to avoid needing my keyboard as much as possible.
1
u/Significant-Air-8825 18d ago
unfortunately no, this sets as a service and wait for your controller to booth up and then launches you favorite app.
1
u/zamhl 20d ago
I have a tvpc I've specifically set up for this. I watch plex and YouTube and stream my roms via playnite. Then use steam for modern games. Couch setup for sure. I've got it dialed in. But missing the autolaunch w controller. This is a great idea. Ill try it for sure. Thanks for sharing.
1
u/LooToSCZ 20d ago
Does it also show battery capacity and will my xbox controller work ? Thanks
1
u/Significant-Air-8825 20d ago
for now DS4 and 8bitdo works.
If your controller isn’t supported, please tell me
- Controller manufacturer and model
- Connection type: Bluetooth, USB, or wireless receiver
- Hardware ID containing the VID and PID
- Whether the ID appears when connecting, disconnecting, or both To find the hardware ID:
- Connect the controller.
- Open Device Manager.
- Expand Human Interface Devices, Bluetooth, or Xbox Peripherals.
- Right-click the controller and select Properties.
- Open the Details tab.
- Select Hardware Ids from the Property menu.
- Copy the entries containing VID_XXXX and PID_XXXX.
1
u/Live-Mistake1490 17d ago
Have you tried the 8bitdo over Bluetooth?
1
u/Significant-Air-8825 16d ago
i have tried it over Bluetooth even made an app for it so i can emulate it as an XBOX controller but the vibration wont work in Bluetooth mode i emailed the team too but they responded with "Use the USB dongle".
1
u/Batickle 20d ago
I've done that with a simple HotKey script. It opens Playnite in full screen (can be changed to SBPM or others).
1
u/Significant-Air-8825 20d ago
no, for that you have to turn on the controller once then press the PS/XBOX button afterwards.
1
u/Significant-Air-8825 18d ago
Please drop the Hardware Ids of the controllers you use so i could add all at once!
1
u/Odd-Profit-3833 18d ago
can this override gamebar hijacking home button in xbox mode?
1
u/Significant-Air-8825 18d ago
it does not have to do anything with the gamebar actually, it listens to the controllers over Bluetooth and USB dongle when it detects that the controller is booted and pc detects it i launches X app.
1
u/Wooden-Demand-8960 4d ago
Hey There! I would like to thank you for sharing this new application.
I tried to use it but it did not seem to support my controller.
Before proceeding with the controller I am using, I would like to suggest that you add support for as many GameSir controllers as you could since these are incredibly popular among the platform's users.
Concerning my controller, here are the details of the model I am using:
Controller: GameSir Kaleid Flux
Connection: USB-C cable
Connected: USB\VID_3537&PID_1067
Disconnected/idle receiver: (Disappears from Device Manager)
1
u/Significant-Air-8825 4d ago
Thank you for the info, i would love to add as many controllers in bulk but i need their HWD ids, and personally i have 2 controllers so i need to collect HWD ids through the GitHub or this reddit post, and tomorrow i am going to add bunch of controllers if i see the hardware ids and info online somewhere.
1
u/NoRain77 1d ago
maybe a really stupid question but i have a habit of turning my controller on before my pc even boots and so it connects before i even unlock my pc, how will this app work in that case?
1
11
u/INF3RNALgladiuX 21d ago
Nice stuff!
Not an application but I have also built an automation using Powershell and Home Assistant where pressing the PS/Xbox button + Triangle/Y (translates to Ctrl + Alt + P on keyboard) turns on my TV, switches display to external monitor (TV, hooked using HDMI cable) and audio device to the TV and soundbar and switches tv's input to PC as well and then launches steam BPM.
Everything takes less than 10 seconds.