HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
ValveSoftware
Proton
C++2018–2026
ValveSoftware / Proton

Proton

Compatibility tool for Steam Play based on Wine and additional components

97Distinct people
118Mentions
0Explicit recommenders
33.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Compatibility tool for Steam Play based on Wine and additional components

GitHub

Where it is used

  • Heroic — Heroic uses Proton to run Windows games on Linux and provides in-app selection and download of Proton versions. Source
  • Steam Deck — Steam Deck includes Proton in SteamOS to run games without porting work. Proton functions as the runtime compatibility layer for playing games on the device. Source

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 5:58:02 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year118 dated mentions

Observed mentions: 2018-08-22 00:04:53 UTC to 2026-10-01 20:00:29 UTC.

05101520252018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 10 mentions; 3 submissions, 7 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 17 mentions; 5 submissions, 12 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 25 mentions; 2 submissions, 23 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 15 mentions; 1 submissions, 14 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 8 mentions; 1 submissions, 7 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 8 mentions; 3 submissions, 5 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 14 mentions; 2 submissions, 12 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 11 mentions; 3 submissions, 8 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 10 mentions; 0 submissions, 10 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC1037
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC17512
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC25223
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC15114
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC817
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC835
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC14212
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC1138
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC10010

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Introduction Proton is a tool for use with the Steam client which allows games which are exclusive to Windows to run on the Linux operating system. It uses Wine to facilitate this. Most users should use Proton provided by the Steam Client itself. See this Steam Community post for more details. The source code is provided to enable advanced users the ability to alter Proton. For example, some users may wish to use a different version of Wine with a particular title. The changelog is available on our wiki. Obtaining Proton sources Acquire Proton's source by cloning https://github.com/ValveSoftware/Proton and checking out the branch you desire. You can clone the latest Proton to your system with this command: git clone --recurse-submodules https://github.com/ValveSoftware/Proton.git proton Be sure to update submodules when switching between branches: git checkout experimental_6.3 git submodule update --init --recursive If you want to change any subcomponent, now is the time to do so. For example, if you wish to make changes to Wine, you would apply them to the wine/ directory. Building Proton Most of Proton builds inside the Proton SDK container with very few dependencies on the host side. Preparing the build environment You need either a Docker or a Podman setup which Proton's build system uses internally. You should never need to use either container engine manually unless working on those parts of build system directly. We highly recommend the rootless Podman setup. Please refer to your distribution's documentation for setup instructions (e.g. Arch Podman / Docker, Debian Podman / Docker). The Easy Way We provide a top-level Makefile which will execute most of the build commands for you. After checking out the repository and updating its submodules, assuming that you have a working Docker or Podman setup, you can build and install Proton with a simple: make install If your build system is missing dependencies, it will fail quickly with a clear error message. After the build finishes, you may need to restart the Steam client to see the new Proton tool. The tool's name in the Steam client will be based on the currently checked out branch of Proton. You can override this name using the build_name variable. See make help for other build targets and options. Manual building Configuring the build mkdir ../build && cd ../build ../proton/configure.sh --enable-ccache --build-name=my_build Running configure.sh will create a Makefile allowing you to build Proton. The scripts checks if containers are functional and prompt you if any host-side dependencies are missing. You should run the command from a directory created specifically for your build. The configuration script tries to discover a working Docker or Podman setup to use, but you can force a compatible engine with --container-engine=<executable_name>. You can enable ccache with --enable-cache flag. This will mount your $CCACHE_DIR or $HOME/.ccache inside the container. --proton-sdk-image=registry.gitlab.steamos.cloud/proton/soldier/sdk:<version> can be used to build with a custom version of the Proton SDK images. Check --help for other configuration options. NOTE: If SELinux is in use, the Proton build container may fail to access your user's files. This is caused by SELinux's filesystem labels. You may pass the --relabel-volumes switch to configure to cause the container engine to relabel its bind-mounts and allow access to those files from within the container. This can be dangerous when used with system directories. Proceed with caution and refer your container engine's manual. Building make Important make targets: make install - install Proton into your user's Steam directory, see the install Proton locally section for details. make redist - create a redistribute build (redist/) that can be copied to ~/.steam/root/compatibilitytools.d/. make deploy - create a deployment build (deploy/). This is what we use to deploy Proton to Steam users via Steamworks. make module=<module> module - build both 32- and 64-bit versions of the specified wine module. This allows rapid iteration on one module. This target is only useful after building Proton. make dxvk / make vkd3d-proton - rebuild DXVK / vkd3d-proton. Figuring Out What Failed To Build Proton build system invokes builds of many subprojects in parallel. If one subprojects fails there can be thousands of lines printed by other sub-builds before the top level exits. This can make the real reason of the build failing hard to find. Appending 2>&1 | tee build.log will log the full build output to a build.log file. Searching that file from the bottom up for occurrences of Error should point to the right area. E.g.: make 2>&1 | tee build.log grep -n '] Error [0-9]' build.log 11220:make: *** [../Makefile.in:465: /builds/proton/proton/build-dir/.kaldi-i386-configure] Error 1 12427:make: *** [../Makefile.in:1323: deploy] Error 2 Debug Builds To prevent symbol stripping add UNSTRIPPED_BUILD=1 to the make invocation. This should be used only with a clean build directory. E.g.: mkdir ../debug-proton-build && cd ../debug-proton-build ../proton/configure.sh --enable-ccache --build-name=debug_build make UNSTRIPPED_BUILD=1 install ARM64 Builds You need an ARM64 build machine and pass --target-arch=arm64 to configure.sh. It's not possible to use the resulting builds in x86 Steam running via FEX. Install Proton locally Steam ships with several versions of Proton, which games will use by default or that you can select in Steam Settings' Steam Play page. Steam also supports running games with local builds of Proton, which you can install on your machine. To install a local build of Proton into Steam, make a new directory in ~/.steam/root/compatibilitytools.d/ with a tool name of your choosing and place the directory containing your redistributable build under that path. The make install target will perform this task for you, installing the Proton build into the Steam folder for the current user. You will have
Read the full README on GitHub

What Hacker News says

10 sources
It seems that support existed in KDE/Plasma workspaces in late 2014. https://www.phoronix.com/scan.php?page=news_item&px=MTg2NTY Though if you follow the DP MST keyword there's still some corner cases being polished... https://www.phoronix.com/scan.php?page=search&q=DP%20MST https://www.phoronix.com/scan.php?page=news_item&px=DRM-Misc... The Mesa drivers Ubuntu (and Debian, and many other distros) provide CAN be rather old. As you mentioned Ubuntu, follow the directions here to have a stack that's as updated as possible. https://github.com/ValveSoftware/Proton/wiki/Requirements I also tend to like checking Arhc Linux support page, but it doesn't seem to be helpful for this issue: https://wiki.archlinux.org/index.php/Radeon
In Microsoft Is Putting Ads on the Mail App in Windows 10
If you haven't been following it: "Steam Play" is the product name for Valve's repackaging of dkvk and Wine together inside their Linux client. (Lots of the code is open sourced at https://github.com/ValveSoftware/Proton/ >Steam Play allows you to purchase your games once and play anywhere. Whether you have purchased your Steam Play enabled game on a Mac or PC (both Windows and Linux), you will be able to play on the other platform free of charge. I've been using it for a few games, and the experience is great. There are lots of folks finally deleting their Windows setups and moving to Linux full time because they can finally play their AAA titles on Linux without any installation hassles.
In Steam Play Compatibility Reports

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.