From 791c34b69640b401f2f2f24a5c9059e75ae0af28 Mon Sep 17 00:00:00 2001 From: 0chroma <21014+0chroma@users.noreply.github.com> Date: Wed, 18 Sep 2024 07:47:37 -0700 Subject: [PATCH] check flatpak runtime dir first --- src/bridge/bridge-unix-sockets.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/bridge/bridge-unix-sockets.cpp b/src/bridge/bridge-unix-sockets.cpp index 8a78bc3..356e695 100644 --- a/src/bridge/bridge-unix-sockets.cpp +++ b/src/bridge/bridge-unix-sockets.cpp @@ -35,6 +35,7 @@ #define TMP_DIR "/tmp" #define XDG_DATA_DIR_DEFAULT ".local/share" #define SLIMEVR_DATA_DIR "slimevr" +#define SLIMEVR_FLATPAK_RUNTIME_DIR "app/dev.slimevr.SlimeVR" #define SOCKET_NAME "SlimeVRDriver" namespace fs = std::filesystem; @@ -162,7 +163,11 @@ BridgeStatus runBridgeFrame(SlimeVRDriver::VRDriver& driver) { // TODO: do this once in the constructor or something if(const char* ptr = std::getenv("XDG_RUNTIME_DIR")) { const fs::path xdg_runtime = ptr; - socket = (xdg_runtime / SOCKET_NAME); + // check flatpak dir first, then root runtime dir + socket = (xdg_runtime / SLIMEVR_FLATPAK_RUNTIME_DIR / SOCKET_NAME); + if(!fs::exists(socket)) { + socket = (xdg_runtime / SOCKET_NAME); + } } if(!fs::exists(socket)) { socket = (fs::path(TMP_DIR) / SOCKET_NAME);