Skip to content

Commit 3bf4d11

Browse files
authored
Merge pull request #15 from deiteris/main
Remove trackers from Vive trackers on uninstall and improve checks
2 parents d56c074 + 817a75c commit 3bf4d11

2 files changed

Lines changed: 31 additions & 7 deletions

File tree

windows/web/slimevr_web_installer.nsi

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ InstallDir "$PROGRAMFILES\SlimeVR Server" ; $InstDir default value. Defaults to
2727
ShowInstDetails show
2828
ShowUninstDetails show
2929

30-
BrandingText "SlimeVR Installer 0.1.2"
30+
BrandingText "SlimeVR Installer 0.1.4"
3131

3232
# Admin rights are required for:
3333
# 1. Removing Start Menu shortcut in Windows 7+
@@ -114,8 +114,9 @@ Function ${un}cleanInstDir
114114
Delete "$INSTDIR\*.log"
115115
Delete "$INSTDIR\*.lck"
116116
Delete "$INSTDIR\vrconfig.yml"
117-
Delete "$INSTDIR\LICENSE"
117+
Delete "$INSTDIR\LICENSE*"
118118

119+
RMDir /r "$INSTDIR\Recordings"
119120
RMdir /r "$INSTDIR\jre"
120121
RMdir /r "$INSTDIR\driver"
121122
RMDir /r "$INSTDIR\logs"

windows/web/steamvr.ps1

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@ param (
77

88
# Prune external SlimeVR driver(s)
99
$OpenVrConfigPath = "$env:LOCALAPPDATA\openvr\openvrpaths.vrpath"
10-
$OpenVrConfig = Get-Content -Path $OpenVrConfigPath | ConvertFrom-Json
10+
$OpenVrConfig = Get-Content -Path $OpenVrConfigPath -Encoding utf8 | ConvertFrom-Json
1111
Write-Host "Checking `"$OpenVrConfigPath`" for SlimeVR Drivers..."
1212
$ExternalDriverPaths = @()
13-
if ($OpenVrConfig.external_drivers.Length) {
13+
if ($OpenVrConfig.external_drivers -and $OpenVrConfig.external_drivers.Length) {
1414
foreach ($ExternalDriverPath in $OpenVrConfig.external_drivers) {
1515
if (-not (Test-Path -Path "$ExternalDriverPath\driver.vrdrivermanifest")) {
16-
Write-Host "VR driver path `"$ExternalDriverPath`" has no manifest. Skipping..."
16+
Write-Host "VR driver path `"$ExternalDriverPath`" has no manifest."
1717
$ExternalDriverPaths += $ExternalDriverPath
1818
continue
1919
}
20-
$DriverManifest = Get-Content -Path "$ExternalDriverPath\driver.vrdrivermanifest" | ConvertFrom-Json
20+
$DriverManifest = Get-Content -Path "$ExternalDriverPath\driver.vrdrivermanifest" -Encoding utf8 | ConvertFrom-Json
2121
if ($DriverManifest.name -eq "SlimeVR") {
2222
Write-Host "Found external SlimeVR Driver in `"$ExternalDriverPath`". Removing..."
2323
continue
@@ -30,7 +30,30 @@ if ($ExternalDriverPaths.Length -eq 0) {
3030
} else {
3131
$OpenVrConfig.external_drivers = $ExternalDriverPaths
3232
}
33-
ConvertTo-Json -InputObject $OpenVrConfig | Out-File -FilePath "$env:LOCALAPPDATA\openvr\openvrpaths.vrpath"
33+
[System.IO.File]::WriteAllLines($OpenVrConfigPath, (ConvertTo-Json -InputObject $OpenVrConfig))
34+
35+
# Remove trackers on uninstall
36+
if ($Uninstall -eq $true) {
37+
$SteamVrSettingsPath = "$SteamPath\config\steamvr.vrsettings"
38+
Write-Host "Removing trackers from `"$SteamVrSettingsPath`""
39+
$SteamVrSettings = (Get-Content -Path $SteamVrSettingsPath -Encoding utf8) -creplace "/devices/SlimeVR/", "/devices/SlimeVR1/" | ConvertFrom-Json
40+
# Remove "driver_SlimeVR" entry if the driver was disabled manually
41+
$SteamVrSettings.PSObject.Properties.Remove("driver_SlimeVR")
42+
if ($SteamVrSettings.trackers) {
43+
$SettingsTrackers = $SteamVrSettings.trackers.PSObject.Properties
44+
$Trackers = New-Object -TypeName PSCustomObject
45+
if ($SettingsTrackers.Value.Count) {
46+
foreach ($Tracker in $SettingsTrackers) {
47+
if ($Tracker.Name -match "^/devices/slimevr(1)?/") {
48+
continue
49+
}
50+
Add-Member -InputObject $Trackers -MemberType NoteProperty -Name $Tracker.Name -Value $Tracker.Value
51+
}
52+
}
53+
$SteamVrSettings.trackers = $Trackers
54+
[System.IO.File]::WriteAllLines($SteamVrSettingsPath, (ConvertTo-Json -InputObject $SteamVrSettings))
55+
}
56+
}
3457

3558
$SteamVrPaths = @("$SteamPath\steamapps\common\SteamVR")
3659
$res = Select-String -Path "$SteamPath\steamapps\libraryfolders.vdf" -Pattern '"path"\s+"(.+?)"' -AllMatches

0 commit comments

Comments
 (0)