Slatewave (LSD)

May 26, 2026 · View on GitHub

Slatewave

Slatewave (LSD)

A Slatewave theme for LSD — the next-gen ls, tinted slate and teal. Part of the Slatewave family — one palette across editors, terminals, prompts, notes, and more.

Slate below, teal above.

Slatewave preview


What it styles

LSD splits its output into column roles — owner, permissions, size, date, git status, tree edges — and this theme recolors each of them to match the VSCode and Alacritty Slatewave ports. File-type colors (directories, symlinks, archives, media, …) are driven by LS_COLORS, so Slatewave composes with any LS_COLORS scheme you already run — vivid, trapd00r/LS_COLORS, or the default.

Two palette files ship: colors.yaml uses #rrggbb hex (LSD ≥ 1.1) and colors-256.yaml uses ANSI 256-color indices (LSD ≥ 1.0; required for 1.0.x, which silently ignores hex). Run lsd --version to pick — 1.0.x → 256, 1.1+ → hex.

Highlights:

  • Permissions — teal read, amber write, rose exec, slate for the - placeholder so the rwx column reads at a glance
  • Modified date — teal-300 for the last hour, teal-200 for the last day, slate-400 for anything older; freshness is spatial, not verbal
  • Git status — teal for stage/add, amber for modified, rose for deleted, bright red only for conflicted
  • Size — slate for small files, amber for medium, amber-700 for large; large files visibly "weigh more"
  • Tree edges — slate-600 so the guide lines recede and the filenames lead

Requirements

  • LSD ≥ 1.0 — install guide. Hex colors (colors.yaml) need LSD ≥ 1.1; on 1.0.x use colors-256.yaml. Check with lsd --version.
  • A Nerd Font if you want the fancy icons — icons.theme: fancy in LSD's config. Tested with Hack Nerd Font and MesloLGS NF. Falls back to icons.theme: unicode cleanly.

Installation

LSD looks for its config under $XDG_CONFIG_HOME/lsd/ (typically ~/.config/lsd/) on macOS and Linux, and %APPDATA%\lsd\ on Windows.

Which file?

Your lsd --versionUseWhy
1.1.0 or newercolors.yaml (hex)Truer color match against the rest of the Slatewave family.
1.0.xcolors-256.yaml (256-index)LSD 1.0.x silently ignores hex — the theme would fall back to defaults.

Both files install to the same path (~/.config/lsd/colors.yaml); only the source differs.

git clone https://github.com/kevinlangleyjr/lsd-slatewave.git \
  ~/.config/lsd-slatewave
mkdir -p ~/.config/lsd
# LSD ≥ 1.1
ln -sf ~/.config/lsd-slatewave/colors.yaml ~/.config/lsd/colors.yaml
# or, on LSD 1.0.x
ln -sf ~/.config/lsd-slatewave/colors-256.yaml ~/.config/lsd/colors.yaml

Or: curl the file straight in

mkdir -p ~/.config/lsd
# LSD ≥ 1.1
curl -fsSL https://raw.githubusercontent.com/kevinlangleyjr/lsd-slatewave/main/colors.yaml \
  -o ~/.config/lsd/colors.yaml
# or, on LSD 1.0.x
curl -fsSL https://raw.githubusercontent.com/kevinlangleyjr/lsd-slatewave/main/colors-256.yaml \
  -o ~/.config/lsd/colors.yaml

Activate the theme

The colors.yaml file is only consulted when LSD is told to use a custom theme. Add or edit ~/.config/lsd/config.yaml:

color:
  when: auto
  theme: custom

That's it — lsd picks up the new palette on the next invocation.

Verify

lsd -la --git --tree --depth 2

You should see teal permissions, amber sizes, slate tree edges, and a git column that reads clearly against the rest of the row.


Palette

Slatewave shares its palette with the companion themes. Every color resolves to a semantic role you can override in place.

Foregrounds

HexTailwindRole
#cbd5e1#cbd5e1slate-300small file size, git default
#94a3b8#94a3b8slate-400group, older dates
#64748b#64748bslate-500no-access, non-file size, git unmodified, invalid inode
#475569#475569slate-600tree edges, git ignored

Accent — teal signature

HexTailwindRole
#5eead4#5eead4teal-300read bit, hour-old date, new-in-index
#99f6e4#99f6e4teal-200day-old date, new-in-workdir
#67e8f9#67e8f9cyan-300ACL flag
#0e7490#0e7490cyan-700octal permission suffix

State

HexTailwindRole
#38bdf8#38bdf8sky-400SELinux context
#7dd3fc#7dd3fcsky-300valid hard-link count, git renamed
#fda4af#fda4afrose-300user (owner column)
#fb7185#fb7185rose-400exec bit, invalid links, git deleted
#ef5350#ef5350red-brightgit conflicted
#b388ff#b388ffexec-sticky bit, valid inode
#fbbf24#fbbf24amber-400write bit, medium size, git modified
#b45309#b45309amber-700large size, git typechange

Columns in detail

ColumnRoleColor
Permission — readpermission.readteal-300 #5eead4
Permission — writepermission.writeamber-400 #fbbf24
Permission — execpermission.execrose-400 #fb7185
Permission — exec-stickypermission.exec-stickypurple #b388ff
Permission — no-accesspermission.no-accessslate-500 #64748b
Permission — octal suffixpermission.octalcyan-700 #0e7490
Permission — ACLpermission.aclcyan-300 #67e8f9
Permission — contextpermission.contextsky-400 #38bdf8
Owneruserslate-200 #e2e8f0
Groupgroupslate-400 #94a3b8
Size — nonesize.noneslate-500 #64748b
Size — smallsize.smallslate-300 #cbd5e1
Size — mediumsize.mediumamber-400 #fbbf24
Size — largesize.largeamber-700 #b45309
Date — hour olddate.hour-oldteal-300 #5eead4
Date — day olddate.day-oldteal-200 #99f6e4
Date — olderdate.olderslate-400 #94a3b8
Inode — validinode.validpurple #b388ff
Inode — invalidinode.invalidslate-500 #64748b
Links — validlinks.validsky-300 #7dd3fc
Links — invalidlinks.invalidrose-400 #fb7185
Tree edgestree-edgeslate-600 #475569
Git — defaultgit-status.defaultslate-300 #cbd5e1
Git — unmodifiedgit-status.unmodifiedslate-500 #64748b
Git — ignoredgit-status.ignoredslate-600 #475569
Git — new in indexgit-status.new-in-indexteal-300 #5eead4
Git — new in workdirgit-status.new-in-workdirteal-200 #99f6e4
Git — typechangegit-status.typechangeamber-700 #b45309
Git — deletedgit-status.deletedrose-400 #fb7185
Git — renamedgit-status.renamedsky-300 #7dd3fc
Git — modifiedgit-status.modifiedamber-400 #fbbf24
Git — conflictedgit-status.conflictedred-bright #ef5350

Customize

The theme file is plain YAML. Override in place, or drop a single key in your own colors.yaml and leave the rest untouched — LSD merges missing keys against its defaults.

# Bump large-file warmth to orange
size:
  large: "#ff4500"

# Make the git-modified marker teal instead of amber
git-status:
  modified: "#5eead4"

File-type colors (LS_COLORS)

LSD inherits directory, executable, archive, image, and symlink colors from LS_COLORS, not from this theme. A Slatewave-compatible LS_COLORS isn't shipped here (yet) — for now, pair with vivid:

# A cool, slate-friendly baseline
export LS_COLORS="$(vivid generate molokai)"

or keep your existing LS_COLORS.


Slatewave family

One palette. Every tool.

See getslatewave.com for the full family.

Contributing

Issues and PRs welcome. For palette changes, include a before/after screenshot of lsd -la --git --tree against a representative directory so the visual tradeoff is obvious.


License

WTFPL — Do What The Fuck You Want To Public License. See LICENSE.