feat(darwin-breeze): unify theme colors across KDE, Helium, T3 Code and Ghostty

Move the Darwin Breeze Dark color scheme and global theme into a stow
package. build.py generates the Helium, T3 Code and Ghostty themes from
DarwinBreezeDark.colors, and apply.sh rebuilds and applies them, so the
colors are edited in one place.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
triandClaude Opus 5.5 committed 2026-10-29 20:00:16 +07:00
1 parent d215693df4
commit 75b1383edf
14 files changed
+798 -1

No files matched your search

+79
View File
@@ -0,0 +1,79 @@
# Darwin Breeze
Breeze for KDE Plasma 6 in the macOS dark system colors, with Helium, T3 Code
and Ghostty themed from the same colors.
Only the colors change. Breeze still draws the widgets and the title bar, and
the window buttons stay on the right.
- Selection and focus rings use the macOS blue, `#007AFF`.
- The title bar has the same color as the toolbar below it, so the two read as
one strip.
- When a window loses focus, its selection turns gray, as on macOS.
- Errors, warnings, success text and links use Apple's system red, orange,
green, blue and purple.
## Install
From `~/.dotfiles`:
```sh
stow darwin-breeze helium
./darwin-breeze/apply.sh
```
`apply.sh` regenerates the app themes, applies the global theme, hides the
line under the title bar, turns off the wallpaper accent color and publishes
the T3 Code theme. Restart Helium afterwards; T3 Code switches on its own.
## Changing colors
The color scheme is the only place colors are defined:
```
.local/share/color-schemes/DarwinBreezeDark.colors
```
Edit it, then run `./darwin-breeze/apply.sh` again. Everything else follows:
| App | How it gets the colors |
| --- | --- |
| Qt / KDE apps | the color scheme itself |
| GTK apps | Breeze GTK, which `kde-gtk-config` syncs from the scheme |
| Tray icons in `tray-icons/` | `ColorScheme-Text`, recolored by Plasma |
| Helium | `.local/share/helium-themes/`, generated by `build.py` |
| T3 Code | `t3/darwin-breeze.json`, generated by `build.py` and published with `t3 theme set` |
| Ghostty | `.config/ghostty/themes/`, generated by `build.py` |
The generated files are committed so that `stow` alone gives a working setup;
don't edit them by hand.
## T3 Code notes
- T3 Code ignores symlinked theme files, so the theme isn't stowed;
`apply.sh` publishes a copy into `~/.t3/userdata/themes/`.
- Every slot of the T3 theme maps to a role in the color scheme (see `t3()` in
`build.py`), so a new slot or a different mapping is a change there, not a
hand-edited color.
## Helium notes
- Helium loads the theme from `~/.local/share/helium-themes/darwinbreeze`
through `--load-extension` in `helium/.config/helium-browser-flags.conf`.
- In Helium's compact layout the active tab and the toolbar segments on either
side share one theme color, so the toolbar is the same color as the tab
strip and inactive tabs are drawn lighter, as Dolphin does.
- Chromium tags its output as sRGB and KWin shows it with a gamma 2.2 curve,
which lifts dark grays (40 becomes 44). `build.py` writes pre-compensated
values for Helium and T3 Code (both Chromium), so the theme files say 35
where the screen shows 40.
- Under Settings → Appearance the theme must be Classic, not GTK or QT.
## When the colors don't show up
- In System Settings → Colors, take the accent color from the color scheme. A
custom accent, or one taken from the wallpaper, replaces the blue.
- Use the Plasma style called "Breeze". "Breeze Dark" and "Breeze Light" carry
their own colors, so panels and popups ignore the scheme.
- GTK apps follow the scheme only with the Breeze GTK theme. Flatpak apps also
need `org.gtk.Gtk3theme.Breeze` installed.