SteamVR-for-Linux icon indicating copy to clipboard operation
SteamVR-for-Linux copied to clipboard

[BUG] ~/steamvr directory created when SteamVR starts

Open Lunderberg opened this issue 4 years ago • 6 comments

Describe the bug The folder ~/steamvr is created in the home directory of the user, rather than using a subfolder of ~/.local/share/Steam.

To Reproduce Steps to reproduce the behavior:

  1. Run rm -rf ~/steamvr to remove folder
  2. Start SteamVR through the steam GUI
  3. Run ls -d ~/steamvr to check if folder exists

Alternative steps to reproduce the behavior:

  1. Run rm -rf ~/steamvr to remove folder
  2. Run cd ~/.local/share/Steam/steamapps/common/SteamVR/bin/linux64 to change to the steamvr bin directory.
  3. Run LD_LIBRARY_PATH=. vrserver to launch the vrserver.
  4. Run ls -d ~/steamvr to check if folder exists

Expected behavior All settings for SteamVR are created either in subfolders of ~/.local/share (e.g. ~/.local/share/Steam/config/SteamVR) or in subfolders of ~/.config (e.g. ~/.config/unity3d/Valve). The folder ~/steamvr should not exist.

Observed behavior The folder ~/steamvr and subfolder ~/steamvr/input are created.

System Information (please complete the following information):

  • Distribution: Linux Mint 20
  • SteamVR version: 1.17.7, Build ID 6369009
  • Steam client version: 2021-04-12
  • Opted into Steam client beta?: No
  • Graphics driver version: 450.102.04
  • Gist for SteamVR System Information: Link here

Screenshots N/A

Additional context GDB stack trace below, with a breakpoint set at the call to mkdir. Confirmed by looking at the function arguments that BCreateDirectoryRecursive is being called to create /home/USERNAME/steamvr/input.

(gdb) where
#0  mkdir () at ../sysdeps/unix/syscall-template.S:78
#1  0x00005555556a94be in BCreateDirectory(char const*) ()
#2  0x00005555556a95fb in BCreateDirectoryRecursive(char const*) ()
#3  0x000055555562860b in CVRInputWorkshop::BInit(CVRServer*) ()
#4  0x000055555560fab7 in CVRInputServer::Init(CVRServer*, vr::IVRSettings*) ()
#5  0x0000555555648a08 in CVRServer::Init() ()
#6  0x000055555566b2d8 in RealMain(unsigned int, VRServerArguments_t&) ()
#7  0x00005555555d205d in main ()
(gdb) 

Note: Commenters who are also experiencing this issue are encouraged to include the "System Information" section in their replies.

Lunderberg avatar May 02 '21 22:05 Lunderberg

Did you ever figure out a solution to this? I see no one has responded. It's honestly driving me a bit mad. My life is a mess, let me at least have a neat ~/

If it has to be there, at least make it '.steamvr'.

bndlfm avatar Oct 16 '21 13:10 bndlfm

I haven't yet. Since I don't have any custom controller settings, which is all that the default folder held for me, I settled for making a cronjob that deletes the folder periodically. I imagine that I could write a library that wraps the relevant system calls and rewrites the paths, then launch steam with LD_PRELOAD set to load that library, but I haven't done so (yet).

Lunderberg avatar Oct 16 '21 18:10 Lunderberg

Bump: Would be great to eventually get a fix for this! :crossed_fingers:

michael-nischt avatar Aug 16 '22 15:08 michael-nischt