-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
[Dribbblish] Added easy auto install for linux users #1249
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,110 +1,218 @@ | ||
| # Dribbblish | ||
| # Dribbblish — Spicetify Theme | ||
|
|
||
| ### Base | ||
| A modern, highly customizable Spotify theme for Spicetify with multiple color schemes and advanced UI enhancements. | ||
|
|
||
| --- | ||
|
|
||
| ## Preview | ||
|
|
||
| ### Base | ||
|  | ||
| ### White | ||
|
|
||
| ### White | ||
|  | ||
| ### Dark | ||
|
|
||
| ### Dark | ||
|  | ||
| ### Nord-Light | ||
|
|
||
| ### Nord Light | ||
|  | ||
| ### Nord-Dark | ||
|
|
||
| ### Nord Dark | ||
|  | ||
| ### Beach-Sunset | ||
|
|
||
| ### Beach Sunset | ||
|  | ||
| ### Purple | ||
|
|
||
| ### Purple | ||
|  | ||
| ### Samurai | ||
|
|
||
| ### Samurai | ||
|  | ||
| ### Gruvbox | ||
|
|
||
| ### Gruvbox | ||
|  | ||
| ### Gruvbox Material Dark | ||
|
|
||
| ### Gruvbox Material Dark | ||
|  | ||
| ### Rosé Pine | ||
|
|
||
| ### Rosé Pine | ||
|  | ||
| ### Lunar | ||
|
|
||
| ### Lunar | ||
|  | ||
| ### Catppuccin Latte | ||
|
|
||
| ### Catppuccin Latte | ||
|  | ||
| ### Catppuccin Frappe | ||
|
|
||
| ### Catppuccin Frappe | ||
|  | ||
| ### Catppuccin Macchiato | ||
|
|
||
| ### Catppuccin Macchiato | ||
|  | ||
| ### Catppuccin Mocha | ||
|
|
||
| ### Catppuccin Mocha | ||
|  | ||
|
|
||
| ## Features | ||
| ### Resizable sidebar | ||
| --- | ||
|
|
||
| <img src="https://i.imgur.com/1zomkmd.png" alt="img" align="center" width="500px"> | ||
| ## Features | ||
|
|
||
| ### Customizable sidebar | ||
| Rearrange icons positions, stick icons to header or hide unnecessary to save space. | ||
| Turn on "Sidebar config" mode in Profile menu and hover on icon to show control buttons. | ||
| After you finish customizing, turn off Config mode in Profile menu to save. | ||
| ### Resizable Sidebar | ||
| <img src="https://i.imgur.com/1zomkmd.png" alt="img" align="center" width="500px"> | ||
|
|
||
| <img src="https://i.imgur.com/86gqPe8.png" alt="img" align="center" width="500px"> | ||
| --- | ||
|
|
||
| ### Playlist Folder image | ||
| Right click at folder and choose images for your playlist folder. Every image formats supported by Chrome can be used, but do keep image size small and in compressed format. | ||
| ### Customizable Sidebar | ||
| Rearrange icon positions, stick icons to header, or hide unnecessary icons to save space. | ||
|
|
||
| <img src="https://i.imgur.com/WGQ7Bev.gif" alt="img" align="center" width="500px"> | ||
| **How to use:** | ||
| 1. Open Profile menu. | ||
| 2. Enable **Sidebar config** mode. | ||
| 3. Hover over icons to reveal control buttons. | ||
| 4. Disable **Sidebar config** mode to save. | ||
|
|
||
| ### Left/Right expanded cover | ||
| In profile menu, toggle option "Right expanded cover" to change expaned current track cover image to left or right side, whereever you prefer. | ||
| <img src="https://i.imgur.com/86gqPe8.png" alt="img" align="center" width="500px"> | ||
|
|
||
| --- | ||
|
|
||
| ### Playlist Folder Images | ||
| Right-click a playlist folder and assign custom images. | ||
| All Chrome-supported image formats work; small and compressed images are recommended. | ||
|
|
||
| <img src="https://i.imgur.com/WGQ7Bev.gif" alt="img" align="center" width="500px"> | ||
|
|
||
| --- | ||
|
|
||
| ### Left / Right Expanded Cover | ||
| Toggle **Right expanded cover** in the Profile menu to move the expanded album artwork to the left or right. | ||
|
|
||
| --- | ||
|
|
||
| ## Requirements | ||
|
|
||
| - Spicetify **>= v2.5.0** | ||
| - Spotify **>= v1.1.56** | ||
|
|
||
| --- | ||
|
|
||
| ## Auto Install | ||
|
|
||
| ## Auto-install | ||
| Make sure you are using spicetify >= v2.5.0 and Spotify >= v1.1.56. | ||
| ### Windows | ||
|
|
||
| ```powershell | ||
| Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/spicetify/spicetify-themes/master/Dribbblish/install.ps1" | Invoke-Expression | ||
| ```` | ||
|
|
||
| --- | ||
|
|
||
| ## Linux — Hassle-Free Script Install | ||
|
|
||
| Ready-made install script is available: | ||
|
|
||
| ``` | ||
| install-linux.sh | ||
| ``` | ||
|
Comment on lines
+113
to
115
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add language specifier to code blocks. Per static analysis, these code blocks should have a language specified. Since they contain filenames, consider using Proposed fix-```
+```text
install-linux.shIn |
||
|
|
||
| ### Usage | ||
|
|
||
| ```bash | ||
| chmod +x install-linux.sh | ||
| ./install-linux.sh | ||
| ``` | ||
|
|
||
| --- | ||
|
|
||
| ## Manual Install | ||
| Run these commands: | ||
|
|
||
| ### Linux and MacOS: | ||
| In **Bash**: | ||
| ### Linux & macOS (Bash) | ||
|
|
||
| ```bash | ||
| cd "$(dirname "$(spicetify -c)")/Themes/Dribbblish" | ||
| spicetify config current_theme Dribbblish color_scheme base | ||
| spicetify config inject_css 1 replace_colors 1 overwrite_assets 1 inject_theme_js 1 | ||
| spicetify apply | ||
| ``` | ||
|
|
||
| ### Windows | ||
| In **Powershell**: | ||
| --- | ||
|
|
||
| ### Windows (PowerShell) | ||
|
|
||
| ```powershell | ||
| cd "$(spicetify -c | Split-Path)\Themes\Dribbblish" | ||
| spicetify config current_theme Dribbblish color_scheme base | ||
| spicetify config inject_css 1 replace_colors 1 overwrite_assets 1 inject_theme_js 1 | ||
| spicetify apply | ||
| ``` | ||
|
|
||
| From Spotify > v1.1.62, in sidebar, they use an adaptive render mechanic to actively show and hide items on scroll. It helps reducing number of items to render, hence there is significant performance boost if you have a large playlists collection. But the drawbacks is that item height is hard-coded, it messes up user interaction when we explicity change, in CSS, playlist item height bigger than original value. So you need to add these 2 lines in Patch section in config file: | ||
| --- | ||
|
|
||
| ## Sidebar Height Patch (Important) | ||
|
|
||
| From Spotify **> v1.1.62**, adaptive rendering breaks interaction when playlist item height is modified via CSS. | ||
|
|
||
| Add the following to your Spicetify config file: | ||
|
|
||
| ```ini | ||
| [Patch] | ||
| xpui.js_find_8008 = ,(\w+=)32, | ||
| xpui.js_repl_8008 = ,${1}56, | ||
| ``` | ||
|
|
||
| --- | ||
|
|
||
| ## Change Color Schemes | ||
| There are 9 color schemes you can choose: `base`, `white`, `dark`, `dracula`, `nord-dark`, `nord-light`, `beach-sunset`, `samurai`, `purple`, `gruvbox`, `gruvbox-material-dark`, `catppuccin-latte`, `catppuccin-frappe`, `catppuccin-macchiato`, and `catppuccin-mocha`. Change scheme with commands: | ||
| ``` | ||
|
|
||
| Available schemes: | ||
|
|
||
| `base`, `white`, `dark`, `dracula`, `nord-dark`, `nord-light`, | ||
| `beach-sunset`, `samurai`, `purple`, `gruvbox`, | ||
| `gruvbox-material-dark`, | ||
| `catppuccin-latte`, `catppuccin-frappe`, `catppuccin-macchiato`, `catppuccin-mocha` | ||
|
|
||
| ### Command | ||
|
|
||
| ```bash | ||
| spicetify config color_scheme <scheme name> | ||
| spicetify apply | ||
| ``` | ||
|
|
||
| ## Auto-uninstall | ||
| --- | ||
|
|
||
| ## Auto Uninstall | ||
|
|
||
| ### Windows | ||
|
|
||
| ```powershell | ||
| Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/spicetify/spicetify-themes/v2/Dribbblish/uninstall.ps1" | Invoke-Expression | ||
| ``` | ||
|
|
||
| ## Manual uninstall | ||
| Remove the dribbblish theme with the following commands | ||
| --- | ||
|
|
||
| ## Linux — Hassle-Free Script Uninstall | ||
|
|
||
| Ready-made uninstall script is available: | ||
|
|
||
| ``` | ||
| uninstall-linux.sh | ||
| ``` | ||
|
|
||
| ### Usage | ||
|
|
||
| ```bash | ||
| chmod +x uninstall-linux.sh | ||
| ./uninstall-linux.sh | ||
| ``` | ||
|
|
||
| --- | ||
|
|
||
| ## Manual Uninstall | ||
|
|
||
| ```bash | ||
| spicetify config current_theme " " color_scheme " " | ||
| spicetify apply | ||
| ``` | ||
|
|
||
| --- | ||
|
|
||
| ``` | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove orphaned code block marker. There's an unclosed/orphaned code block at the end of the file that serves no purpose. Proposed fix ---
-
-```🧰 Tools🪛 markdownlint-cli2 (0.18.1)218-218: Fenced code blocks should have a language specified (MD040, fenced-code-language) 🤖 Prompt for AI Agents |
||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,64 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #!/usr/bin/env bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| set -e | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Check for spicetify | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| if ! command -v spicetify >/dev/null 2>&1; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "Spicetify not found" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "Follow instruction on: https://spicetify.app/docs/getting-started/simple-installation#linux" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| exit 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "Downloading themes package..." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ZIP_FILE="/tmp/spicetify-themes.zip" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| EXTRACT_PATH="/tmp/spicetify-themes-master" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| curl -L \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "https://github.com/spicetify/spicetify-themes/archive/refs/heads/master.zip" \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| -o "$ZIP_FILE" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "Extracting themes package..." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| rm -rf "$EXTRACT_PATH" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| unzip -q "$ZIP_FILE" -d /tmp | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+14
to
+24
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add The curl command should use Proposed fix+# Cleanup on exit
+cleanup() {
+ rm -rf "$ZIP_FILE" "$EXTRACT_PATH"
+}
+trap cleanup EXIT
+
ZIP_FILE="/tmp/spicetify-themes.zip"
EXTRACT_PATH="/tmp/spicetify-themes-master"
-curl -L \
+curl -fL \
"https://github.com/spicetify/spicetify-themes/archive/refs/heads/master.zip" \
-o "$ZIP_FILE"📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Resolve spicetify config directory | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SPICE_PATH="$(spicetify -c | xargs dirname)" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DRIB_PATH="$EXTRACT_PATH/Dribbblish" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DEST_PATH="$SPICE_PATH/Themes/Dribbblish" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Copy to personal Themes folder | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| rm -rf "$DEST_PATH" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cp -r "$DRIB_PATH" "$DEST_PATH" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "Configuring..." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| spicetify | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| spicetify config inject_css 1 replace_colors 1 overwrite_assets 1 inject_theme_js 1 current_theme Dribbblish | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| CONFIG_FILE="$SPICE_PATH/config-xpui.ini" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Add patch if missing | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| if ! grep -q "xpui.js_find_8008" "$CONFIG_FILE"; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| if ! grep -q "^\[Patch\]" "$CONFIG_FILE"; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "" >> "$CONFIG_FILE" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "[Patch]" >> "$CONFIG_FILE" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cat >> "$CONFIG_FILE" <<EOF | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| xpui.js_find_8008=,(\\w+=)32, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| xpui.js_repl_8008=,\\156, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| EOF | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+51
to
+54
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Escape sequences may behave unexpectedly in heredoc. The Proposed fix- cat >> "$CONFIG_FILE" <<EOF
+ cat >> "$CONFIG_FILE" <<'EOF'
xpui.js_find_8008=,(\w+=)32,
xpui.js_repl_8008=,\156,
EOF🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Apply configuration | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| if grep -q "^version" "$CONFIG_FILE"; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| spicetify apply | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| else | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| spicetify backup apply | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "Done." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,20 @@ | ||||||||||||||||||||||||||||||||||
| #!/usr/bin/env bash | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| # Clear current theme | ||||||||||||||||||||||||||||||||||
| spicetify config current_theme "" | ||||||||||||||||||||||||||||||||||
|
Comment on lines
+1
to
+4
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add Unlike the install script, this script lacks Proposed fix #!/usr/bin/env bash
+set -e
+
+# Check for spicetify
+if ! command -v spicetify >/dev/null 2>&1; then
+ echo "Spicetify not found"
+ exit 1
+fi
+
# Clear current theme
spicetify config current_theme ""📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| # Get Spicetify config path | ||||||||||||||||||||||||||||||||||
| CONFIG_PATH=$(spicetify -c) | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| # Create a backup for safety | ||||||||||||||||||||||||||||||||||
| cp "$CONFIG_PATH" "$CONFIG_PATH.bak" | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| # Remove xpui.js_find_8008 line | ||||||||||||||||||||||||||||||||||
| sed -i '/xpui.js_find_8008/d' "$CONFIG_PATH" | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| # Remove xpui.js_repl_8008 line | ||||||||||||||||||||||||||||||||||
| sed -i '/xpui.js_repl_8008/d' "$CONFIG_PATH" | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| # Apply changes | ||||||||||||||||||||||||||||||||||
| spicetify apply | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent branch references between install and uninstall URLs.
The Windows auto-install script references
masterbranch while the uninstall script referencesv2branch. This may cause version mismatches or broken functionality if the branches diverge.Consider aligning both to the same branch for consistency.
Also applies to: 187-188
🤖 Prompt for AI Agents