While we all impatiently wait for official support for Steam via Borealis, let’s talk about how you can start playing Windows games today with Steam Play (Proton) using Crostini (Linux on Chrome OS). The experience isn’t the best, but it’s frankly better than nothing. This article will assume that you have Linux installed on your Chrome OS device and don’t mind getting your hands dirty on the terminal just a bit.
Chrome OS Flags
Head to chrome://flags in Google Chrome. Here there are two settings we will search for and enable: #exo-pointer-lock (this is required as it helps to provide more accurate mouse positioning and window focus when using Linux applications and games) and #scheduler-configuration set to “Enables Hyper-Threading on Relevant CPUs.” (this is optional). Switching on that second flag can improve processor performance by around 30% if the processor has hyper-threading support, so you might as well give it a go.
Steam Installation
The next step is to open up the Linux terminal and enable 32-bit packages in Linux as Steam itself and most games are 32-bit only. Paste the following command into the Linux terminal and hit enter.
sudo dpkg --add-architecture i386
Next, we need to add the Linux non-free repositories. This allows the installation of proprietary software including Steam. Following this step, we’ll need to update the package manager repository cache so the system knows about the latest changes. Paste this first block of commands, hit return, then copy/paste the sudo apt-get update in and hit return again. After this, paste in the final Steam install command, hit return, and let the install run.
echo "deb http://deb.debian.org/debian buster main contrib non-free" | sudo tee -a /etc/apt/sources.list.d/non-free.list
echo "deb http://security.debian.org/ buster/updates main contrib non-free" | sudo tee -a /etc/apt/sources.list.d/non-free.list
sudo apt-get update
sudo apt-get install --yes steam
Proton for all Games
By default, Proton is only whitelisted for a very small amount of games. In reality, it works for most games on Steam, so we now need to enable Proton to work for any Windows games in our library. Launch Steam and head to the Settings menu where you can enable Proton. It will default to “Proton Experimental”. You can optionally change the default Proton to use a stable version. Settings > Steam Play > Enable Steam Play for all other times > OK.
For the first time setup, make sure we have the required tools installed. We need Proton itself (a fork of Wine) and the latest Steam Linux Runtime (which is a Flatpak-like container with the dependencies for Proton to work). Head to the following sections in Steam to get these installed:
- LIBRARY > Search by Name > (search for “Proton Experimental” and select it) > INSTALL
- LIBRARY > Search by Name > (search for “Steam Linux Runtime – Soldier” and select it) > INSTALL
After all of that is done installing, exit Steam completely.
Proton’s OpenGL Back-end
Proton uses the Vulkan graphics API in the back-end by default for translating DirectX calls. This provides better compatibility and performance compared to the OpenGL back-end. Unfortunately, Linux via Crostini does not support that right now. So we need to stick to what we have for now. Copy the sample Proton configuration over, first by copy/pasting this in your terminal:
cp "$HOME/.steam/debian-installation/steamapps/common/Proton - Experimental/user_settings.sample.py" "$HOME/.steam/debian-installation/steamapps/common/Proton - Experimental/user_settings.py"
Install “nano” or use another text editor of your choice to modify the configuration file:
apt-get install --yes nano
nano "$HOME/.steam/debian-installation/steamapps/common/Proton - Experimental/user_settings.py"
Using your text editor, arrow down to the line you see below and remove the “#” character that is there. This will effectively undo the fact that it was previously commented out. When finished, that line should appear as it does below. Then exit with CTRL + x, confirm you want to save the changes by pressing y, then press ENTER to keep the same file name.
"PROTON_USE_WINED3D": "1",
Where the Fun Begins
That’s it! Relaunch Steam and play your favorite games. You’ll see a pop-up reminding you that this is a compatibility tool and that things may not work as expected compared to native Windows. Some games won’t even launch, controllers aren’t supported yet, the mouse behaves odd at times by not being centered correctly or disappearing entirely, it’s easy to lose focus of the game window, etc.
For me, I find playing simple games like Overcooked or Golf With Your Friends to work and be a real treat on my Chromebook. Use ProtonDB.com to help figure out which games work and what other tweaks may be required. Hopefully you, too, can find some fun titles of your own to play on the go! Happy gaming!
Join Chrome Unboxed Plus
Introducing Chrome Unboxed Plus – our revamped membership community. Join today at just $2 / month to get access to our private Discord, exclusive giveaways, AMAs, an ad-free website, ad-free podcast experience and more.
Plus Monthly
$2/mo. after 7-day free trial
Pay monthly to support our independent coverage and get access to exclusive benefits.
Plus Annual
$20/yr. after 7-day free trial
Pay yearly to support our independent coverage and get access to exclusive benefits.
Our newsletters are also a great way to get connected. Subscribe here!
Click here to learn more and for membership FAQ