I was having a few issues with various steam games on my Arch system. In particular Dying Light had path problems and a segfault in libc, and wouldnt run at all using native libraries. Day of Infamy also had horrendous load times. So I tried the snap of steam maintained by the solus team, and both games ran flawlessly. The reasoning behind this is that the snap uses ubuntu backend libraries. Like it or not, most games are built to use ubuntu libraries by default, and many only support ubuntu. This makes perfect sense as to why using the steam snap works without issues. I now run all my steam games via snap. Here’s how I did it:

Install and configure snap:

pacaur -S snapd-git
sudo systemctl enable --now snapd.socket
sudo systemctl start snapd.refresh.timer

Create an Ubuntu One account if you don’t have one, then login via snap:
https://login.ubuntu.com/+login

sudo snap login [email protected]

Install the snap solus runtimes and steam snap:

wget https://packages.solus-project.com/lsi/solus-runtime-gaming_0.0.0_amd64.snap
wget https://packages.solus-project.com/lsi/linux-steam-integration_0.6_amd64.snap
sudo snap remove solus-runtime-gaming linux-steam-integration
sudo snap install --dangerous solus-runtime-gaming*.snap
sudo snap install --dangerous --devmode linux-steam-integration*.snap

Notes:

  • Requires –devmode install as confinement isn’t finished yet
  • Requires –dangerous :Install the given snap file even if there are no pre-acknowledged signatures for it, meaning it was not verified and could be dangerous (–devmode implies this)

Setup your additional storage drives:

The snap reads from /run/media but does not read/allow access to folders outside its sandbox.  /run/media is where things like usb sticks are usually mounted, which is why the snap reads from there.  This is for if you have your steam library mounted on a different drive. What you’ll want to do here, is create sub folders in /run/media for any storage/external drives you have. If you have them already mounted in fstab, you’ll want to change them in fstab to the new path. For example, I have a 4tb drive which I was mounting to /mnt/Storage via fstab. What I did was as follows:

sudo mkdir /run/media/Storage
sudo chmod -R 777 /run/media/Storage

Then I edited my fstab to mount that storage partition to /run/media/Storage instead of /mnt/Storage. If you dont have any drives that are mounted at boot time you can ignore this, just mount them manually to /run/media/some-folder-name

Now I also have a 1TB external hard drive I wanted mounted. So for this I did the following:

sudo mkdir /run/media/EXHD
sudo chmod -R 777 /run/media/EXHD

Then I mounted the partition for it like this (change the /dev/path# to that of your drive. you can see it with lsblk command)

sudo mount/dev/sdc1 /run/media/EXHD

Last, I enabled the removable-media interface in snap:

sudo snap connect linux-steam-integration:removable-media core:removable-media

Then enabled the joystick interface for any gamepads:
Setup joystick/gamepad:

sudo snap connect linux-steam-integration:joystick core:joystick

Finally, I run steam:

snap run linux-steam-integration

Then in your steam options under Downloads, re-add your library folders from your extra drives.

VOILA! Have fun!