This script installs the latest GE-Proton, installs NonSteamLaunchers under one unique Proton prefix folder in your compatdata folder path called "NonSteamLaunchers" and adds them to your Steam Library. It will also add the games automatically on every steam restart. So you can use them on Desktop or in Game Mode.
โถ๏ธ YouTube Tutorial ๐กบ๐กบ๐กบ https://youtu.be/sxMmI8I9G_g ๐กธ๐กธ๐กธ โถ๏ธ
๐ Step-by-step Article ๐กบ๐กบ๐กบ here ๐กธ๐กธ๐กธ ๐
"NSLGameScanner.service" is also live when you use this script and continues after the script is closed and even works after your Steam Deck has restarted. This works in the background as a service file to automatically add your games to your library on every Steam restart. Currently adds:
If you have any suggestions or improvements for this script, feel free to open an issue or submit a pull request.
You can donate to me on ko-fi, liberapay, or sponsor me on github or patreon
Install Docker. Once installed, a clean dev environment with a Docker container native to VSCode is spun up automatically.
/opt/venv/bin/python
) firstVSCode Extensions (Dev Container)
If VSCode isn't present or only the python portion (cf. __init__.py
) is being worked on, it's possible to just run a Docker container on its own. The container installs the correct version of python and any dependencies (e.g., ipython, rich) in requirements.txt
.
# navigate to directory with Dockerfile
cd .devcontainer/
# build image
docker build -t nonsteamlaunchers .
# run container
docker run -it --rm --name=mynonsteamlaunchers --workdir=/app -v $(pwd):/app nonsteamlaunchers bash
# exit container
exit
Useful for the python module(s), but extra compared to the dev container portion that covers the core shell script.
# create virtual environment
python -m venv .venv
# activate virtual environment
source .venv/bin/activate
# install dependencies
python -m pip install -r requirements.txt
Pre-commit hooks are installed via pre-commit
and are run automatically on git commit
.
Most importantly, ruff
is used to lint all python code.
pre-commit install
git commit
git add .
git commit -m "commit message"
--no-verify
flag.
git commit -m "commit message" --no-verify
While not currently enforced, by using conventional commits, it's possible to automatically generate changelogs and version numbers via release-please.
To help with that, the commitizen tool can be installed.
# install cz
npm install -g commitizen cz-conventional-changelog
# make repo cz friendly
commitizen init cz-conventional-changelog --save-dev --save-exact
npm install
# add file to commit
git add .gitignore
# run cz
ฮป git cz
cz-cli@4.3.0, cz-conventional-changelog@3.3.0
? Select the type of change that you're committing: chore: Other changes that don't modify src or test files
? What is the scope of this change (e.g. component or file name): (press enter to skip) .gitignore
? Write a short, imperative tense description of the change (max 81 chars):
(17) update .gitignore
? Provide a longer description of the change: (press enter to skip)
? Are there any breaking changes? No
? Does this change affect any open issues? No
[main 0a9920d] chore(.gitignore): update .gitignore
1 file changed, 131 insertions(+)
ฮป git push
TL;DR: The Ruff formatter is an extremely fast Python formatter, written in Rust. Itโs over 30x faster than Black and 100x faster than YAPF, formatting large-scale Python projects in milliseconds โ all while achieving >99.9% Black compatibility.
While it runs automatically on commits, it can also be run manually
# check for errors
ruff check .
# fix (some) errors automatically
ruff check . --fix
asdf plugin-add python
asdf plugin-add poetry https://github.com/asdf-community/asdf-poetry.git
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
Usage
asdf install
# install stable python
asdf install python <latest|3.11.4>
asdf global python latest
.shellcheckrc
excludes various bash language rules. Useful to control noise vs. legitimate warnings/errors when using the shellcheck extension.
This project is licensed under the MIT License. See the LICENSE
file for more information.