This is currently a Work In Progress.
WARNING - HIGHLY VOLATILE
We're now undergoing the upstreaming process for the new
steam-support interface, as such
consider the existing snaps broken, and you in need of a new snapd with the new support. We're
also going to drop
devmode support now and move to
strict confinement, so please consider
the vast majority of this document incorrect.
Why what now?
This is an ongoing effort to produce snaps to provide the Steam* client, Linux Steam Integration project, and Solus packages to create a true "universal app" variant of Steam that will work on every Linux distribution in the same way, while mitigating many of the runtime issues.
This isn't just a "native Steam" effort, LSI is a highly complex project that seeks to replace the runtime almost entirely, and fix many issues. Integrating LSI is also a large undertaking - thus Solus is now seeking to share our work on our own runtime and LSI implementation with the rest of the Linux world for a pain-free and consistent gaming experience.
A large element of this is also to help developers and studios targeting Linux as a platform to have a singular target that would work across all Linux distributions, and provide peace of mind that their games would work as intended. Additionally, as the keepers of LSI, we can rapidly deploy changes to LSI and the runtime to better support the games and alleviate regressions before they hit users.
runtime-snaps is a Solus project
Note that for now we'll not be focusing on strict confinement, so the snaps
should be installed with
--devmode until such point as proper confinement
We are not currently planning on making an SDK available, as the runtime will primarily be derived from the Solus repositories, with minor layering happening within the local runtimes.
As and when we have the core components in place we can start discussions around SDK + debugging availability.
How to build and run
You must be on Solus to build these snaps. You do not need to be on Solus to run these snaps.
- snapd 2.29.2 + patches
- solbuild (ensure this has been initialised on
- https://github.com/snapcore/snapd/commit/ec4f3c0774620dd2bb6df765b337fa8a67d2afc8 (patch)
- https://github.com/snapcore/snapd/pull/4207 (patch)
Note: All of these patches are in Solus
After installing the relevant snapd, ensure your apparmor rules are applied and snapd has been restarted. Be lazy, reboot. People do it.
For Ubuntu users you may use the Snappy Edge PPA
Install from the store
sudo snap install --edge solus-runtime-gaming sudo snap install --devmode --edge linux-steam-integration snap run linux-steam-integration
Build solus-runtime-gaming (Solus only)
Build linux-steam-integration (Solus only)
Installation (custom build)
You must first remove the existing installs if you've already run this step before:
sudo snap remove solus-runtime-gaming linux-steam-integration
The installation order is important, as LSI depends on the base runtime snap:
sudo snap install --dangerous solus-runtime-gaming*.snap sudo snap install --dangerous --devmode linux-steam-integration*.snap
snap run linux-steam-integration
Run with debug
This will drop you to a shell within the runtime and allow you to execute LSI's Steam shim with debugging enabled.
snap run --shell linux-steam-integration $ export LSI_DEBUG=1 $ $SNAP/linux-steam-integration
Tracking some currently known shortcomings here:
- No udev roles exposed to host. Talking with upstream to improve this in a new snapd interface
- No testing yet done outside Solus! Need to test biarch + multiarch distros with NVIDIA & open source drivers.
- "Home" for Steam is within the snap root. Removing snap will uninstall those local games
--devmodeinstall as confinement isn't yet finished.
LSI_DEBUGwill cause crashes on Ubuntu (potentially stack size issue?)
Copyright © 2017 Solus Project
runtime-snaps is available under the terms of the
The distributed binary snap will fall under multiple licenses, consult the included packages to determine licensing details for the entire binary image.
* Some names may be claimed as the property of others.