Commit Graph
17 Commits
Author SHA1 Message Date
ec779715bd Shrink theme backgrounds without touching resolution (#7266)
* Re-encode over-encoded theme backgrounds

Several backgrounds shipped at quality 95-100, which buys nothing visible
on a wallpaper but costs 20 MB. Re-encode those at quality 85, leaving
resolution untouched -- every file keeps its original pixel dimensions.

Only files stored above quality 90 are touched, and only when the result
saves at least 15% and stays above 38 dB PSNR against the original. The
34 backgrounds already stored at quality 85 or below are left alone
rather than pushed through another lossy generation for a few hundred KB.
osaka-jade/2-shaded-entrance is skipped for that reason: nothing clears
both bars. ristretto/2-coffee-beans is re-encoded at 90 instead of 85,
where 85 fell below the PSNR floor.

Theme backgrounds drop from 107 MB to 87 MB.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Store nord's night-hawks background as a palette PNG

The file uses only 8 distinct colors but was saved as truecolor RGB,
costing 1.8 MB for an image an indexed palette stores in half the space.
Converting to a palette PNG is lossless: same dimensions, and zero pixels
differ from the original.

1782 KB -> 909 KB.

The other palette-eligible PNGs are already indexed, and re-compressing
them with ImageMagick only makes them bigger, so they are left alone.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Recompress theme PNGs losslessly with oxipng

Every background PNG was left at its authoring tool's default deflate
settings. Running oxipng over them re-packs the same pixels: all 31 files
decode bit-for-bit identically (AE=0) at unchanged resolution, for 981 KB.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Store photographic backgrounds as JPEG instead of PNG

Four backgrounds were shipped as PNG despite being photographs and
painterly illustrations, where lossless coding buys nothing the eye can
see. Re-encoding them at the same q85 used by the other backgrounds keeps
every pixel dimension and stays above 40 dB PSNR, for 3.3 MB.

The remaining PNGs stay PNG: JPEG is larger for the dot patterns and the
flat-shaded pieces, and 0-launch.png genuinely uses its alpha channel.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 18:29:23 +02:00
David Heinemeier HanssonandClaude Fable 5 81217e5749 Generate vantablack neovim/vscode/btop configs from the colorset too
Tuned muted, dark_foreground, and lighter_background to the tiers the
explicit themes used, which also fixes muted falling back to pure white
in the generated terminal configs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 18:43:04 -07:00
David Heinemeier HanssonandClaude Fable 5 afa2839a5a Rename bg/fg palette keys to background/foreground
The canonical colors.toml keys are now background/foreground, including
all permutations (dark_background, darker_background, lighter_background,
dark_foreground, light_foreground, bright_foreground). The old short
names are gone entirely, not kept as aliases; legacy alacritty-generated
themes still resolve through the ANSI color0/color7 fallback.

Theme files are also regrouped: accent/selection/muted first, then the
backgrounds, then the foregrounds, then the named colors.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 16:24:51 -07:00
Ryan Hughes 221fb296fc Simplify theme palette tokens 2026-06-11 02:08:02 -04:00
Ryan Hughes 53357ace61 Rename purple theme color to magenta 2026-06-02 20:39:36 -04:00
Bjarne ØverliandRyan Hughes b1505a085d Implement semantic theme color system 2026-06-02 17:23:28 -04:00
David Heinemeier Hansson 301ea3ecc6 Fix hard to see color 2026-05-03 20:54:13 +02:00
Luke HsiaoandGitHub d80c98f025 Make color0 distinct from background/foreground and fix helix theme (#5538)
* Make color0 distinct from background/foreground

The majority of themes have color0 available as a subtle offset from
the background. For flexoki-light, because color0 matched foreground, it
wasn't subtle, and would cause invisible text when used as a background
color (e.g., in text editor rulers). For vantablack, ethereal,
hackerman, and white, color0 matched background and would cause
invisible text when a theme wanted text to be de-emphasized.

This patch makes it consistently a subtle offset from background.

* Make helix selection theme colors more subtle

Helix is more usable if the selection background is subtle. This is
primarily because of [[1]], which makes a bright selection like we had
before often make the foreground text unreadable in the picker preview.

[1]: https://github.com/helix-editor/helix/issues/12405
2026-05-02 11:36:06 +02:00
David Heinemeier Hansson 4e341fea3e Add omarchy bg option to all themes 2026-04-28 19:17:46 +02:00
David Heinemeier HanssonandGitHub 2716a3207c Provide unlock themeing (#5476) 2026-04-28 17:55:59 +02:00
David Heinemeier Hansson 09f93b5a92 Make vantablack fully black for OLED glory 2026-04-23 12:47:16 +02:00
David Heinemeier Hansson ae5da6f805 Update all theme previews to consistent size and style 2026-03-27 13:14:14 +01:00
David Heinemeier Hansson c254f890aa Named for direct selection 2026-02-18 22:42:43 +01:00
bjarneoandGitHub 7bd5bf25cd Remove the aether.nvim dependency (#4543)
* Remove the aether.nvim dependency

* Fix a blooper
2026-02-07 22:16:21 +01:00
bjarneoandGitHub 0c9b38e507 Set the aether dependency using v2 directly (#4537)
* Set the aether dependency using v2 directly

* Format the object properly
2026-02-07 15:53:05 +01:00
David Heinemeier Hansson badd1f8495 Reorder backgrounds for default 2026-02-07 12:35:27 +01:00
bjarneoandGitHub c289cd0730 Add vantablack theme (#4533) 2026-02-07 11:23:27 +01:00