This project was restructured and moved into Spicetify
Note: On windows, use pwsh
and not cmd
as shell!
- First and foremost install the build dependencies: Git and Go
- Then clone this repo in the appropriate folder:
- On Windows,
git clone --depth 1 --recurse-submodules https://github.com/Delusoire/bespoke $env:LOCALAPPDATA/bespoke
- On Linux,
git clone --depth 1 --recurse-submodules https://github.com/Delusoire/bespoke $XDG_CONFIG_HOME/bespoke
(if $XDG_CONFIG_HOME is not set, use~/.config
) - On macOS,
git clone --depth 1 --recurse-submodules https://github.com/Delusoire/bespoke "$HOME/Library/Application Support/bespoke"
- On Windows,
- Change directory to
bespoke/cli/
and executego build .
, this will create a newbespoke
executable in the working directory - [optional] Add the
bespoke
executable to your PATH variable for ease of access- On Windows, run the following in pwsh:
$user = [EnvironmentVariableTarget]::User $path = [Environment]::GetEnvironmentVariable('PATH', $user) $path = "$path;$env:LOCALAPPDATA\bespoke\cli" [Environment]::SetEnvironmentVariable('PATH', $path, $user)
- On a default macOS installation, run the following:
echo "$HOME/Library/Application Support/bespoke/cli" >> /etc/paths
- On other platforms you can perform a simple search on how to set the PATH environment variable
- On Windows, run the following in pwsh:
- Run
bespoke init
to initialize the bespoke setup, this only needs to be done once. If the command files, try running it in an elevated shell (as Administrator)
- Run
bespoke apply
to patch the Spotify desktop client, this needs only be done when using bespoke for the first time or when the Spotify client updates (and reverts all the patches).
You can always revert this by running bespoke fix
.
To update bespoke, all you need to run is git pull --recurse-submodules
If your Spotify installation is somewhat unusual, then you have to specify the paths to the Spotify data and Spotify config folders manually.
You can do that by creating a config.yaml
file and adding a spotify-data: path/to/spotify/data/
(and optionally a spotify-config: path/to/spotify/config/
for more advanced dev workflows)
Furthermore, if the Spotify folder is Frozen (like the Microsoft Store version of Spotify), you have must tell bespoke to use the mirror mode.
For the Microsoft Store version of Spotify, this would be enough:
$configPath = "$env:LOCALAPPDATA\bespoke\config.yaml"
$spotifyPackage = Get-AppxPackage | Where-Object -Property Name -Eq "SpotifyAB.SpotifyMusic"
"mirror: true" >> $configPath
"spotify-data: $($spotifyPackage.InstallLocation)" >> $configPath
"spotify-config: $env:LOCALAPPDATA\Packages\$($spotifyPackage.PackageFamilyName)\LocalState\Spotify\" >> $configPath
bespoke daemon enable
// TODO
- Add a "spotify.version" semver prop to Metadata.json that will be used to disable non-conforming modules
- Improve classname remapping:
- Hook into postcss & swc transpiration
- Maintain classname maps on a per version basis
- Add TUI for when bespoke is executed without arguments
- Improve spotify paths recognition on Linux
- Add linux desktop entry (for custom url scheme)
- Package the executable into a
.app
for MacOS