netbrain / zwift

Easily zwift on linux
The Unlicense
238 stars 27 forks source link

User settings not persistent anymore #83

Closed gallais closed 5 months ago

gallais commented 5 months ago

I upgraded to 1.62.0 this morning and user settings (windowed vs. fullscreen, graphics resolution, video screenshot turned off, etc.) are not persistent across launches anymore. I'm running zwift without any extra variables being set (i.e. using docker and whatever defaults are set).

netbrain commented 5 months ago

Im guessing it works fine if you do run VERSION=1.60.0 zwift?

Probably something to do with the switch to alpine, maybe a different uid/gid then what's stored in your data volume.

gallais commented 5 months ago

Yes indeed: using VERSION=1.60.0 zwift I do get my old user settings (on that note: I did not realise old versions were sticking around, I'll have to look into how to garbage collect images).

Whereas with the 1.62.0 version, I can try to set them again and again but they just won't stick around for the next launch.

netbrain commented 5 months ago

docker system prune will remove most of the cruft buildup.

Most likely this will be fixed by #84, alternatively it will probably work fine if you recreate the data volume. (docker volume rm zwift-$USER) no guarantees tho.

gallais commented 5 months ago

Pulled this morning (after performing the prune) and settings are still not persistent (the performance issue seems to be gone though). I did remove the data volume (& re-added my credentials) to no avail.

1.60.0 still works fine although I had to change the owner of the zwift-$USER volume because I started seeing wine error messages on launch.

intrntbrn commented 5 months ago

I have the same issue: settings are not persistent. Prune did not help. 1.61 is persistent. #84 fixed my nvidia issues though.

netbrain commented 5 months ago

I'll look into it.

netbrain commented 5 months ago

looks like the directory for user preferences has changed in the new image or version. not sure why.

netbrain commented 5 months ago

@gallais can you confirm that launching the container with the following volume directory works for you?

docker run -d --rm --privileged -e DISPLAY=:0 -v /tmp/.X11-unix:/tmp/.X11-unix -v /run/user/1000/pulse:/run/user/1000/pulse -v zwift-$USER:/home/user/.wine/drive_c/users/user/Documents/Zwift --gpus all docker.io/netbrain/zwift:latest

-v zwift-$USER:/home/user/.wine/drive_c/users/user/Documents/Zwift

is the important part.

gallais commented 5 months ago

I had to replace --gpus all with --device /dev/dri:/dev/dri because I was getting an error with the original command:

docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].

After that modification, zwift starts up but my credentials are not automatically picked up. I can log in manually but I am then stuck on the sensors page and clicking 'skip'/'just watch' seems to freeze the interface. If I alt-tab to another window and then back to zwift the interface is unstuck. Hovering over the skip button and pressing Enter instead of clicking seems to do the trick?!

After that I still can't click on buttons without the interface freezing but the saved user settings do seem to be correctly picked up.

I double checked and I don't have any of these clicking/freezing issues with either of the 1.60.0 and 1.62.0 I currently have installed.

netbrain commented 5 months ago

The other issues you are describing might have something to do with wines new experimental wayland support.

netbrain commented 5 months ago

Also the zwift credentials will need to be reworked in the PR as it is now probably looking in the wrong path for the zwift credentials file.

netbrain commented 5 months ago

For the wayland issues, could you try to do:

docker run --name zwith-without-exp-wayland -d netbrain/zwift:latest  wine reg.exe delete  HKCU\\Software\\Wine\\Drivers /v Graphics
docker commit zwift-without-exp-wayland zwift-without-exp-wayland
DONT_PULL=1 IMAGE=zwift-without-exp-wayland zwift.sh

And see if you have the same graphical glitches?

netbrain commented 5 months ago

Actually you need to set the entrypoint flag to bash -c or empty string as well.

gallais commented 5 months ago

No graphical glitches with the code you've posted (after fixing the zwith -> zwift typo). I don't have persistent user settings on that one but I'm guessing it's expected.

netbrain commented 5 months ago

@gallais merged the changes, you will however have to download the latest zwift.sh

Also check the README for how to set login credentials

gallais commented 5 months ago

You are running latest zwift.sh 👏

Auto-login failed despite creating ~/.config/zwift/config because we now don't need to escape special characters anymore (so I have opened #90).

User settings are persistent but I am getting the graphical glitches on that latest pull.