bottlesdevs / Bottles

Run Windows software and games on Linux
https://usebottles.com
GNU General Public License v3.0
6.2k stars 258 forks source link

[Bug]: Bottles won't manage Steam prefixes #3385

Open ThatOverPowered opened 3 months ago

ThatOverPowered commented 3 months ago

Describe the bug

When launching Bottles with "Steam Proton manager" feature, Bottles won't list any installed game via Steam. I'm using Bottles and Steam both in the Flatpak version.

Bottles has access to the Steam path.

To Reproduce

  1. Start Bottles.
  2. Enable Steam Proton Manager
  3. Restart Bottles
  4. No games are listed.

Package

Flatpak from Flathub

Distribution

Arch Linux

Debugging Information

Official Package: true
Version: '51.11'
DE/WM: gnome
Display:
    X.org: true
    X.org (port): :0
    Wayland: true
Graphics:
    vendors:
        amd:
            vendor: amd
            envs:
                DRI_PRIME: '1'
            icd: /usr/lib/x86_64-linux-gnu/GL/vulkan/icd.d/radeon_icd.x86_64.json:/usr/lib/i386-linux-gnu/GL/vulkan/icd.d/radeon_icd.i686.json
    prime:
        integrated: null
        discrete: null
Kernel:
    Type: Linux
    Version: 6.9.3-zen1-1-zen
Disk:
    Total: 16777310208
    Free: 16777146368
RAM:
    MemTotal: 31.3GiB
    MemAvailable: 26.8GiB
Bottles_envs: null

Troubleshooting Logs

F: No installations directory in /etc/flatpak/installations.d. Skipping
F: Opening system flatpak installation at path /var/lib/flatpak
F: Opening user flatpak installation at path /home/thatoverpowered/.local/share/flatpak
F: Opening user flatpak installation at path /home/thatoverpowered/.local/share/flatpak
F: Opening system flatpak installation at path /var/lib/flatpak
F: Opening user flatpak installation at path /home/thatoverpowered/.local/share/flatpak
F: Opening system flatpak installation at path /var/lib/flatpak
F: /var/lib/flatpak/runtime/org.gnome.Platform/x86_64/45/99d562071771cdcfe51f9afa912f262cfb8eb83258d83d827f4caeedd4f273ea/files/lib32 does not exist
F: Cleaning up unused container id 1220992146
F: Cleaning up per-app-ID state for com.usebottles.bottles
F: Allocated instance id 2374227690
F: Add defaults in dir /com/usebottles/bottles/
F: Add locks in dir /com/usebottles/bottles/
F: Allowing wayland access
F: Allowing x11 access
F: Allowing pulseaudio access
F: Pulseaudio user configuration file '/home/thatoverpowered/.config/pulse/client.conf': Error al abrir el archivo /home/thatoverpowered/.config/pulse/client.conf: No existe el fichero o el directorio
F: Running 'bwrap --args 44 -- xdg-dbus-proxy --args=46'
F: Running 'bwrap --args 44 -- bottles'
17:36:00 (INFO) Bottles Started! 
17:36:01 (INFO) Performing Bottles checks… 
17:36:01 (INFO) Steam path doesn't exist, creating now. 
17:36:01 (INFO) Dxvks found:
     - dxvk-2.3.1

17:36:01 (INFO) Vkd3ds found:
     - vkd3d-proton-2.12

17:36:01 (INFO) Nvapis found:
     - dxvk-nvapi-v0.7.0

17:36:01 (INFO) Latencyflexs found:
     - latencyflex-v0.1.1

17:36:01 (INFO) Runners found:
     - soda-9.0-1
     - sys-wine-9.0

17:36:01 (WARNING) A Steam prefix was found, but it is a Proton one: 1493710, skipping… 
17:36:01 (WARNING) A Steam prefix was found, but it is a Proton one: 1493710, skipping… 
17:36:02 (INFO) Catalog installers loaded 
17:36:02 (INFO) Catalog dependencies loaded 
17:36:02 (INFO) Catalog components loaded

Additional context

imagen imagen imagen

ThatOverPowered commented 3 months ago

I believe this should be mentioned in the documentation.

In Steam, whether Flatpak or not, when installing a game to a disk other than the default (where Steam itself is installed), Bottles must be given access to that location, or at least, access to the folder containing the game (default SteamLibrary), otherwise, no matter how much Bottles is given permission to xdg-data/Steam or ~/.var/app/com.valvesoftware.Steam/data/Steam, Bottles will not be able to read the wine prefix.

imagen imagen imagen

xioren commented 3 months ago

Yes this is mostly a quirk of Flatpak sandboxing, not Bottles. But indeed it might be useful to mention it in the documentation. Pull requests welcome.

Neon-44 commented 3 months ago

~I have it on the same Disk. The Problem is that some are installed into \~/.var/app/com.valvesoftware.Steam/data/Steam, in which case they are detected correctly, but some are installed into \~/.var/app/com.valvesoftware.Steam/.local/share/Steam, in which case they aren't detected, even if i put that path into flatseal~

Edit: nvm, /data is a link to /.local/share

All games are installed there, but some games show up while others don't.

ykmlg commented 2 months ago

I have the same issue, only that even after adding the disk and giving permission to Steamapps on that disk in Flatseal it still doesn't show the prefix in Bottles.

Neon-44 commented 2 months ago

I just realized I never posted how I fixed this and by now I forgot.

I think I had to delete the old Proton prefixes Folder in Steam? in Steam/steamapps/common?

I think it somehow didn't recognize the one with the "(beta)" in it?

And then change all the games to use the experimental Proton Version so they don't just reinstall into the "(beta)" folder obviously

ykmlg commented 2 months ago

ok so adding steam prefixes from different drives only works by adding the path to "Steamapps" that is on the other drive and restarting your pc. if it doesn't work, most of the time deleting the prefixes and letting steam make a new one fixes it. that's how I got Squad to work.

gregthwuen commented 3 weeks ago

I’m encountering a similar issue that might be related: Bottles isn’t listing the prefixes for games installed on an external drive, despite having all the necessary permissions. It appears that Bottles expects the prefixes to be on the same drive as the game itself. However, by default, Steam creates prefixes only in the compatdata directory on the main drive.

As a temporary workaround, I’ve created a symlink in the external drive's steamapps directory that points to the compatdata directory on the main drive.