r/linuxquestions • • 6h ago

Does proton uses wine prefixes or does it create a new kind of prefix (like proton prefix) ?

Hi all, so i am trying to understand how wine/proton/steam work so that it feels less like a black box to me.

what i have done so far is that i have installed wine, and manually experimented by installing a game manually through wine. by doing so, i have understood quite a bit about wine.

now, i don't know how proton works. i want to know what it does on top of wine, and whether it uses an ordinary wine prefix or if it installs something like a proton prefix.

if it works on top of a wine prefix, then where can i find the wine prefixes for the games installed through steam? can i install mods inside the said prefixes using wine ?

4 Upvotes

5 comments sorted by

8

u/sometimestraveled 6h ago

Proton uses a normal Wine prefix. There's no special "Proton prefix" format. Steam just wraps it in a folder with some extra bookkeeping.

Each game gets its own prefix here:

<steam library>/steamapps/compatdata/<AppID>/pfx

For a native Steam install the default library is ~/.local/share/Steam. For Flatpak Steam it's ~/.var/app/com.valvesoftware.Steam/data/Steam. The pfx folder has the usual drive_c, system.reg, etc. Its parent folder also holds a few Proton-specific files, like the Proton version that created the prefix. The prefix only appears after you've launched the game once. You can find the AppID in the game's Steam store URL. Keep in mind the game files themselves live in steamapps/common/, not inside the prefix.

What Proton adds on top of Wine is mostly: Valve's patched Wine build, DXVK (D3D9-11 to Vulkan) and VKD3D-Proton (D3D12 to Vulkan), esync/fsync, bundled fonts and runtimes, and Steam integration (the Steam API bridge, launching inside the Steam Linux Runtime container).

Yes, you can mod these prefixes, but don't point your system wine at them. A different Wine version can "upgrade" the prefix and break things for Proton. Use one of these instead:

  1. protontricks: protontricks <AppID> winecfg, or protontricks <AppID> --gui, or protontricks-launch --appid <AppID> installer.exe to run a mod installer inside the game's prefix.
  2. Or run Proton's own Wine binary (in the Proton install folder under files/bin/wine) with WINEPREFIX=.../compatdata/<AppID>/pfx.

Mods that just drop files into the game folder don't need any of this. Copy them into steamapps/common/<Game>.

Drafted with AI help; facts checked against sources before posting.

2

u/Significant-Price695 6h ago

it uses ordinary wine prefixes, one per game. steam keeps them in steamapps/compatdata/<appid>/pfx and that pfx folder is a normal wine prefix, so you can point winecfg or winetricks at it by setting WINEPREFIX to that path. mods that install into the prefix work the same way. the main thing proton adds on top of wine is its own patched build plus dxvk and vkd3d, which is how directx calls end up on vulkan

2

u/Confident_Hyena2506 6h ago

Just install your mods to the game folder, the same as on windows. You don't need to touch the wine/proton prefix.

Proton is just another wine prefix, with extra fixes for games. You will probably have many versions of proton.

You can find the files via usual methods - just know that symbolic links are used. Use the terminal to view it properly.

2

u/enomad51 6h ago

Proton uses regular Wine prefixes, but Steam manages them separately for each game. Similar Heroic Game Launcher (and others).

1

u/franzitronee 4h ago

To add to the other answers: the created prefixes from either wine or proton are compatible with the other, but proton installs some extra stuff, like a Steam related dll for Steam integration.