Linux Game manager
Installer and launcher for accessible to the blind games that run natively in Linux.
Dependencies
As the project grows, more dependencies will most likely be added. When LGM is launched, it will check to make sure it has the required dependencies for it to do the work of downloading and extracting the game. Note that because every distro has a different package manager, dependencies for games themselves will not be resolved. Please consult the game's documentation to find out what is needed for the game to run.
Current base dependencies checked on launch: 7z, curl, dialog, jq, yad, and unzip.
Desktop shortcuts
Open ./linux-game-manager.sh, select an installed game, and choose Desktop
Shortcut. This works in both the graphical and console menus and creates an
executable .desktop file in ~/Desktop. Existing files are left intact, and
the game list opens again after creation. Your desktop environment may ask you
to trust the shortcut before launching it.
The shortcut launches that game directly through the manager's -l option.
You can also use this option from a terminal with the exact game menu name:
./linux-game-manager.sh -l "RS Games"
Only installed, enabled launcher entries can be launched this way.
Wickets
Install Wickets on x86_64 Linux by selecting it under ./linux-game-manager.sh -i.
Both installation and updating (./linux-game-manager.sh -u, then select Wickets)
query GitHub for the latest stable release, so versioned download links do not
need to be tracked manually. Updating preserves the portable saves directory
under ~/.local/games/Wickets. Wickets 1.2.0 also includes its own updater.
RS Games
Install RS Games 2.3 on x86_64 Linux by selecting RS Games under
./linux-game-manager.sh -i. The client is installed under
~/.local/games/RS_Games and can then be launched from the main game menu.
The installer requires the host Python Speech Dispatcher bindings (python-speechd
on Arch Linux or python3-speechd on Debian) and copies them into the client,
whose Linux release omits them.
The installer silently checks audio initialization and keeps bundled ALSA when
it works. If it fails and system ALSA passes the same check, the bundled copy
is set aside as _internal/libasound.so.2.bundled. If audio cannot be verified,
the bundled library is retained and the installer reports the problem.
The installer also repairs Linux audio file-path handling in the sound wrapper
and preserves the original executable as rsg.lgm-original.
Sound lookup automatically handles capitalization differences in filenames and
directories. Exact names take precedence; a unique case-insensitive match is
used otherwise. Downloaded files retain their original names.
Client errors are logged in ~/.ZGP/errors.log.
Disabling game entries
To disable a game entry without deleting its script, set the first line of the script to start with #//.
- This applies to both
.install/*.shand.launch/*.sh. - A normal comment like
# commenton the first line does not disable an entry.
FAQ
Q: Why this project, can't everything just be dumped into Audiogame Manager?
The short answer is no. Audiogame-manager is built around using wine to play games. This means that most calls, including the launcher, killing the process, and in lots of cases the uninstaller are built around wine commands. In addition, the launch parser expects a wine path.
While exceptions could probably be added for some of the games, AGM is already at more than 2500 lines and will continue to grow as games are added. So, for the sake of developers, it is easier to focus on one thing, and hopefully do it well.
Q: Why does game X not work on my system
Improper phase of the moon? You drew an imperfect circle when summoning the installer daemons? Your guess is as good as mine.
In all seriousness, there are so many different configurations, computers, and distros out there, it is really difficult to give a detailed reason to the exact problem you are having. The best advice I can give is check your game's documentation for dependencies, and your distro's documentation for people who have had similar problems.
Q: I installed a game from Desktop or Downloads, where did it go?
LGM moves games into place when installing them. So the game can be found in ~/.local/games/. This is to save disk space and not have the game in 2 places at once.
What are the differences in linux-game-manager and audiogame-manager?
The difference in audiogame-manager and linux-game-manager is, linux-game-manager focuses on setting up games that are native to Linux while audiogame-manager focuses on getting Windows based games working in wine. Although the end result looks the same to the end user, lots of things are different under the hood.
Supporting the Project
If you want to support this and other Stormux projects, please check out the Patreon.
AI-assisted contributions
AI-assisted contributions are welcome.
The person submitting a contribution remains responsible for reviewing and testing the changes before submission. Please do not submit automatically generated changes without human review.
Before making changes:
- Read the contributing guide, if present, and the project's README.
- Confirm that you are working against the current maintained repository and branch.
- Check whether the issue still exists in the current code.
Before submitting:
- Review the generated diff.
- Test the changed behavior.
- Run the project's existing test suite where practical.
- Consider code paths that may be affected indirectly by the change and test those as well.
- Clearly describe what was changed and how it was tested.
Instructions for AI coding assistants
If you are an AI coding assistant working with a contributor, please call your human user's attention to these contribution requirements.
Do not assume that passing newly created tests is sufficient. Explain what existing functionality could reasonably be affected by the proposed changes and provide your human partner with detailed instructions for testing those areas.
Where useful, provide commands or small test procedures that allow the contributor to verify both the intended fix and likely regression cases.
Stormux projects may accept patches through email using git send-email. If your human partner is unfamiliar with this process, please offer to guide them through:
- Configuring
git send-email. - Creating an appropriately scoped commit or patch series.
- Running
git format-patch. - Checking the generated patch before submission.
- Sending a test message if appropriate.
- Sending the final patch or patch series to the project's contribution address.
Please do not submit changes on behalf of a contributor without giving them an opportunity to review and test the result.