Skip to content

Releases: spicetify/cli

v0.8.0

11 May 06:10
Compare
Choose a tag to compare

Add

  • Config directory is now customizable via environment variable SPICETIFY_CONFIG. #15

  • Overwriting assets feature and config overwrite_assets option
    Auto replacing Spotify's assets (like images, svg, fonts) or adding new ones with your own, for further customization. #14
    Simply put any new/edited assets in theme's assets folder.

For example, I want to replace images/connect_devices.svg file in zlink folder:

asd

Change

  • [LINUX] Move default Spicetify config directory to $XDG_CONFIG_HOME. If that variable is not available in environment, $HOME/config will be used instead. #12
    If you want it to be somewhere else, please set desired directory in environment variable SPICETIFY_CONFIG.
    Remember to manually move your own themes/extensions/apps (if you have any) and config file in old config folder to new one.

v0.7.0

31 Mar 05:05
Compare
Choose a tag to compare

Add

  • New app and extension Bookmark: Easily store and browse pages, play tracks or tracks in specific time. Useful for who wants to check out an artist, album later without following them or writing their name down.
    Demo usage: https://streamable.com/0qh6p
    To install, run following commands:
spicetify config extensions bookmark.js
spicetify config custom_apps bookmark
spicetify apply
  • Command path: Print path of theme's color.ini, user.css or extension or app and quit. Usage:

    • Print theme's color.inc path:
      spicetify path color
    • Print theme's user.css path:
      spicetify path css
    • Print extension <name> path:
      spicetify -e path <name>
    • Print custom app <name> path:
      spicetify -a path <name>
  • Extension Keyboard Shortcut: New keybinds:

    • J/K: Scroll nearest carousel left/right
    • Ctrl W: Like/Dislike track
  • Automatically create Themes, Extensions, CustomApps folders in user's .spicetify folder if they doesn't exist.

Change

  • Custom apps are now applied by creating a symlink/junction in Spotify Apps folder. So it means you can just change app content and refresh Spotify client to update new change, no need to re-apply.
  • More verbose processing steps information for apply command.

Fix

  • API Spicetify.skipBack and Spicetify.skipForward wrong function call bug.
  • API Spicetify.getHeart doesn't return value.
  • Theme SpicetifyDefault: wrong color for sidebar_indicator_and_hover_button_bg

v0.6.1

20 Mar 11:53
faa1c35
Compare
Choose a tag to compare

No change.
I just forgot to include default CustomApps folder in pre-built packages.
If you build from source or use Homebrew or AUR, don't need to upgrade.
If you use these pre-buit binary packages and want to use Reddit app, please download again.

v0.6.0

19 Mar 14:11
Compare
Choose a tag to compare

Adds:

  • Command config: Easily change one or multiple config values in command-line. Example usage:

    • Disable "inject_css":
      spicetify config inject_css 0
    • Enable "song_page" and disable "fastUser_switching":
      spicetify config song_page 1 fastUser_switching 0
    • Add extension keyboardShortcut.js to "extensions"
      spicetify config extensions keyboardShortcut.js
  • Command color: Easily change theme's one or multiple colors in command-line. Example usage:

    • Change "main_bg" to ff0000
      spicetify color main_bg ff0000
    • Change "slider_bg" to 00ff00 and "pressing_fg" to 0000ff
      spicetify color slider_bg 00ff00 pressing_fg 0000ff
  • Extensions keyboardShortcut.js: Register some useful keybinds to support keyboard-driven navigation in Spotify client. Less time touching the mouse.

    • Ctrl Tab / Ctrl Shift Tab: Navigate items in left sidebar menu.
    • Backspace/Shift Backspace: Navigate history backward/forward.
    • PageUp/PageDown: Force scroll up/down app page only because mouse focus is sometimes in sidebar region and they scroll sidebar instead of app page).
    • J/K: Scroll app page up/down. *Tips hat to Vim users*
    • Ctrl Q: Open Queue page.
    • `: Open up keyboard-driven navigation. Hit correct key sequences to open up place you want to go:

image

Change:

  • If config current_theme is blank, spicetify will apply original Spotify colors and CSS. Same effect as set both inject_css and replace_colors to 0.
  • API Spicetify.addToQueue and Spicetify.removeFromQueue: add supports for Local track and album URI.

Fix: symbolic link bug in Homebrew

05 Mar 11:33
Compare
Choose a tag to compare

spicetify-cli Homebrew install script is also updated.

brew install khanhas/tap/spicetify-cli

or

brew upgrade khanhas/tap/spicetify-cli

Stop auto-update; Inject custom app

02 Mar 12:34
Compare
Choose a tag to compare

Adds

  • Preprocess stop_autoupdate: Prevent Spotify to fetch and update new client version. Useful for anyone who want to keep their themes forever.
    Notes: Since it's a preprocess so you need to restore, backup and apply again to have this feature. Do it in one line:
spicetify restore backup apply
  • Inject Custom Apps: Add your app names to custom_apps in config, separate them by |
    E.g:
[AdditionalOptions]
...
custom_apps = reddit
  • Reddit app fetches playlists, tracks, albums that posted in subreddits. This app has native feels and behavior just like other Spotify apps: you can follow, save, play, open playlist/track/album directly.

v0.4.2

16 Jan 08:29
Compare
Choose a tag to compare

Adds

  • Extension WebNowPlaying Companion (webnowplaying.js): Fetch track information, player state and control player via WebSocket protocol (localhost:8974).

This extension is made specially for Windows Rainmeter users to use along with WebNowPlaying plugin.
But MacOS and Linux users/developers can make a simple daemon program to receive information/send command on your will without touching Spotify Web API.

Update

  • SpicetifyDefault CSS: Remove obsoleted rules

v0.4.1

01 Jan 07:58
Compare
Choose a tag to compare

Adds

  • Dark variant for SpicetifyDefault theme. In color.ini, Comment out Pink/White block and uncomment Green/Dark blue block, then run spicetify update to use dark theme.
  • More user friendly info and warning for commands.
  • Fatal on every IO operations error.

Note for Linux:

Arch and its variant (Spotify installed from AUR)

To have permission write on Spotify app files, remember to run:

sudo chmod 777 /usr/share/spotify -R

before applying Spicetify.

Ubuntu (Spotify installed from Snap)

Currently I do not know how to gain write permission on Spotify files since I'm not familiar with mount system and can't find any workaround. If you somehow manage to add or delete files in /snap/spotify/current/usr/share/spotify directory, please do post an Issue with step by step how you do it, any help would be appreciated.

v0.4.0

30 Dec 06:01
Compare
Choose a tag to compare

Add

  • Config prefs_path: Unlike Windows and MacOS, prefs file location in Linux isn't in fixed place. It largely depends on how Spotify was installed, from debian package, AUR or Snap or other package manager I would never have chance to test. So it's best to have a field in config to set its path manually. Although so, Spicetify does automatically check in few places, if it doesn't find, you can try to find it by running this command in home directory:
find | grep "spotify/prefs$"

Note for Linux user: Spotify from debian package hasn't been updated for a while (1.0.80 compares to 1.0.96 with massive UI elements and Apps structure changes) and it's hard for me to maintenance both new and old version. So try to install the newest one from Snap or AUR before using Spicetify.

  • API Spicetify.Menu: Easier for extension author to create and register custom menu item in Profile menu. Supports single toggle item and sub menu item to contain 2 or more toggles. Check out its documentation in global.d.ts

Change

  • API Spicetify.LibURI to Spicetify.URI

Inject Extensions

25 Dec 18:37
Compare
Choose a tag to compare

Adds

  • Supports inject extension (Javascript script) to extend client functionalities, manipulate UI.
    To use extensions, add your desired extension names in config, separated them by | character.
    Example:
[AdditionalOptions]
...
extensions                   = autoSkipExplicit.js|queueAll.js|djMode.js|shuffle+.js|trashbin.js

Extension files can be store in:

  • Extensions folder in Home directory:
    Windows: %userprofile%\.spicetify\Extensions\
    Linux: ~/.spicetify/Extensions/
    MacOS: ~/spicetify_data/Extensions
  • Extensions folder in Spicetify executable directory.
    If there are 2 extensions having same name, extension in Home directory is prioritized.

Some Spotify API are leaked and put in global object Spicetify. Check out global.d.ts for API documentation.