Skip to content

Add Brave template (packed Chromium theme) - #87

Merged
ItsLemmy merged 1 commit into
noctalia-dev:mainfrom
kurtlieber:feat/brave-template
Aug 30, 2026
Merged

Add Brave template (packed Chromium theme)#87
ItsLemmy merged 1 commit into
noctalia-dev:mainfrom
kurtlieber:feat/brave-template

Conversation

@kurtlieber

@kurtlieber kurtlieber commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Template

  • App: Brave
  • Template id (directory): brave
  • New template
  • Update to an existing template

What it themes

Brave / Chromium chrome UI via a packed theme (manifest.json + generated
solid PNGs). Noctalia renders the manifest to
$XDG_CACHE_HOME/noctalia/brave-theme/manifest.json. The hook installs
frame / toolbar / NTP / tab-background images next to it at
$XDG_DATA_HOME/noctalia/brave-theme so Linux chrome actually paints
(color-only packs often leave the frame and toolbar unpainted).

Surfaces: window frame, tabs, toolbar, bookmark text, omnibox, NTP
background / text / link.

Settings checkboxes and Leo accents are not in Chromium's overwriteable
theme table. If Brave is fully quit, the hook also writes
browser.theme.color_scheme and browser.theme.user_color (primary seed).
It never writes Preferences while Brave is running.

Related but distinct from #84 (ungoogled-chromium): this targets Brave's
profile path and installs the PNG fill images.

Testing

Tested as a user template first (Noctalia v5.0.0).

  • App version tested: Brave 151.1.93.136
  • Applied a dark theme and confirmed the app picked it up
  • Applied a light theme and confirmed the app picked it up
  • Re-applied twice and the app config is still correct (hooks are idempotent)

Screenshot below is the current light palette. First-time step: load unpacked
from brave://extensions → Developer mode →
~/.local/share/noctalia/brave-theme. After that, palette changes update the
pack; reload with Developer mode → Update (or restart Brave).

Screenshots

Brave chrome with the Noctalia theme

Hooks

  • What the hook does: writes solid PNGs beside the rendered manifest so
    Linux paints frame/toolbar/NTP; prints first-time load-unpacked help; if
    Brave is stopped, syncs color_scheme / user_color. Optional
    backup / restore verbs snapshot Preferences once.
  • It is idempotent: running it twice does not duplicate lines or corrupt the config.
  • It fails loudly (non-zero exit, message on stderr) when the app's config is missing.
  • It downloads nothing and executes nothing it did not ship in this directory.
  • It touches only this app's own config.

Checklist

  • The directory name matches the [catalog.brave] id in template.toml.
  • category is one of: ai, audio, browser, chat, compositor, editor, gaming, launcher, system, terminal, misc.
  • Every input_path names a file that exists in this directory.
  • No generated output or app-specific personal config is committed.

Render a Brave/Chromium theme pack from the Noctalia palette and
install solid frame/toolbar PNGs so Linux chrome paints.
@ItsLemmy
ItsLemmy merged commit f27a399 into noctalia-dev:main Aug 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants