Skip to content
ndm.devnandomoreira.devAvailablePT

CLI, automation and Linux desktop

Terminal Noir

Open-source theme extracted from this site to give the same visual identity to the whole system and the apps I use: near-black cold surfaces, scaled by luminance, a single amber accent and an emerald green for status. Design tokens left the nandomoreira.dev CSS and became ports for shell, compositor, terminal, editor, browser and command-line tools, with a light paper-toned variant.

The problem

The site had a defined visual identity, but the desktop around it did not: each app had its own dark theme, with different blacks, grays and accents, and changing one color meant hunting the same hex across a dozen config files.

Technical decisions

Extract the site's design tokens into a single palette, in palette.json, with colors named by role (surface.base, text.muted, accent.primary) and not by value. Syntax roles live in syntax.json and point at palette names, never at a loose hex. Each port is generated from it by a bash and jq script, so changing a color is editing one file and running make build. bats tests check the palette, each port's mapping and whether the generated files are in sync with the source. The Astro site reads the same palette and each port's README at build time, so it never drifts from the theme.

Outcome

Published under the MIT license with 11 ports: Noctalia, niri, Ghostty, VS Code and Cursor, GTK 4 and libadwaita, Google Chrome, bat and delta, btop, fzf, Powerlevel10k and Obsidian. Noctalia and Ghostty already have the light variant. It is the theme I use on my desktop with CachyOS, Niri and Noctalia, where every screenshot below came from.

Images

Ready to share.