# proton Steam began providing direct linux support for gaming. In the process they forked Wine and began adding, and back-porting, significant improvements. Most importantly, the project is open source! ## [Glorious Eggroll](https://github.com/GloriousEggroll/proton-ge-custom) This person has created an excellent fork of proton, allowing custom modifications and patches specific to popular games. You should almost always favor GE builds. ## [protondb](protondb.com) A third party website for people to add, review, and provide supplemental instructions for games they've played or that have not worked. Basically the answer to [winehq](https://www.winehq.org/). ## non-steam games You can add and run non-steam games using steam and set them up to run with proton! This process is a bit convoluted: 1. Create a directory inside `~/.local/share/Steam/steamapps/common` for your game to be installed in. 2. Add an executable (eg. the installer) to that directory. 3. Add a game in steam, specify the proton version, and then select that installer to run it. 4. During the installation set the path to be the `~/.local/share/Steam/steamapps/common` directory you setup for the game; during installation this will also create a high numbered directory in `~/.local/share/Steam/steamapps/compatdata`, which will change anytime you modify the target of the steam app. 5. Change the executable to the correct one after the installer is complete (_this will rename the game in steams library_). 6. You can add an icon to the application if you have one. _These instructions need some work due to how the proton/winepath directory creation works._ ## launch options Under `Set Launch Options` you can add various environment variables and common flags to improve performance. A good standard string is: DXVK_HUD=fps PROTON_USE_VKD3D=1 %command% -USEALLAVAILABLECORES -high -vulkan The `DXVK_HUD` option lets you add an entire graph or just the FPS to any game that uses DXVK. The `PROTON_USE_VKD3D` enables DX12 in games that support it. The `%command%` is required if you add anything, and is the command that will run the executable. The flags `-USEALLAVAILABLECORES`, `-high`, and `-vulkan`, are randomly supported by various games, and thus your mileage may vary. _Another option is to use `PROTON_USE_WINED3D=1`, which suggests using OpenGL instead of DXVK for DX10/DX11 games, which may provide better performance in select cases._