feat(brand): new mark, herald display name, docs palette#1546
Draft
danielcopper wants to merge 1 commit into
Draft
feat(brand): new mark, herald display name, docs palette#1546danielcopper wants to merge 1 commit into
danielcopper wants to merge 1 commit into
Conversation
This was referenced Jul 21, 2026
danielcopper
added a commit
that referenced
this pull request
Jul 22, 2026
Everything from #1546 except the rename. The name stays `decky-romm-sync` so this can land while the new one is still being decided. ## The mark The right-hand half of a Steam Deck set in a disc, split along a 45° facet that runs unbroken across disc, body, screen and every control. It replaces the old banner, which was AI-generated and carried a garbled wordmark. Positions and sizes sit on a millimetre grid mapped into drawing units by one constant, so the layout is adjusted by changing a measurement rather than nudging coordinates. `scripts/logo/gen.py` renders both the shipped asset and a contact sheet of the alternatives. ## README Rebuilt around the mark: mark, name, tagline, two rows of guide links, then one row of user-facing badges. The six CI and quality badges move down to Contributing, where they address the audience that reads them. A **RomM ≥ 4.9.0** badge is new — that is the most common support question, and it now answers itself. The release badge reads `package.json` instead of the tag, because the tags carry the project name. Both install routes collapse into `details` blocks. ## Feature list Corrected against the code. Three claims were wrong rather than merely vague: - **Save sync** was described as "newest-wins conflict resolution with a manual override". There is no newest-wins. The decision is hash-based: it resolves automatically only where that is provably lossless, and any genuine two-sided divergence blocks until you choose. Getting this backwards is worse than saying nothing, because it is a claim about whether saves can be silently overwritten. - **Steam Input** was described as per-shortcut. There is one global mode, applied in bulk. - **RetroDECK path migration** read as though the plugin moves your install. It notices that you moved it, then relocates the ROMs, BIOS files and saves it manages. Artwork was misattributed — only the cover comes from RomM, the rest needs a SteamGridDB key. Collections, save slots and version history, RetroAchievements, multi-disc, region switching, core selection and the cleanup tools were missing entirely. "Controller friendly" is dropped as table stakes for a plugin that renders in the gamepad UI. ## Docs site Off `deep purple`, which sat in RomM's colour family, onto the mark's palette — custom colours in both schemes, since Material has no named palette in this range. The mark becomes the site logo and favicon. ## Note for review `markdownlint`'s MD033 is narrowed to an allow-list of the elements the header needs rather than switched off, so stray HTML elsewhere is still caught. The wordmark is deliberately absent: it would have to spell a name, and that is still open. `gen.py` can compose the lockup as soon as there is one — it loads the outlines on demand. Supersedes #1546 if the rename takes longer than expected; otherwise #1546 rebases onto this. docs: the documentation site's palette, logo and favicon are updated in this change.
danielcopper
force-pushed
the
feature/logo-redesign
branch
3 times, most recently
from
July 22, 2026 20:37
c89cc52 to
237092b
Compare
Sets the name in the README, the documentation site and the Decky menu, and adds the wordmark: the name in inscriptional Roman capitals, the register coats of arms and mottoes are cut in, so the typeface carries the same idea the name does. The glyphs ship as outlines, not as text, so nothing has to have the font installed. Two inks are selected through a picture element, because one colour cannot sit on both GitHub themes. Decky keys a plugin's settings and data directories off the package name, not off plugin.json's name field -- verified against the shipped artefact, whose top-level folder is decky-romm-sync while its plugin.json said "RomM Sync". Changing the display name is therefore free: existing installs keep their settings, their database and their shortcut ownership records. Renaming the package is a separate move that needs a migration first, tracked in #1547 and The README says so too, so the announcement reads as information rather than a reason to worry.
danielcopper
force-pushed
the
feature/logo-redesign
branch
from
July 22, 2026 20:55
237092b to
fd38da3
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Prepares the rebrand so it can be reviewed as a whole. Draft on purpose — the checklist at the bottom has to be worked through first.
The mark
The right-hand half of a Steam Deck set in a disc, split along a 45° facet that runs unbroken across disc, body, screen and every control. It replaces the old banner, which was AI-generated and carried a garbled wordmark.
Positions and sizes sit on a millimetre grid mapped into drawing units by one constant, so the layout is adjusted by changing a measurement rather than nudging coordinates.
scripts/logo/gen.pyrenders both the shipped asset and a contact sheet of the alternatives that were considered.What changed
assets/logo.svgis the source;logo.pngandstore_image.pngare rendered from it. The oldbanner.pngis removed rather than left orphaned.detailsblocks.package.jsonrather than the tag, because the tags carry the old project name.deep purple(which sat in RomM's colour family) onto the mark's palette, set as custom colours in both light and dark schemes. The mark becomes the site logo and favicon.herald, in the README and inplugin.json.On the rename and existing installs
Decky keys a plugin's settings and data directories off the package name, not off
plugin.json'snamefield. Verified on-device:decky-steamgriddbcalls itself "SteamGridDB" and still lives in~/homebrew/settings/decky-steamgriddb. Changing the display name is therefore free, and this PR does it — existing installs keep everything.The risk attaches to the package name, which is what renaming the repository to
heraldwould change. Without a migration,DECKY_PLUGIN_SETTINGS_DIRandDECKY_PLUGIN_RUNTIME_DIRwould point at fresh, empty directories after the update. That is worse than it sounds, because it is not onlysettings.json— the SQLite database goes too, and it holds which Steam shortcut belongs to which ROM plus the save-sync baselines. The plugin would no longer recognise the shortcuts it created, so the next sync would add a second copy of every game, and with no baseline the next save sync would see divergence on every title and block on a conflict prompt for each one. The user would be left cleaning up a duplicated library by hand.The fix is a one-shot copy at startup, shipped in the first release that carries the new package name: derive the old paths from the new ones rather than hardcoding them, act only when the new settings directory is empty and the old one is not, copy rather than move so a rollback still finds its data, write a marker so it cannot run twice, and log it. It has to run in
_mainbeforebootstrap()opens the database, and it is file I/O, so it belongs in an adapter rather than a service. It is temporary and gets deleted two or three releases later.Full plan, tests and the removal step: #1547 — that issue deliberately stays open until the cleanup has happened.
This PR does not rename the package, so nothing here needs the migration yet. Repository and documentation URLs are untouched for the same reason.
Checklist
Mine:
Yours:
decky-romm-sync-prefixplugin.json's store description should be tightened the same way the feature list wasdocs: the documentation site's palette, logo and favicon are updated in this change.