Slatewave (btop)

May 19, 2026 · View on GitHub

Slatewave

Slatewave (btop)

A Slatewave .theme for btop — the resource monitor with the prettiest dashboard in the terminal. Part of the Slatewave family — one palette across editors, terminals, prompts, notes, and more.

Slate below, teal above.

Slatewave for btop — CPU, memory, network, and process panels with teal-300 labels, slate-600 box outlines, and the teal → amber → rose gradient across every meter and graph

What it styles

btop reads .theme files from ~/.config/btop/themes and uses them to color every panel, meter, and graph it draws. This theme maps the full set of theme keys onto the family palette so the dashboard reads with the same vocabulary as the editor and terminal ports.

FilePurpose
slatewave.themeThe palette — drop into btop's user themes directory and select via color_theme

Highlights:

  • One ramp for every meter and graphtemp, cpu, mem, net, and the process activity column all use teal-300 → amber-400 → rose-400. Read it as: more rose = more activity.
  • Slate-600 chrome — every box outline (cpu_box, mem_box, net_box, proc_box, div_line) uses the same slate-600, so the four panels read as a single coherent grid rather than four separate widgets.
  • Teal accents — panel labels (¹cpu, ²mem, ³proc), keyboard shortcuts (hi_fg), and the proc_misc color all use teal-300, matching the focus ring in every editor port.
  • Slate-700 / teal-300 selection — the active row in the process list highlights slate-700 + teal-300, mirroring the list.activeSelectionBackground / list.activeSelectionForeground pair from the VSCode port.
  • Transparent by defaultmain_bg = "" so btop inherits the terminal background. Pair with any of the Slatewave terminal ports for matched chrome, or set theme_background = false in btop.conf for a fully transparent dashboard.

Requirements

  • btop ≥ 1.2 — install guide. Earlier versions of btop are missing some of the theme keys this file sets (process_*, graph_text, meter_bg).
  • A 24-bit / true-color terminal. Set truecolor = true in ~/.config/btop/btop.conf (the default). At 256 colors, the teal/amber/rose ramp collapses and the gradient meters lose their middle stop.

Installation

Drop the theme into btop's themes dir

mkdir -p ~/.config/btop/themes
curl -fsSL https://raw.githubusercontent.com/kevinlangleyjr/btop-slatewave/main/slatewave.theme \
  -o ~/.config/btop/themes/slatewave.theme

If you'd rather track updates with git, clone the repo and symlink the theme file in. btop only scans the top level of its themes directory, so the symlink (rather than putting the clone inside themes/) is the path of least resistance.

git clone https://github.com/kevinlangleyjr/btop-slatewave.git ~/.config/btop/btop-slatewave
ln -sf ~/.config/btop/btop-slatewave/slatewave.theme \
  ~/.config/btop/themes/slatewave.theme

# Pull updates with: git -C ~/.config/btop/btop-slatewave pull

Activate the theme

Either edit ~/.config/btop/btop.conf directly:

color_theme = "slatewave"

Or do it in one shot from the command line:

sed -i.bak 's/^color_theme = .*/color_theme = "slatewave"/' ~/.config/btop/btop.conf

Or interactively — launch btop, press EscOptions → arrow over to color_theme and pick slatewave from the list.

Verify

btop

You should see:

  • ¹cpu, ²mem, ³proc panel labels in teal-300, sitting on slate-600 box outlines
  • Every meter and graph filled with the same teal → amber → rose gradient
  • The currently-selected process row highlighted in slate-700 + teal-300
  • Keyboard shortcuts in the top/bottom bars in slate-300, with their hotkey letters in teal-300

Palette

The same palette as the rest of the Slatewave family. Every color resolves to a semantic role, so the dashboard's reading is consistent with the editors and terminals.

Foundation — slate

HexTailwindWhere
#1e293b#1e293bslate-800optional opaque panel bg (set main_bg to use)
#334155#334155slate-700selected_bg, meter_bg (meter track)
#475569#475569slate-600every box outline + div_line
#64748b#64748bslate-500inactive_fg
#94a3b8#94a3b8slate-400graph_text (overlay readouts on graphs)
#cbd5e1#cbd5e1slate-300tab labels, secondary text
#e2e8f0#e2e8f0slate-200main_fg, title (default text)

Signature — teal · accents — amber, rose

HexTailwindRole
#5eead4#5eead4teal-300hi_fg, proc_misc, selected_fg, panel labels, gradient start
#fbbf24#fbbf24amber-400gradient mid — middle of every meter/graph ramp
#fb7185#fb7185rose-400gradient end — top of every meter/graph ramp

Theme key mapping

Every key in slatewave.theme and what it controls:

KeyColorSemantic role
main_bg"" (empty)Panel background — empty for terminal transparency. Set to #1e293b for opaque slate panels.
main_fg#e2e8f0Default text color across all panels
title#e2e8f0Box / panel title text
hi_fg#5eead4Highlight color for keyboard shortcut letters
selected_bg#334155Selected process row background
selected_fg#5eead4Selected process row foreground
inactive_fg#64748bDisabled / inactive text
graph_text#94a3b8Readout values overlaid on graphs
meter_bg#334155Unfilled portion of meters
proc_misc#5eead4Mini cpu graphs in process box, details memory graph, status text
cpu_box, mem_box, net_box, proc_box#475569All four box outlines (kept identical for grid coherence)
div_line#475569Divider lines between sub-panels
temp_*, cpu_*, free_*, cached_*, available_*, used_*, download_*, upload_*, process_*#5eead4#fbbf24#fb7185Every gradient ramp uses the same three stops

Customize

btop's themes are plain key/value files — fork and edit. The two changes most people make:

Opaque slate panels instead of transparent

Edit slatewave.theme and set:

theme[main_bg]="#1e293b"

Then make sure theme_background = true in btop.conf so btop actually fills the background.

Inverse ramps for "free" meters

This theme uses the same teal → rose ramp on every meter, including free_* and available_*, so the meter color tracks the fill level rather than the semantic. If you'd rather have "more free = more teal" (good = teal, bad = rose), swap the start and end on those keys:

theme[free_start]="#fb7185"
theme[free_mid]="#fbbf24"
theme[free_end]="#5eead4"

theme[available_start]="#fb7185"
theme[available_mid]="#fbbf24"
theme[available_end]="#5eead4"

After editing, restart btop (EscQuit → relaunch) — it caches theme parses on launch.


Slatewave family

One palette. Every tool.

See getslatewave.com for the full family.


Contributing

Issues and PRs welcome. For palette tweaks, please include a before/after screenshot of btop against a representative workload (something with both idle cores and active processes — the gradient is most obvious when meters span the full range) so the visual tradeoff is obvious.


License

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