Skip to content

feat(matugen): add standalone Spicetify theme - #3149

Draft
hthienloc wants to merge 2 commits into
AvengeMedia:masterfrom
hthienloc:feat/matugen-spicetify
Draft

feat(matugen): add standalone Spicetify theme#3149
hthienloc wants to merge 2 commits into
AvengeMedia:masterfrom
hthienloc:feat/matugen-spicetify

Conversation

@hthienloc

Copy link
Copy Markdown
Member

Adds a standalone DMS Spicetify theme generated from the current Matugen colors. Disabling the template restores the marketplace theme.

Due to a Spicetify limitation, theme changes cannot be applied on the fly and only take effect after Spotify is reloaded or restarted.

@hthienloc

Copy link
Copy Markdown
Member Author

/claude review

Comment thread quickshell/Modules/Settings/ThemeColorsTab.qml Outdated
Comment thread quickshell/Modules/Settings/ThemeColorsTab.qml Outdated
@claude

claude Bot commented Aug 23, 2026

Copy link
Copy Markdown

Claude review

Two issues; wiring itself (registry, SettingsSpec, SettingsData, Theme skip list, search index) is complete and consistent.

  • User-facing template description not wrapped in I18n.tr() with context, quickshell/Modules/Settings/ThemeColorsTab.qml:2702
  • disableSpicetify() unconditionally forces current_theme marketplace (and restarts Spotify), clobbering a theme the user chose themselves, quickshell/Modules/Settings/ThemeColorsTab.qml:258

Checked: template ID wiring across Go/QML, matugen config placeholder substitution and post_hook, spicetify.ini color keys, search index format vs sibling entries, and translation rules in CONTRIBUTING. Model: claude-opus-5.

@hthienloc

Copy link
Copy Markdown
Member Author

/claude review

@claude

claude Bot commented Aug 23, 2026

Copy link
Copy Markdown

Claude review

No issues found. Both findings from the previous review are addressed: the description is now wrapped in I18n.tr() with translator context, and the restore path saves/restores the user's prior theme and color scheme, gated on current_theme actually being DMS, with --no-restart.

Checked: template ID wiring (Go templateRegistry, SettingsSpec.js, SettingsData, Theme.qml skip lists both branches), CONFIG_DIR/SHELL_DIR substitution against substituteVars (the 'CONFIG_DIR/ quoted-prefix rule holds for the state= assignment), TOML multi-line-literal validity and shell quoting of the post_hook, the JS template literal in restoreSpicetifyTheme (no accidental ${} capture) and _configDir matching Go's XDGConfigHome(), save/restore round trip including the failure and non-DMS branches, matugen color token names and hex_stripped against sibling templates, and the search-index entry against the generator's sort order and synonym map. Model: claude-opus-5.

@hthienloc
hthienloc marked this pull request as draft August 23, 2026 04:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant