Steam Play compatibility tool to run games using native Linux engines
GPL-2.0 License
Steam Play compatibility tool to run games using native Linux engines
Compatibility tool will work on any modern 64-bit Linux distribution. All packaged games are compiled for Steam Runtime Sniper environment and any additional dependencies are provided in the download.
Using Luxtorpeda with Steam native runtime may or may not work, but is not supported.
The packages.json for the supported packages and getting the latest versions will get updated on each launch of luxtorpeda, without any input needed from the user. New releases of the luxtorpeda client will need to be downloaded manually, but a new release of the client is not required when a package is created or updated, unless that package depends on a new feature (which will be noted in the release notes).
Close Steam.
Download latest version at https://github.com/luxtorpeda-dev/luxtorpeda/releases
Move and unpack tarball to compatibilitytools.d directory (create one if it does not exist):
$ cd ~/.local/share/Steam/compatibilitytools.d/ || cd ~/.steam/root/compatibilitytools.d/
$ tar xJf luxtorpeda-<version-number>.tar.xz
Start Steam.
In game properties window select "Force the use of a specific Steam Play compatibility tool" and select "Luxtorpeda".
Add Version
, select Luxtorpeda and press Install
You will need Rust, Cargo, OpenSSL, Godot4 and export templates.
Official method:
Terminal installation (for those who prefer the terminal):
Debian, Ubuntu, and variants: Open a terminal and run:
$ sudo apt install cargo libssl-dev godot
Fedora: Use the following command:
$ sudo dnf install openssl-devel rust cargo godot
Arch Linux: You know what to do:
$ sudo pacman -S openssl rust godot
You can either open Godot, go to settings and install the export templates from there.
If you prefer to use the terminal these commands should work:
$ mkdir -p ~/.local/share/godot/templates/4.2.2.stable/
$ wget https://github.com/godotengine/godot/releases/download/4.2.2-stable/Godot_v4.2.2-stable_export_templates.tpz
$ unzip -j Godot_v4.2.2-stable_export_templates.tpz -d ~/.local/share/godot/templates/4.2.2.stable/
Close Steam.
Clone the repository, then use makefile to trigger cargo build
and install:
$ git clone https://github.com/luxtorpeda-dev/luxtorpeda.git
$ cd luxtorpeda
$ make user-install GODOT=godot-path-here
Start Steam.
In game properties window select "Force the use of a specific Steam Play compatibility tool" and select "Luxtorpeda (dev)".
A configuration json file named config.json
will be located in the ~/.config/luxtorpeda/config.json
if the application has been run at least once. The defaults can be seen at https://github.com/luxtorpeda-dev/luxtorpeda/blob/master/src/config.rs. It has the following parameters:
disable_default_confirm
to true, or setting LUX_DISABLE_DEFAULT_CONFIRM=1 %command%
in the launch options of a particular game. Setting LUX_DISABLE_DEFAULT_CONFIRM=0 %command%
will enable the confirmation if the config variable is set to disabled for that particular game.LUX_STEAM_CLOUD=1 %command%
in the launch options of a particular game.Logs will be written to file if LUX_WRITE_LOGGING=1
is set. The log file will be located at ~/.local/state/luxtorpeda/luxtorpeda.log
.
A ~/.config/luxtorpeda/user-packages.json
file can be created, which will allow custom package information without having to change the normal packages.json file. This file should have the same format as packages.json, but can have either new games or overrides to existing games. See https://github.com/luxtorpeda-dev/luxtorpeda/issues/65 for more information.
When a prompt appears from the client, it will accept input from controllers, keyboard or mouse. These prompts can include the engine chooser, progress indicator, error notices, and questions. The input works the following way:
For using controllers in the engine itself, ensure that Steam Input is enabled, that a gamepad profile has been set, and that the Steam Input controller-specific option has been enabled, such as for Xbox or Playstation controllers.
Just click "Play" and Luxtorpeda will download and install the package for you. You need to select Luxtorpeda as a compatibility tool first, of course.
When you launch a game that supports multiple engines, a prompt will appear asking for the engine that should be downloaded and launched. Once the engine has been picked, a second prompt will ask if the engine should become the default. Launches after this if "Yes" is picked in this dialog will not ask for the engine again. A file can be deleted to restore the engine prompt for a particular game. The file will have the following format: ~/.config/luxtorpeda/<app_id>/default_engine_choice.txt
To go to the main website, go to https://luxtorpeda.org
To see a list of supported titles, go to https://luxtorpeda.org/packages
Want a specific game?
Check issues to see if we are working on it.
You can also make a package request by creating a new issue
You can also create a package yourself
You can use cargo
as with any Rust project; make
serves only as a convenient
frontend for packaging and triggering longer cargo
commands.
For the UI, the Godot editor is required. It can be downloaded from https://godotengine.org/download
flatpak run --command=bash -d --filesystem=home --share=network org.freedesktop.Sdk//21.08
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo build
. Then copy target/debug/libluxtorpeda.so
into the correct directory. The Godot project should be exportable using the engine on Steam and then copied into the correct directory.git pull
on the master branch.cargo install cargo-release
(https://github.com/crate-ci/cargo-release)cargo release version major
to do a dry run of the version update. Can also use minor, patch, etccargo release version major --execute
. Make sure to commit & push to git if needed.cargo release
to do a dry run of the release.cargo release --execute
if dry run successful. This step will push the git tags.