Skip to content
docs
GitHub

Testing and sharing

Test in the desktop app, include all resources and distribute a complete package.

Before sharing, test the installed copy in the desktop application. Valid JSON and a successful preview do not check every window, font or operating system.

A standalone color theme needs theme.jsonc. Include stylesheets and every resource referenced by the manifest or CSS. An icon theme needs its wrapper, icon document and every declared image and font, including those in unused definitions. Retain bundled file licenses.

Example What it demonstrates
Graphite Notes Minimal adaptive theme and overrides
Reading Room Editor, syntax and terminal in both modes
Graphite Grid Background image, CSS and a plugin token
Plain file icons Minimal SVG icon set
Workspace file icons Folders, extensions, language and filenames
Plain interface icons Font, control IDs and built-in fallbacks

These themes need no compilation. Download entire folders from the documentation repository, keep their structure and use Import folder. The CSS guide’s font example requires your own font file; it is not an additional ready-made package.

  1. Import the folder as a fresh local copy. Check its category and choose Use theme.
  2. For an adaptive theme, check Light, Dark and System. Change the system mode. For a fixed theme, confirm that the app retains the forced mode.
  3. Open a source file, make a small edit and keep a terminal running. Change the theme. Check contents, undo and the ongoing terminal session.
  4. Inspect main and Settings windows, focused and unfocused selections, keyboard focus, menus, a modal, the file tree and long tab names.
  5. Edit a theme draft and choose Preview. Confirm preview locality, Cancel preview, saving and discarding unsaved changes.
  6. For icons, check missing definitions, open and closed folders, filenames and fonts. For CSS, check all images and fonts after restarting.
  7. Edit an installed file externally. Check reloading and Refresh. Avoid editing the same document in two places at once.
  8. Restart Lomi and confirm the saved selection. Repeat on every operating system you intend to claim as supported.

On a separate test copy, add an unknown field or invalid color: the editor should report an error and retain the draft. Then temporarily rename a required asset: application should fail and retain the last working appearance. Restore the file afterwards.

For a save conflict, open a draft, change the same installed file outside Lomi and try saving the draft. The expected result is refusal to overwrite a newer revision. Copy the draft before reloading; the app does not automatically merge both versions.

Recipient Deliver Installation
Lomi user Entire native theme folder Settings > Themes > Import folder, then Use theme
VS Code user File created by Export to VS Code Extensions: Install from VSIX, then select the appropriate theme type
Plugin package user Theme in contributes.themes and package assets Import the plugin package, then select the theme in Themes

If sharing a native folder as ZIP, the recipient extracts it first. A native ZIP is not a VSIX import. VSIX export does not publish to the Marketplace.

Include a short README with the name, supported appearances, category selection instructions, font requirements, licenses and operating systems actually tested. State known limitations, such as CSS layouts not transferring to VS Code.

In the plugin manifest, contributes.themes declares entries with id and path pointing to the theme directory. Include that directory in the build configuration’s assets. See plugin declarations for the format and complete example, and packaging for package contents.

That theme belongs to an immutable package revision; users choose Duplicate to customize it. Before removing the plugin, switch every active theme it owns to another selection.

Sources: ThemesPage.tsx, ThemeEditor.tsx, themes.rs.