feat: add theme-lab — turn any image into a Hermes Desktop theme - #9
Open
0-CYBERDYNE-SYSTEMS-0 wants to merge 1 commit into
Open
feat: add theme-lab — turn any image into a Hermes Desktop theme#90-CYBERDYNE-SYSTEMS-0 wants to merge 1 commit into
0-CYBERDYNE-SYSTEMS-0 wants to merge 1 commit into
Conversation
First desktop-surface example in this repo. theme-lab is a Hermes Desktop plugin that turns any image into a full DesktopTheme (light + dark palettes, 16-color ANSI terminal palette) registered via THEMES_AREA, live in settings, Cmd-K, and /skin. Demonstrates the Desktop Plugin SDK end to end: - THEMES_AREA (DesktopTheme registration) - PANES_AREA + PALETTE_AREA (forge pane + Cmd-K command) - ctx.storage with v1->v2 schema migration - Live apply without Settings via the gateway config.set display.skin RPC (writes a backend skin YAML the gateway can resolve, then applies live) - Boot persistence (re-applies the saved appearance once the gateway is ready) Install: cp -r theme-lab ~/.hermes/desktop-plugins/ Standalone distribution: github.com/0-CYBERDYNE-SYSTEMS-0/theme-lab
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.
What
Adds
theme-lab— the first desktop-surface example in this repo. A Hermes Desktop plugin that turns any image into a fullDesktopTheme(light + dark palettes, 16-color ANSI terminal palette), registered viaTHEMES_AREAso it appears live in Settings → Appearance, ⌘K, and/skin.Why this belongs here
Per the repo README: "Reference plugins live here so plugin authors can read them, copy them, install them as user plugins" — and "These are not bundled with
hermes-agent." This is exactly that: a focused, self-contained desktop plugin referencing the Desktop Plugin SDK. It is the firstTHEMES_AREAexample in the repo (the existing examples are Python gateway/dashboard plugins that install to~/.hermes/plugins/; a desktop plugin lives in~/.hermes/desktop-plugins/— a different SDK surface, documented in the README).SDK surfaces it demonstrates
THEMES_AREA— register aDesktopTheme(colors +darkColors+ ANSIterminal/darkTerminal).PANES_AREA+PALETTE_AREA— the forge pane and a ⌘K command.ctx.storage— persistence with a v1 → v2 schema migration.config.set display.skin=<name>RPC broadcastsskin.changed, which the desktop drains into a live repaint. The plugin writes the forged theme as a backend skin (~/.hermes/skins/<slug>.yaml) so the gateway can resolve it, then applies it live — no Settings visit.How to install / test
cp -r theme-lab ~/.hermes/desktop-plugins/The app hot-loads within seconds; ⌘K → Reload desktop plugins if it doesn't appear. Open the Theme Lab pane, drop an image, hit Apply — the theme applies live.
Notes
0-CYBERDYNE-SYSTEMS-0/theme-lab. This example is pinned to that work.plugin.js, only imports@hermes/plugin-sdk+ react. Color math validated by a standalone Node harness (forge-math-test.cjs, no build).~/.hermes/skins/and requires the gateway; if unavailable it falls back to the honest Settings deep-link.License
MIT (same as this repo).