Steam/Wine
Related articles
This article covers running Steam in Wine, in order to play games not available through the native Linux Steam.
Contents
Installation
Install Wine as described in Wine.
Install the required Microsoft fonts: ttf-tahomaAUR and ttf-ms-fontsAUR from the AUR. You can also install these fonts through Winetricks: winetricks corefonts
.
Download and run the Steam installer from steampowered.com:
$ wine SteamSetup.exe
Starting Steam
On x86:
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe
On x86_64:
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe
You should consider making an alias to easily start Steam (and put it in your shell's rc file), example:
alias steam-wine='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'
Tips
Performance
Consider disabling wine debugging output by adding this to your shell rc file:
export WINEDEBUG=-all
or, just add it to your steam-wine
alias to only disable it for Steam:
alias steam-wine='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:
$ wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f
Source engine launch options
Go to Properties > Set Launch Options, e.g.:
-console -dxlevel 90 -width 1280 -height 1024
-
console
- Activate the console in the application to change detailed applications settings.
-
dxlevel
- Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software wiki https://developer.valvesoftware.com/wiki/DirectX_Versions for details.
-
width
andheight
- Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.
Please refer to https://developer.valvesoftware.com/wiki/Command_Line_Options for a complete list of launch options.
Using a pre-existing Steam installation
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to ~/.wine/drive_c/Program Files/Steam/
. However, be sure to do all the previous steps in this wiki. Confirm Steam launches and logs into your account, then do this:
$ cd ~/.wine/drive_c/Program\ Files/ $ mv Steam/ Steam.backup/ (or you can just delete the directory) $ ln -s /mnt/windows_partition/Program\ Files/Steam/
Steam links in Firefox, Chrome, etc
To make steam://
urls in your browser connect with Steam in Wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for KDE, others involve tinkering with desktop files or the Local State file for Chromium. These seem to only work in Firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but Firefox-only) way, see the first post here .
- Make
/usr/bin/steam
with your favorite editor and paste:
#!/bin/sh # # Steam wrapper script # exec wine "c:\\program files\\steam\\steam.exe" "$@"
- Make it executable:
# chmod +x /usr/bin/steam
- Install mimeoAUR and xdg-utils-mimeoAUR from AUR. You will need to replace the existing xdg-utils if installed. In XFCE, you will also need xorg-xprop.
- Create
~/.config/mimeo/associations.txt
with your favorite editor and paste:
/usr/bin/steamĀ %u ^steam://
- Lastly, open
/usr/bin/xdg-open
in your favorite editor. Go to thedetectDE()
section and change it to look as follows:
detectDE() { #if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; #elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; #elif $(dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1) ; then DE=gnome; #elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce; #elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde; #else DE="" #fi DE="" }
- Restart the browser and you should be good to go. In Chromium, you cannot enter a
steam://
link in the url box like you can with Firefox. The forum link above has asteam://open/friends
link to try if needed.
Steam Client Store/(built-in) Web Browser not working
Launch Steam 32-bit disabling "CEF-based runtime sandboxing" support:
wine ~/.wine/drive_c/Program Files/Steam/Steam.exe -no-cef-sandbox
If this does not work, open winecfg, "Add application...", navigate to ~/.wine/Program Files/Steam/bin/, choose steamwebhelper.exe, and set its "Windows Version" at the bottom to Windows XP.
No text rendered problem
If there is no text/font rendered when starting steam you should try to start steam with the parameter -no-dwrite
. Read more in the forum thread about it.
wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite
Proxy settings
Steam may use environment variables of the form [protocol]_proxy
to determine the proxy for HTTP/HTTPS.
$ export http_proxy=http://your.proxy.here:port $ export https_proxy=$http_proxy
However, it seems that it does not support sockv5.