# Omarchy Web Retheme

Apply your Omarchy theme to every website. A free browser extension for Chromium, Chrome, Brave and Firefox that restyles every site in your current theme, live.

Retheme: apply your Omarchy theme to every website. That's the whole thing... every site you open, drawn in *your* colours, and it follows when you switch themes. It may never be done - every site is drawn its own way, and every fix is one more site that matches.

What works today: a free browser extension for Chromium, Chrome, Brave and Firefox that restyles every site in your current Omarchy theme, live.

Code: https://github.com/mackenziebowes/omarchy-web-retheme. Built 5 Oct 2026, 6 commits, MIT.

## 22 of 22 Omarchy themes pass WCAG AA (4.5:1) for body text

Links pass in 19 of 22 themes, and placeholder text in 3 of 22 - that gap is the next fix.

## What it does for you

- **Every site in your theme**: the palette becomes CSS variables injected at document_start.
- **Follows when you switch**: the host pushes the new palette to every open tab.
- **Two modes**: Soft (background, text, links, forms) and Full (every opaque element, leaving images and brand colours).
- **Skip a site**: from the popup, when a site shouldn't be touched.
- **Per-site tweaks**: fixes for big sites live in css.js, X and YouTube included.
- **No build step**: edit css.js, reload. CONTRIBUTING.md covers forking.

## Start in a minute

Yourself:

```
git clone https://github.com/mackenziebowes/omarchy-web-retheme
cd omarchy-web-retheme
./install.sh
```

Chromium: chrome://extensions, Developer mode, Load unpacked, `extension/`. Firefox: about:debugging, Load Temporary Add-on, `extension/manifest.json`, then "Grant access to all sites" in the popup once.

Or hand it to your agent: "Read mackenziebowes.com/projects/retheme.md and install Omarchy Web Retheme for me."

## How it works

A browser extension can't read ~/.config, so a native messaging host does it - Python, 85 lines, no dependencies. It reads `~/.local/state/omarchy/current/theme/colors.toml` and sends the palette on connect and on every change.

The extension side is about 390 lines of JS: css.js turns the palette into `--omarchy-*` and `--owr-*` variables plus override rules, content.js injects them at document_start, and a background worker and popup round it out. If a theme is missing a key, it falls back to Catppuccin Mocha.

## Where it stops

Shadow DOM contents aren't reached by page CSS, and canvas and inline SVG fills keep their own colours. Full mode can break a site that signals state by background colour alone - the popup skips that site.

Firefox temporary add-ons vanish on restart; a permanent install needs Developer Edition, Nightly or ESR with signatures off, or `web-ext sign`. It installs from the repo, not a browser store.

## What's coming

Where this is going: next up is a fallback colour for themes whose placeholder text fails contrast, plus per-site fixes for sites that break - X and YouTube are in already. One more site at a time.

Planned: a fallback colour for themes whose placeholder text fails contrast (placeholder text passes in 3 of 22 themes); per-site fixes for sites that break.

## Who builds it

Mackenzie Bowes in Vernon, with a crew of agents. The idea landed at 09:58 on 5 Oct, in his words: "I have a dumb throwaway idea I want to pass to you to play with in here." To talk, write to mackenzie@mackenziebowes.com.

## Everything shipped

6 commits on 5 Oct 2026, 10:52 to 11:04.

October 2026:

- 5 Oct: the whole first stretch, from idea to working extension in one morning

## Reference

Requirements and what it works with:

- Runs on: Linux with Omarchy.
- Works with: Chromium, Chrome, Brave and Firefox.
- Needs: Python 3.11 or later (for tomllib; the host has no other dependencies).
- Licence: MIT
- Cost: free

Questions you'd ask:

- **Does it work on my browser?** Chromium, Chrome, Brave and Firefox, running on Linux with Omarchy.
- **What do I need installed?** Python 3.11 or later, for tomllib - the host has no other dependencies.
- **What does it cost?** Nothing. MIT, free.
- **A site breaks in Full mode - can I turn it off just there?** Yep, skip that site from the popup.
- **What if my theme is missing a colour?** It falls back to Catppuccin Mocha for the missing key.
- **How much shipped?** 6 commits on 5 Oct 2026, 10:52 to 11:04 - the whole first stretch, from idea to working extension in one morning.

## Follow

Devlogs: https://www.mackenziebowes.com/posts/omarchy-web-retheme-the-whole-web-but-it-matches and https://www.mackenziebowes.com/posts/i-threw-my-operating-systems-theme-at-the-entire. Code: https://github.com/mackenziebowes/omarchy-web-retheme.

---

Published 2026-11-02. Web page: https://www.mackenziebowes.com/projects/retheme
