diff --git a/package.json b/package.json index 20075644..cf0c318c 100644 --- a/package.json +++ b/package.json @@ -92,14 +92,16 @@ "src-electron/*", "VRCX.png", "images/tray.png", - "Version" + "Version", + "src-electron/libs/linux/libopenvr_api.so" ], "asarUnpack": [ "node_modules/node-api-dotnet/**/*", "node_modules/node-api-dotnet/net9.0/**/*", "build/Electron/*", "build/Electron/**", - "build/Electron/dotnet-runtime/**/*" + "build/Electron/dotnet-runtime/**/*", + "src-electron/libs/linux/libopenvr_api.so" ], "extraResources": [ { @@ -121,6 +123,10 @@ { "from": "build/Electron/dotnet-runtime/", "to": "dotnet-runtime/" + }, + { + "from": "src-electron/libs/linux/libopenvr_api.so", + "to": "bin/libopenvr_api.so" } ], "directories": { @@ -161,4 +167,4 @@ "hazardous": "^0.3.0", "node-api-dotnet": "^0.9.12" } -} +} \ No newline at end of file diff --git a/src-electron/libs/linux/libopenvr_api.so b/src-electron/libs/linux/libopenvr_api.so new file mode 100644 index 00000000..39ec4d5e Binary files /dev/null and b/src-electron/libs/linux/libopenvr_api.so differ diff --git a/src-electron/main.js b/src-electron/main.js index bed14cd5..4094c3f7 100644 --- a/src-electron/main.js +++ b/src-electron/main.js @@ -26,6 +26,11 @@ if (process.platform === 'linux') { process.env.DOTNET_ROOT = bundledDotNetPath; process.env.PATH = `${bundledDotNetPath}:${process.env.PATH}`; } + + const openvrLibPath = path.join(process.resourcesPath, '..', 'bin'); + if (fs.existsSync(openvrLibPath)) { + process.env.LD_LIBRARY_PATH = `${openvrLibPath}:${process.env.LD_LIBRARY_PATH || ''}`; + } } else if (process.platform === 'darwin') { const dotnetPath = path.join('/usr/local/share/dotnet'); const dotnetPathArm = path.join('/usr/local/share/dotnet/x64');