Skip to content

Update Deck Shelves to v3.2.1 - #1113

Open
santojon wants to merge 2 commits into
SteamDeckHomebrew:mainfrom
santojon:submit-Deck-Shelves-v3.2.1
Open

Update Deck Shelves to v3.2.1#1113
santojon wants to merge 2 commits into
SteamDeckHomebrew:mainfrom
santojon:submit-Deck-Shelves-v3.2.1

Conversation

@santojon

@santojon santojon commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Update Deck Shelves to v3.2.1

Updates the Deck Shelves Plugin Store entry from the currently published v2.0.0 to v3.2.1.

What's included

This update brings the complete Deck Shelves 3.x feature set to Plugin Store users, including:

  • expanded Sources, Filters and Sorts;
  • Smart Shelf improvements;
  • plugin integrations and extensibility;
  • context-aware shelf behavior;
  • profiles and configuration management;
  • snapshots / configuration recovery tooling;
  • performance and stability improvements;
  • expanded visual and theme integration;
  • improved Home navigation and focus behavior;
  • fixes and refinements accumulated throughout the 2.x and 3.x releases.

Important fixes

First-run feature tour

The feature tour was introduced in the 3.1.x series and could enter a loop under specific persisted-state conditions.

v3.2.1 contains the fix for this issue.

The following were verified:

  • fresh installation;
  • first-run tour completion;
  • restart after completing the tour;
  • existing configuration upgrade from v2.0.0 to v3.2.1.

Configuration compatibility

The update is intentionally a direct update from the currently published v2.0.0 to v3.2.1.

Existing Deck Shelves configuration was tested across the upgrade path, including:

  • regular shelves;
  • Smart Shelves;
  • filters;
  • shelf ordering;
  • visual settings;
  • artwork settings;
  • QAM settings;
  • integrations;
  • persisted onboarding state.

No intermediate Plugin Store releases are required for users to receive this update.

Task Checklist

Developer

  • I am the original author or an authorized maintainer of this plugin.
  • I have abided by the licenses of the libraries I am utilizing, including attaching license notices where appropriate.
  • Generative AI was NOT used to write a majority of the code I am submitting.

Plugin

  • I have verified that my plugin works properly on the Stable and Beta update channels of SteamOS.
  • I have verified my plugin is unique or provides more/alternative functionality to a plugin already on the store.

Backend

  • No: I am using a custom backend other than Python.
  • No: I am using a tool or software from a 3rd party FOSS project that does not have its dependencies statically linked.
  • No: I am using a custom binary that has all of it's dependencies statically linked.

Community

  • I have tested and left feedback on two other pull requests for new or updating plugins.
  • I have commented links to my testing reports in this PR.

Testing reports:

Testing

  • Tested by a third party on SteamOS Stable or Beta update channel.

Upgrade testing

Tested an existing Deck Shelves v2.0.0 installation and upgraded it to v3.2.1 without removing the plugin configuration.

Verified that existing configuration and core functionality remained available after the update.

Notes for reviewers

This PR intentionally skips intermediate Plugin Store releases and updates the currently published v2.0.0 directly to v3.2.1.

The target version was selected because it contains the current 3.x feature set together with the fix for the first-run feature-tour loop introduced in the 3.1.x series.

@santojon
santojon requested a review from a team as a code owner August 24, 2026 12:47
@github-actions github-actions Bot added the plugin-update Updating a plugin on the Plugin Store label Aug 24, 2026
@github-actions

Copy link
Copy Markdown

Issues Found

  • Neither testing box is present in your description. Please include one of them per the Markdown comment above the testing section.

Next Steps

  1. If we found any issues above, please edit your pull request description to resolve them and leave a comment saying you've done so.
  2. For the quickest review, please see the Community section of the pull request template for how you can help other developers.
  3. Once your description is correct, a maintainer will review your pull request as soon as possible.

Thank you for your contribution! If you need any help, please reach out on our Discord server. ❤️

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

This pull request is stale as no updates or testing reports have been posted within the last 7 days. Please ensure you are actively recruiting testers or resolving the issues discussed. If you do not remove the stale label or comment, this will be closed in 7 days. Please close this pull request if you need more time to resolve issues so we can keep our repo healthy.

@github-actions github-actions Bot added the stale label Sep 1, 2026
@santojon

santojon commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author

No issues to solve. PR is done, no new code needed, ready to review.

@chrisae9

chrisae9 commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Third-party test report (SteamOS Stable)

I installed the exact PR build (3.2.1-23a61e1) and created a filter shelf sorted by recently added. The shelf populates and most artwork loads, but the NEW TO LIBRARY badges become unreadable when CSS Loader's Colored Toggles theme is active with Theme Color: White.

Deck Shelves Recently Added shelf showing white-on-white NEW TO LIBRARY badges

I confirmed in the live UI that both computed values are rgb(255, 255, 255):

  • badge background: white
  • badge text: white

This appears to be a Deck Shelves compatibility issue rather than a Colored Toggles issue. In shelfStylesheetTemplate.ts, Deck Shelves consumes --colored-toggles-main-color for the badge background but falls back to hardcoded #fff for its text. Colored Toggles already exposes the contrasting --colored-toggles-friends-text-color variable (which is #333 for its White option).

A compatible fallback would be:

color: var(
  --ds-new-badge-color,
  var(--colored-toggles-friends-text-color, #fff)
);

The gray first card for Total War: WARHAMMER III – Assembly Kit BETA is a separate missing-artwork fallback; the other visible portrait images loaded successfully.

@chrisae9

chrisae9 commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Second third-party test finding (SteamOS Stable): delayed focus re-take after returning from a game

I reproduced a controller-navigation issue on the exact PR build (3.2.1-23a61e1):

  1. Open a game from the Recently Added Deck Shelves row.
  2. Press Back.
  3. Once focus is restored to the opened card, press Down.
  4. Focus initially moves to Recently Played, but about 1.6 seconds later it is forcibly moved back to the previously opened card.
Down correctly reaches Recently Played Delayed automatic snap-back to Recently Added
Focus moves down to Recently Played Focus snaps back to Recently Added

The live focus trace was:

  • +0 ms: Total War restored in Recently Added
  • +177 ms: Down moved focus to CloverPit in Recently Played
  • +1,823 ms: focus was taken back by Total War (1,646 ms after the user movement)

The cause appears to be scheduleConfirmation() in focusRestore.ts. After the initial restore succeeds, it continues polling for five seconds and can call BTakeFocus up to five times whenever the target card loses gpfocus. That treats deliberate Up/Down navigation as focus drift and fights the user.

The confirmation loop should cancel when directional user navigation occurs after the initial restore, so the restored card cannot re-take focus after the user has intentionally moved to another row.

@chrisae9

chrisae9 commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Third-party test finding (SteamOS Stable): the built-in profile name is hardcoded in Portuguese

With the UI set to English, the Active profile dropdown displays Padrão instead of Default.

This comes from FACTORY_PROFILE_NAME = "Padrão" in profiles.ts, so the Portuguese label is shown in every locale. The same file also hardcodes the Portuguese duplicate suffix cópia for duplicated and de-duplicated imported profiles.

The built-in profile already has the stable internal ID __factory__. Its visible name should be rendered through an i18n key (for example, “Default” in en-US) rather than using a localized string as both display text and active-profile state. The copy suffix should likewise come from i18n.

@santojon

santojon commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author

Thanks @chrisae9 for the review. Will drop a new version adding fixes. Taking that issues apart, other plugin features are working fine?

@github-actions github-actions Bot removed the stale label Sep 2, 2026
@chrisae9

chrisae9 commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Yeah sorry, I meant to post a follow up but got busy. I didn’t realize the plugin was already on the store, so I was evaluating it as a whole and calling out bugs as I found them. Looking specifically at the features being added in this update, those worked fine for me.

@chrisae9 chrisae9 mentioned this pull request Sep 7, 2026
8 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

plugin-update Updating a plugin on the Plugin Store

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants