So, I've recently moved from Window$ (again), and I'd like to move my game library over.

I've already installed Steam for Linux (so I can play supported games natively), but now I have to install Steam for Wine so I can play all the non-native games.

My problem here is that I'm running two versions of Steam simultaneously which can be a waste of resources (not to mention that it's annoying that I have to switch to the different version every time I can't find a game in this category or vice-versa).

Is there any way I can trick Steam for Linux into launching Windows games through Wine?

For example, can I just hit the Play button for something like Skyrim from my Linux install, and just have Steam prepend the command with wine? At the same time, native games should run without any prefixing.

  • 3
    Wish this were possible, but I highly doubt it can be done.
    – muru
    Jul 14 '15 at 22:37

I've had some success launching apps through wine from the Linux Steam client. As Michael suggests, you need to use a shell script to launch them.

For example, I use this to launch path of exile, named poe.exe:

export WINEPREFIX=/media/stephen/d_extra/PoE/
export WINEDEBUG=-all
cd drive_c
cd "Path of Exile"
wine PathOfExile.exe

The game wouldn't launch for me without unsetting LD_PRELOAD. Also, the permissions on the file had to be executable.

I set the permissions on the script (for example):

chmod 755 ~/bin/poe.exe

Then I use the Add non-steam game option, and then I browse to the script.

So, that's how you add a generic wine game...

To answer your question and to add a steam game, you need to create a script that calls the steam.exe and passes the game id. This will result in launching a second instance of steam, but you wont have needed to have it running for the whole time, just while the second game is running. So here's another script that kicks off the windows version of unturned by calling the windows steam client through wine with an appropriate url:

export WINEPREFIX=$HOME/.unturned
export WINEDEBUG=-all
cd drive_c
cd Program\ Files\ \(x86\)/Steam/
nice -n 19 wine Steam.exe -no-dwrite steam://rungameid/304930

In this case I don't know that the unset on LD_PRELOAD is needed, but my other scripts used it.

NOTE: The WINEPREFIX only needs to be specified if you specified a WINEPREFIX when installing steam (or other windows programs). If you didn't specify one when installing steam for windows, then you wouldn't need one in your scripts. And if that's the case, you will want to replace it with ~/.wine/.

  • I like this idea!
    – Kaz Wolfe
    Jul 14 '15 at 23:37

You could try the Add a Non-Steam Game option and direct it to a shell script that launches the game but this wouldn't solve much as it would also launch the Windows Steam client as well because the client is needed to authenticate the game as part of the DRM process. If the Linux client could authenticate DRM for Windows games than all would be fine but it just doesn't work that way.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.