Ever wanted to launch your Epic Games Store and GOG games installed through Heroic Games Launcher directly from the terminal, Lutris, Steam or any other frontend game launcher? Heroic Bash Launcher lets you do this very easily.
You can now launch your game directly without having to open Heroic at all. There's no need to run heroic
to find the game's launch command or write your own launch script with Legendary! Thus saving your time!
- Heroic 2.0.0+
- Zenity
Since the program makes use of an executable, you will need Python version 3.8+ and PyInstaller to build the code.
To test the program, open the terminal in the func
directory and use the following command to build -
pyinstaller HeroicBashLauncher.py --onefile -p <fullpath>/HeroicBashLauncher/func
This will generate an executable stored in the dist
folder. Copy the executable, paste it in HeroicBashLauncher
and run it.
Head over to the Releases page. Then download and extract the .zip file of the latest release.
Execute the program by simply double-clicking the HeroicBashLancher executable (You might need to enable executable permission). You should be greeted by the Process Finished dialog at the end.
Using the Heroic Games Launcher AppImage? Make sure to read this.
You can run your game by executing the game's launch file using the terminal like ./RocketLeague.sh
or using your preferred game launcher/manager, just point the executable path to the game's launch file (~/HeroicBashLauncher/GameFiles/RocketLeague.sh
). Simple!
Here's a guide on Adding Heroic games to Steam and Lutris.
Don't copy or move the game files and launch scripts anywhere else, it won't work.
Heroic Bash Launcher automatically detects installed games and creates a launch file for each game. It basically reads the .json
files stored in ~/.config/heroic/GamesConfig
.
The launch file is created using the bash shell script, i.e. .sh
files. For example, if I have Rocket League installed, it will create the launch file titled "RocketLeague.sh". All these launch files will be available in the GameFiles folder.
Every game's launch file will contain all the launch parameters according to the game's setting in Heroic Games Launcher, including cloud syncing for supported games.
Here's an example below of "RocketLeague.sh" -
#!/bin/bash
#Game Name = Rocket League
#App Name (Legendary) = Sugar
#Overrides launch parameters
cd .. && ./HeroicBashLauncher "Rocket League" "Sugar" "/home/redromnon/.config/heroic/GamesConfig/Sugar.json" "epic"
(WINE_FULLSCREEN_FSR=1 WINE_FULLSCREEN_FSR_STRENGTH=2 WINEESYNC=1 mangohud --dlsym /opt/Heroic/resources/app.asar.unpacked/build/bin/linux/legendary launch Sugar --wine '/home/redromnon/.config/heroic/tools/wine/Wine-7.2-GE-2/bin/wine64' --wine-prefix '/home/redromnon/.wine' || (echo "---CANNOT CONNECT TO NETWORK. RUNNING IN OFFLINE MODE---" ; WINE_FULLSCREEN_FSR=1 WINE_FULLSCREEN_FSR_STRENGTH=2 WINEESYNC=1 mangohud --dlsym /opt/Heroic/resources/app.asar.unpacked/build/bin/linux/legendary launch Sugar --offline --wine '/home/redromnon/.config/heroic/tools/wine/Wine-7.2-GE-2/bin/wine64' --wine-prefix '/home/redromnon/.wine' )) || (zenity --error --title="Error" --text="Failed to launch games. Consider posting the log as an issue" --width=200 --timeout=3)
- Ask user for a default path for saving game launch files
- Additional game launch options support (Eg. ARK)
- Flatpak Support
- GUI
If the program doesn't produce the game bash files (launch files), update the launch parameters or displays an error dialog, consider running the program from the terminal like ./HeroicBashLauncher
and post the log as an issue.
This project is under the GNU GPLv3 license. You can take a look at the LICENSE.md for more information.