Sync the Omarchy theme to Blender - #12998
navarrotech wants to merge 2 commits into
Conversation
|
One source-supported opt-out issue remains at Opt-out leaves the live Blender timer activeThe installer deletes the startup module when Source-derived sequence, not a live Blender reproduction: Impact: Opting out still allows subsequent theme changes to overwrite a custom Blender palette in that open session. Removal prevents sync on the next launch, rather than stopping the current session. Suggested change: Check the skip toggle in the live callback before applying colors, with stamp handling that lets re-enabling pick up the current theme. Cover the already-registered callback case, not only deletion of the startup file. If next-launch-only opt-out is intentional, document the restart requirement explicitly. Review informationTest scope: Source inspection of the installer, poller, staging integration and added tests. Blender execution, visual appearance and runtime timing were not tested; the author's reported runs were not reproduced. Community review: Independent automated community review, unaffiliated with the Omarchy team, intended to help prepare PRs for their review. Automated AI review: Astra Medium initial inspection, independent Opus 5.5 High and GPT 6 Sol Xhigh technical assessments, then Astra Medium source verification and synthesis. |
|
This integration can use Omarchy’s existing
A standalone integration could use these files:
Omarchy already renders user templates before it activates the theme and calls the The Python module still runs inside Blender and polls the JSON for live updates. The hook does not need to execute This preserves the PR’s design while allowing users to install the integration separately through the existing extension points. |
|
Thank you for the work on this and for the tests. As outlined above, the existing theme hooks and user templates can support this integration, including live updates through the Blender startup module. I’m closing this PR because those extension points already support this use case. Please consider sharing it as a standalone, opt-in integration for Blender users. Thank you again for the contribution. |
|
Fixed in a8c4ed8. The running module now checks the |
Blender now follows the active Omarchy theme, including live switches while it is open.
Blender cannot be told to reload its theme, so the retint happens inside it:
default/themed/blender.json.tplmaps the palette onto roughly 250 of Blender's theme colors: widgets, panels, editor backgrounds and headers, selection, text editor syntax, console, outliner, node categories, viewport selection and axes. It is rendered like every other template, so a theme can ship its ownblender.json.default/blender/omarchy_theme.pyis a Blender startup module. It resets to Blender's bundled Dark or Light preset (frommode), applies the JSON on top, and polls the file once a second, so a theme switch retints a running Blender within a second and leaves nothing stale from the previous theme. Fields the palette does not cover keep Blender's defaults.omarchy-theme-set-blender, added topost_theme_commands, keeps that module installed in every~/.config/blender/<version>/scripts/startup/, which also covers Blender upgrades. Theskip-blender-theme-changestoggle removes it instead.blender.jsonis classified as colour-only in the staging test. The module only ever writes colour properties: a path that resolves to anything else is skipped with a warning, so a cloned theme'sblender.jsoncannot reach other preferences.Testing
test/shell.d/blender-theme-test.shcovers install, upgrade, opt-out and absent Blender. When Blender is available it also renders every stock theme'sblender.jsonand applies each inside headless Blender, failing on any path a Blender release renamed or retyped. I confirmed it fails on an unknown path and on a non-colour one../test/cliandtheme-staging-test.shpass.A Blender config directory that does not exist yet (Blender never launched) gets the module on the next theme switch.