Skip to content

Instantly share code, notes, and snippets.

@Fusl
Last active March 13, 2026 17:54
Show Gist options
  • Select an option

  • Save Fusl/9086b89e8a7b9dfe84739dc89911e57e to your computer and use it in GitHub Desktop.

Select an option

Save Fusl/9086b89e8a7b9dfe84739dc89911e57e to your computer and use it in GitHub Desktop.
Making SteamVR on Linux not suck
#!/usr/bin/env bash
# ymmv, this works well on my EndeavourOS Ryzen 9950X3D RTX 4090 system
set -euxo pipefail
# installing modern state of the art config management and build dependency packages
# - jq is used for updating the steamvr.vrsettings file
# - vulkan-headers is used to build SteamVRLinuxFixes
if ! pacman -Qi jq vulkan-headers 1>/dev/null 2>&1; then
sudo pacman -S jq vulkan-headers
fi
# steamvr-specific settings
cat ~/.steam/steam/config/steamvr.vrsettings \
| jq -rM '
.steamvr.DisableAsyncReprojection = false |
.steamvr.allowAsyncReprojection = true |
.steamvr.disableAsyncReprojection = false |
.steamvr.enableLinuxVulkanAsync = true |
.steamvr.useFacetRenderer = true
' \
> ~/.steam/steam/config/steamvr.vrsettings.new
cp -v ~/.steam/steam/config/steamvr.vrsettings ~/.steam/steam/config/steamvr.vrsettings.bak
mv -v ~/.steam/steam/config/steamvr.vrsettings.new ~/.steam/steam/config/steamvr.vrsettings
# building SteamVRLinuxFixes
if ! test -d ./SteamVRLinuxFixes; then
git clone --recursive https://github.com/BnuuySolutions/SteamVRLinuxFixes
cd SteamVRLinuxFixes
else
cd SteamVRLinuxFixes
git pull
fi
mkdir build.new
cd build.new
cmake ..
cmake --build .
cd ..
rm -rf build.bak
mv -v build build.bak || true
mv -v build.new build
# patching vrcompositor to hook SteamVRLinuxFixes
cat ~/.steam/steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher.sh \
| grep -avE -e '^export (VK_ADD_LAYER_PATH|VK_INSTANCE_LAYERS)=' \
| sed '/^exec /i \
export VK_ADD_LAYER_PATH="'"${PWD}"'/build" \
export VK_INSTANCE_LAYERS=VK_LAYER_BNUUY_steamvr_linux_fixes' \
> ~/.steam/steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher.sh.new
chmod +x ~/.steam/steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher.sh.new
cp -v ~/.steam/steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher.sh ~/.steam/steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher.sh.bak
mv -v ~/.steam/steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher.sh.new ~/.steam/steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher.sh
echo "all done, enjoy motion-sickness-free steamvr on linux"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment