feat(darwin-breeze): add VS Code and Telegram themes

Generate and install a VS Code theme and build an importable Telegram
theme from the color scheme.
This commit is contained in:
tri committed 2026-10-30 00:21:09 +07:00
1 parent 75b1383edf
commit 26a29b3182
14 files changed
+6613 -15

No files matched your search

+49 -5
View File
@@ -1,7 +1,7 @@
# Darwin Breeze
Breeze for KDE Plasma 6 in the macOS dark system colors, with Helium, T3 Code
and Ghostty themed from the same colors.
Breeze for KDE Plasma 6 in the macOS dark system colors, with Helium, T3 Code,
Ghostty, VS Code and Telegram 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.
@@ -24,7 +24,15 @@ stow darwin-breeze helium
`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.
the T3 Code theme and installs the VS Code extension. Restart Helium
afterwards; T3 Code switches on its own. In VS Code, pick "Darwin Breeze Dark"
once under Preferences → Color Theme; after later color changes, run Developer:
Reload Window.
Telegram has to import its theme by hand: Settings → Chat Settings → Chat
background → Choose from file, then pick
`darwin-breeze/telegram/DarwinBreezeDark.tdesktop-theme` and Apply. Import it
again after the colors change.
## Changing colors
@@ -44,9 +52,12 @@ Edit it, then run `./darwin-breeze/apply.sh` again. Everything else follows:
| 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` |
| VS Code | `vscode/package.json` and `vscode/themes/`, generated by `build.py`, packed into `darwin-breeze.vsix` and installed by `apply.sh` |
| Telegram | `telegram/DarwinBreezeDark.tdesktop-theme`, built by `build.py` and imported by hand |
The generated files are committed so that `stow` alone gives a working setup;
don't edit them by hand.
The generated text files are committed so that `stow` alone gives a working
setup; the binary packages (Telegram's `.tdesktop-theme`, VS Code's `.vsix`)
are built by `build.py` instead. Don't edit generated files by hand.
## T3 Code notes
@@ -56,6 +67,39 @@ don't edit them by hand.
`build.py`), so a new slot or a different mapping is a change there, not a
hand-edited color.
## VS Code notes
- The workbench colors start from VS Code's own default dark theme, Dark 2026
(vendored in `vscode/base/` with the themes it includes). It already lays
out its grays as the scheme does: the editor darkest, the chrome around it
lighter, widgets lighter still. Each of those becomes the matching scheme
gray and the grays between them are interpolated. Other colors take the
hue of the matching Apple color and keep their lightness and saturation.
Keys with an exact role, such as buttons, badges, the active tab's top
border and the git colors, are set directly (`vscode()` in `build.py`).
- Syntax colors are Pierre Dark's, the theme T3 Code highlights code with
(`vscode/base/pierre-dark.json`, taken from T3 Code). They are used as they
are, without gamma compensation, so code looks the same in both apps.
- The terminal uses the same 16 colors as Ghostty.
- VS Code is Electron, so its workbench colors get the same gamma
compensation as Helium and T3 Code.
- The `.vsix` isn't committed; `build.py` packs it from `vscode/`.
## Telegram notes
- Telegram has some 600 color keys and the scheme has roles for only a few
dozen of them (`telegram()` in `build.py`). The rest start from Telegram's
own night theme, vendored as `telegram/night.tdesktop-palette`: its
blue-tinted grays become scheme grays of the same brightness and its blues
take the macOS blue's hue. Other colors, such as the reds, greens and name
colors, are kept as night has them.
- The chat list, top bar and compose bar use the window color; the chat
behind the bubbles and the folder strip use the darker view color.
- Telegram is a Qt app, so unlike Helium and T3 Code it needs no gamma
compensation.
- The `.tdesktop-theme` is a zip, so it isn't committed; `build.py` builds it
from the night palette and the color scheme.
## Helium notes
- Helium loads the theme from `~/.local/share/helium-themes/darwinbreeze`