ports · Shell & CLI
SP Night for eza
A native eza theme.yml — file kinds, permissions, sizes, git status and per-language accents.
the repository ↗ eza ↗ eza.yml.tmpl ↗
Preview
All three are dark, by decision. The previews below are synthetic — drawn from the palette itself, so they can never drift from what you install.
Install
~/.config/eza/theme.yml ~/.config/eza/theme.yml ~/.config/eza/theme.yml Those are the paths for the flavour selected in the header — switch it and they follow.
These are native eza themes:
eza reads a single theme.yml from ~/.config/eza (or $EZA_CONFIG_DIR) on
every run — no shell integration, nothing to source.
Grab the flavour you want as theme.yml:
mkdir -p ~/.config/eza
curl -Lo ~/.config/eza/theme.yml \
https://raw.githubusercontent.com/sp-night/eza/main/themes/sp_night_noite.yml That’s it — the next eza invocation picks it up.
Prefer a checkout? Clone and symlink, and switching flavours becomes re-pointing one link:
git clone https://github.com/sp-night/eza.git
ln -sf "$PWD/eza/themes/sp_night_noite.yml" ~/.config/eza/theme.yml What gets themed
| `theme.yml` key | role | what it is |
|---|---|---|
filekinds.directory | syntax.keyword | directories in bold marginal — the expressway sign pointing the way |
filekinds.executable | diagnostic.ok | executables in bold ibira, green light |
filekinds.symlink / symlink_path | syntax.operator / syntax.function | symlinks and their targets in sereno, the cold signage of dawn |
perms.*_read / *_write / *_execute | syntax.constant / diagnostic.error / diagnostic.ok | read is sódio, write is brasa, execute is ibira |
size.number_* / size.unit_* | syntax.number / ui.fg_dim | file sizes — the number burns, the unit recedes |
users.user_you / user_other | ui.fg_dim / ui.fg_muted | your user quiet, everyone else quieter — root in brasa |
date | ui.fg_muted | dates as ornament, never shouting |
git.new modified deleted | git.added / git.modified / git.removed | git status in ibira / táxi / brasa |
filekinds.pipe socket *_device | syntax.type / syntax.macro / syntax.attribute | pipes, sockets and devices in temporal, estaiada, táxi |
extensions.go .rs .py, … | per-language accents | source files keep the same accents the editor port gives them |
eza.yml.tmpl is the full record of which theme.yml key means which
role — the table above in complete formacross all ~80 keys eza exposes. The files in
themes/ are what it resolves to, one per flavour.
You never need it to use the theme: the shipped files are plain text and final. It is here so the mapping survives, and so a retuned palette can be rolled through this port without anyone re-deciding what a directory should look like.
Where the colours come from
No hex in this repo was picked by hand. Every value comes from the
SP Night palette through its role layer,
both published as data:
palette.json and
roles.json. The contrast floors those
colours have to clear are written down in the spec
and enforced in CI.