Issue
Spicetify Manager is unable to detect a winget installed instance of spicetify.
Description
Spicetify looks for Spicetify in appdata\Local, if spicetify is installed through winget, it is installed in the following path:
%localappdata%\microsoft\winget\packages\Spicetify.Spicetify_Microsoft.Winget.Source_8wekyb3d8bbwe
I am unsure as to whether this path can change from installation to installation, but the folder should always start with Spicetify.Spicetify, since that's the name of the winget package.
The config is stored in the same folder as other types of installations:
> spicetify -c
C:\Users\<username>\AppData\Roaming\spicetify\config-xpui.ini
Possible solutions
Adding a config file to change these paths
Adding the option to change where Spicetify Manager looks for spicetify would solve not only this, but other weird edge-cases, where someone decides to install spicetify somewhere else. Something like this would do the trick:
spicetify-manager.conf
{
spicetify-exe-path: "%LOCALAPPDATA%\microsoft\winget\packages\Spicetify.Spicetify*\"
spicetify-conf-folder: "%APPDATA%\spicetify\"
}
or:
{
spicetify-exe-path: ["%LOCALAPPDATA%\spicetify\",
"%LOCALAPPDATA%\microsoft\winget\packages\Spicetify.Spicetify*\"]
spicetify-conf-folder: ["%APPDATA%\spicetify\"]
}
Syntax may be different, as Window's classic backslashes can cause problems. A custom config file could be a solution to that, like taking the first option and going for a simple:
spicetify-exe-path=%LOCALAPPDATA%\spicetify\
spicetify-conf-folder=%APPDATA%\spicetify\
By default it could have the regular paths and the user could be prompted to change them if spicetify is not detected.
Call spicetify directly
Another possible solution is to try to call spicetify direcly, if it's in the path variables it should work, and running spicetify -c
returns the config file, which, minus the "config-xpui.ini" part at the end, provides the config folder:
> spicetify -c
C:\Users\<username>\AppData\Roaming\spicetify\config-xpui.ini
Using PowerShell's get-command and .Path it is also possible to know where spicetify is installed, in case it is necessary:
> (get-command spicetify).Path
C:\Users\<username>\AppData\Local\Microsoft\WinGet\Packages\Spicetify.Spicetify_Microsoft.Winget.Source_8wekyb3d8bbwe\spicetify.exe
Logs
Detecting Spicetify...
Directory C:\Users\<username>\AppData\Local\spicetify\ does not exist.
File C:\Users\<username>\AppData\Local\spicetify\spicetify.exe does not exist.
Notes
In all text copied, my username on my PC was changed to <username>
. The logs show my actual username in that spot.