Getting Zwift to run on Linux was a journey I started just over a year ago. I didn’t get very far with my effort, but since then a lot of progress has been made by the Wine developers and others in the community, and Zwift is now (mostly) playable on Linux. I’ll admit there are some workarounds required, like having to use the Zwift Companion app to connect sensors. But on the whole, it works well. So I wanted to summarise the process for anyone who wants to try it for themselves.
I’m using Lutris, a gaming client for Linux, to script out all the steps needed to make games playable on Linux. If you’ve never used it before, I’d really recommend it for gaming on Linux in general. First things first, you’re going to have to download and install Lutris for your Linux distribution. Thankfully Lutris has a great help page explaining how to do this for most distributions.
Installation
Once you’ve got Lutris installed, installing Zwift is pretty easy. In Lutris search for Zwift, select the only result, and click the “Install” button to start the installation process. You can also start the installer from the command line by running lutris install/zwift-windows
.

This might take a while, and depending on your Internet speed could be anywhere from 10 minutes to around an hour.
Once the Zwift launcher has finished downloading and updating, we’ve hit the first hurdle that can’t be scripted with Lutris.
The launcher will appear as a blank white window. Actually, the launcher is displaying a web page, but Wine can’t render properly. Thankfully all the files are already downloaded, so all you need to do is quit the launcher window, and exit Zwift from the Wine system menu. After that, the Lutris installer should complete.
Running Zwift
Zwift requires the Launcher to be running all the time while in-game. However, Lutris only allows 1 application to launch from the “Play” button. So before you hit the play button, first you need to click “Run EXE inside wine prefix” and browse to drive_c\Program Files (x86)\Zwift\ZwiftLauncher
. You should see that familiar blank white screen.
Finally, you can hit the “Play” button and Ride On 👍
I really enjoy linux and its many varints on the Raspberry Pi.
Im hoping zwift finds its way to nvidia shields sometime soon.
Thanks for sharing it, I have a laptop with Ubuntu installed and really wanna stop using my iphone to run zwfit. Did you know how many devices can be paired using companion app?
The companion app can pair power, cadence, and trainer all at the same time
I just read a similar how to on slowtwitch the other day. Any chance that was written by the same person?
Thanks a lot for this!
One issue on my side with zwift on linux: my pc gets very hot. So hot that I have to stop after 5 minutes otherwise I fear that something gets damaged. Spec wise it should not be an issue. Any idea what might be the problem?
Could be your cooling fan has conked out.
I have been using Zwift on Debian via Wine since the start of lockdown. I have to type 3 commands across 2 terminals to get it to run but have no other issues. I seem to have less problems than those trying to us it with Apple products.
The only thing that frustrates me is when you save you have to re-launch whereas Windows takes you back to that webpage which Wine can’t render.
I pair 3 things with the companion App and have no issues with an overheating laptop.
Oh, USB support in Wine would be great…
Nicely done! What’s your hardware setup and what sort of frame rates are you getting?
We need to get Zwift on Stadia or any other streaming gaming platform. Then we will get rid of Wine and all the portability problems we face in Linux with games. I wish this could be an option.
Yea having tos companon app to pair sensors is a bit crap but it works
Obvious question…. Why?!
Bluetooth functionality doesn’t work in Wine.
Obvious question…. Why what ? Zwift on Linux, thought that might be easy to comprehend (it’s a widely used platform in the tech, VFX and graphics world, becoming more popular in the end-user gaming one) – so something else more specific ?
Why what?
Why not?!
That’s a fantastic Howto, Thanks for sharing this !
Why go thru all that ballache, for no gain at all?
Because some of us don’t use windows or mac, so it is actually a “gain” of being able to zwift over not being able to.
Is there any way to pair ant+ sensors via the companion app? I’m having no luck (using android phone).
Not all Android phones support ANT+
https://www.thisisant.com/consumer/ant-101/ant-in-phones
Hey, thanks for putting together the how-to. I’ve got Lutris installed and the Zwift install seems to have worked but after clicking ‘Run EXE inside wine prefix’ and getting the blank screen, I click ‘Play’ and get ‘zwiftapp.exe is not responding’ before it dies. Any ideas on how to troubleshoot? I’m unfamiliar with Lutris and Wine so any tips on where to find logs or anything else to try is appreciated!
https://forum.slowtwitch.com/forum/Slowtwitch_Forums_C1/Triathlon_Forum_F1/Zwift_running_on_any_Linux_Distro_P6811732/?search_string=lutris#p7347982
Seem to have found the answer here, export MESA_GL_VERSION_OVERRIDE=3.1 in the terminal, then launch lutris from the same terminal and do the whole launch from wine then play thing. I’ve got integrated graphics, along the lines of what the forum poster mentioned.
Maybe someone can help me with this. Try to install Zwift from Lutris but when update page prompt its seem it cannot get internet connection? I try a another method with Wine and the same problem. Maybe I miss something in procedure?
Ok I’m good finally installed it with update
Thanks for this amazing tutorial! Works fine by me, is there a way to avoid typing my zwift password everytime I launch it?
Has this broken with the latest update from zwift?
Seems like it, I keep getting an error about .net 4xxx required, tried to update the installer and got it installed but when I try to hit play after running from prefix it say specified process cannot be found
I got it working after changing the config to use the 64 bit run from process exe
Check my draft installer script on lutris
How can I get it to work now. Where can i find the draft installer?
The exact error message i get is:
ZwiftLauncher.exe
To run this application you first must install one of the following versions of the .Net Framework
v4.0.30319
Contact your application publisher….
the draft installer is on the lutris site
See if you can get an old version of Zwift installer, which has the ZwiftLauncher.exe dated 5/Sep/2019. Just use that and let Zwift normally update the game components through that package.
I went back to the original ZwiftLauncher.exe dated 5/Sep/2019, and everything started working again.. Have archived an old copy of the install package for if/when this happens again..
Hi , could i get access to the old launcher?
Hello, can you précise your solution plz ? thx
I get a Zwift error just after the installation and then an alert that the required process was not found
ok I fixed that by changing the wine version but now I have another problem with javascript: fixme:msctf:InputProcessorProfileMgr_GetActiveProfile
What version did you change to? Stuck with same issue.
all good finally but it can’t find my hammer 🙁
As I understand it, you have to use the companion app on your phone to sync with sensors since Bluetooth support in Wine is currently pretty weak.
you might be using the x64 system as I am.
It might work.
While running Zwift this way works well for me, stopping the game after a ride causes some Wine error and I have to kill the process. Is there any way to get a clean shut-down as well?
Hi,
I followed all the instructions till “Finally, you can hit the “Play” button and Ride On 👍”
my machine gets me out this error: RunFromProcess/ Cannot find the specified process
the terminal shows this: ERROR: ld.so: object ‘/usr/$LIB/libgamemodeauto.so.0’ from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
were you able to solve?
I ran into the same problem. I solved it by changing the executable to the x64 version as shown here: https://www.youtube.com/watch?v=XEGkKoJBYHY
Next step: getting bluetooth to work.
Thanks for the tutorial, another reason to boot windows is gone 🙂
got it working by enable x64. next
has anyone run into these issues and found solution
Just adding two issues that I had and the fixes. 2 Is only related to sophos av, if you don’t use it dont bother reading. White screen and not launching from Lutris once selecting the .exe required for “Run exe inside wine prefix”. My solution was just to change the config to run the -x64.exe instead of the default 32bit that was selected. Arrow on the right hand side of “Play” Select “Config > Game Options > Update the “Executable” path to the x64.exe. Didn’t seem obvious to me at first but I hadn’t used wine or lutris in the… Read more »
I have installed Zwift on Linux Mint. It starts but i can not pair my devices because linux zwift don’t find my Garmin ANT+ USB Stick 🙁 – How can i pair with the ANT+ Dongle
same issue cant pair ant+ dongle and no sound
Need to pair with the companion app
I installed Zwift on Zorin OS16 on a HP Probook 6260b, everything went fine but when I start the app, instead of the spalsh screen showing, the window starts flickering like crazy. Any ideas on how to solve this would be greatly appriciated.
For anyone interested i’ve created a docker image of zwift for linux. You need a little bit of technical know how to get this installed. But basically you need a nvidia card, docker, nvidia-container-toolkit.
and then you can build the following docker files at https://github.com/netbrain/dockerfiles.
clone/download the repository and then issue:
docker build -t netbrain/nvidia-wine .
docker build -t netbrain/zwift .
and then finally
docker run –gpus all –privileged -it –name zwift -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /run/user/$UID/pulse:/run/user/1000/pulse
zwift will now be installed, wait for the white screen and press any key in terminal.
FYI, now supports multiple graphics cards.
Does anyone have any insight whether the forthcoming ‘January update’ (1.21 iirc) which requires Windows 10 will break most wine versions? I’m running in a 64-bit prefix with Windows 10 emulation set and I am still getting a warning I should (must) upgrade my Windows version. This could just be a detection issue or bug and I expect it’s quite likely that Wine can run Zwift 1.21 fine, assuming the detection issue doesn’t stop the process. I mean, it would be even better to get a native Linux version. Microsoft does it with some of their programs. I’ve seen a… Read more »
Hello, i have the same message on Zwift on my Unbuntu PC!!
I have config Wine with 64 prefix and windows10.
I’m 100% with you for to tell Zwift that a linux version should be developed
I’m glad it works on Linux. I can’t imagine dual booting just to run Zwift. And yeah it works great…no glitches. Maybe only drawback is that you have to launch ZwiftLauncher.exe before you run app, that’s manageable and still much better than dual booting whole computer. And like article says, can’t find a way to make a script to sequentially run ZwiftLauncher.exe and then Zwift.
Hello,
you zwift allways run after new update1.21?
my zwift crach and now impossible install with lutris (or directly with wine)
It’s still works on linux even after update 1.21. But I don’t think lutris has updated their installation script. This is the problem with todays linux solution, it easily breaks on zwift updates. If you want zwift to run in a more stable manner you should look into https://forums.zwift.com/t/no-linux-support-yet/14041/88 It provides a solution to run whatever zwift version that works for you. every version is snapshotted. There might be protocol/api changes to remote servers between versions, and that will certainly break older zwift snapshots. But it’s rare that zwift does this. In any case if the latest zwift version doesn’t… Read more »
Hi Kim, Thanks for the link that looks interesting. I’m not a huge fan of containerising programs like this but Kion_K comments about how some of the scripts may be useful for tweaking configurations which is worth a look. As for running as a native app, I can confirm my personal experience that as of 2022-02-02 in a 64bit Win10 wine environment it does not with the Runfromprocess64 that worked for the past ~2.5 years it does not. I can also confirm that the contingency Lutris install I had working for the past 6 months on a different system also… Read more »
Feel free to try to install zwift in the same manner that my entrypoint.sh does, if that doesn’t work for you for a native install. Then I would suggest trying my container solution https://github.com/netbrain/dockerfiles/tree/master/zwift). And out of curiosity, for what reason are you not a fan of containers like this?
Hi Kim, Thank you so much for putting the effort in to containerising zwift, I am so happy that I can finally run zwift on ubuntu!! I used to dual-boot which is really annoying when you just want to jump on zwift at lunch time but have lots of windows open that you don’t want to lose (plus using windows only for zwift normally means you need to switch to windows an hour before your ride to get all the updates done!). I gave up on that so I’ve just been using my phone which is far from immersive! I… Read more »
hi
i install on ubuntu lutris and in install zwift
when i play i got dialog box “cant find process …” and it exit in consule i see error code.
any idea?
I am using scrcpy to mirror the screen of my android phone to my Ubunto 22.04 laptop. That works fine for me, big screen, great resolution. The phone charges over the USB port, so after training I still have a full battery.