Skip to content

Steam#1763

Draft
HannahPadd wants to merge 116 commits intomainfrom
hannah/steam
Draft

Steam#1763
HannahPadd wants to merge 116 commits intomainfrom
hannah/steam

Conversation

@HannahPadd
Copy link
Copy Markdown

@HannahPadd HannahPadd commented Feb 27, 2026

This pr contains changes needed for the steam release to run.
Changes include:

  • Server can send to the gui if drivers or udev rules aren't installed.
  • Server can attempt to install drivers.

This PR relies on this PR from solarXR SlimeVR/SolarXR-Protocol#198

val parser: CommandLineParser = DefaultParser()
val formatter = HelpFormatter()
val options = Options()
val isLinux = System.getProperty("os.name").lowercase().contains("linux")
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
val isLinux = System.getProperty("os.name").lowercase().contains("linux")
val isLinux = OperatingSystem.currentPlatform == OperatingSystem.LINUX

Comment on lines +38 to +51
val dir = System.getenv("SLIMEVR_SOCKET_DIR")
if (dir != null) return dir
if (currentPlatform == LINUX) {
dir = System.getenv("XDG_RUNTIME_DIR")
if (dir != null) return dir
val isPressureVessel = System.getenv("PRESSURE_VESSEL_RUNTIME")?.isNotEmpty()
if (isPressureVessel == true) {
System.getenv("HOME")?.let { Path(it, ".local", "share", "dev.slimevr.SlimeVR") }
} else {
val runtimeDir = System.getenv("XDG_RUNTIME_DIR")
return if (!runtimeDir.isNullOrBlank()) {
runtimeDir
} else {
System.getProperty("java.io.tmpdir")
}
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like the previous way of re-assigning to dir is more readable. There's also a missing return statement, and XDG_DATA_HOME is not being handled

Suggested change
val dir = System.getenv("SLIMEVR_SOCKET_DIR")
if (dir != null) return dir
if (currentPlatform == LINUX) {
dir = System.getenv("XDG_RUNTIME_DIR")
if (dir != null) return dir
val isPressureVessel = System.getenv("PRESSURE_VESSEL_RUNTIME")?.isNotEmpty()
if (isPressureVessel == true) {
System.getenv("HOME")?.let { Path(it, ".local", "share", "dev.slimevr.SlimeVR") }
} else {
val runtimeDir = System.getenv("XDG_RUNTIME_DIR")
return if (!runtimeDir.isNullOrBlank()) {
runtimeDir
} else {
System.getProperty("java.io.tmpdir")
}
}
var dir = System.getenv("SLIMEVR_SOCKET_DIR")
if (dir != null) return dir
if (currentPlatform == LINUX) {
val isPressureVessel = System.getenv("PRESSURE_VESSEL_RUNTIME")?.isNotEmpty() == true
if (isPressureVessel) {
dir = System.getenv("XDG_DATA_HOME")?.let { Path(it, CONFIG_IDENTIFIER) }
?: System.getenv("HOME")?.let { Path(it, ".local", "share", CONFIG_IDENTIFIER) }
if (dir != null) return dir
}
dir = System.getenv("XDG_RUNTIME_DIR")
if (dir != null) return dir

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think putting them in the config folder is correct.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i dont like ra-assigning. Split it in a smaller function

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think putting them in the config folder is correct.

It doesn't put them in the config folder, CONFIG_IDENTIFIER is just a const that is defined as dev.slimevr.SlimeVR. It's used for the folder in .local/share as well, look at resolveLogDirectory

@loucass003
Copy link
Copy Markdown
Member

I agree with all the proposed changes except the last one. Once this is ready we can merge once v19 is out

@github-actions github-actions bot added Area: Hardware Protocol Related to communication with hardware/software trackers Area: Continuous Integration Automated testing and deployment labels Apr 2, 2026
@HannahPadd HannahPadd marked this pull request as draft April 2, 2026 13:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: Application Protocol Related to communication with apps like the GUI, overlay, games Area: Continuous Integration Automated testing and deployment Area: GUI Related to the GUI Area: Hardware Protocol Related to communication with hardware/software trackers Area: Server Related to the server Area: SteamVR Driver Related to the SteamVR Driver Area: Translation Improvements or additions to translations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants