protonscr

[BUG] ~/steamvr directory created when SteamVR starts

steamvropen bug
ValveSoftware/SteamVR-for-Linux#442 · opened 2021-05-02 by Lunderberg · updated 2025-04-21 · 6 comments · github
LLunderberg 2021-05-02 github

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.

Bbndlfm 2021-10-16 github

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'.

LLunderberg 2021-10-16 github

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).

Mmichael-nischt 2022-08-16 github

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

AArchEngel0 2024-07-10 github

Still an issue halfway through 2024, and a pretty silly issue at that!

Ggeotom 2025-01-16 github

Bump: ...it is 2025 and it is still annoying

JJohnMcChungus 2025-04-21 github

Definitely frustrating when devs throw random directories into ~/, and I don't understand why it's so widespread. It feels cheap and polluting to see all my folders laid out nicely with capitalisation and icons in Dolphin, and then the one random non-hidden steamvr directory just screws it up for no reason.

My ~/ is the hub for my files, not VR input configs or whatever. I know that not every little issue can be fixed, but it's baffling that it hasn't been, and honestly a little disrespectful. It makes me want to figure out how to make a separate home directory so I don't have to care about devs throwing their garbage in ~/, but . . . I shouldn't need two home directories.

Nothing extracted yet.