Slatewave (bat)

May 19, 2026 · View on GitHub

Slatewave

Slatewave (bat)

A Slatewave syntax theme for bat — a cat clone with wings, syntax highlighting, and Git integration. Part of the Slatewave family — one palette across editors, terminals, prompts, notes, and more.

Slate below, teal above.

Slatewave for bat — README rendered with teal headings, sky-blue tags, purple storage keywords, and rose accents on a slate background

What's in the box

FilePurpose
Slatewave.tmThemeSublime Text–compatible color scheme — bat reads .tmTheme files for syntax highlighting

bat uses syntect under the hood and consumes the same .tmTheme format Sublime Text and TextMate use, so this theme is the same palette and scope mapping you'd get from Slatewave for Sublime Text — re-shipped as a TextMate plist for bat's theme cache.


Requirements

True-color required. bat's .tmTheme themes only render correctly when bat can output 24-bit color. If you run bat in a terminal limited to 256 colors, the slate ramp collapses and the teal/sky/purple accents drift. Set TERM=xterm-256color and make sure COLORTERM=truecolor is exported (most modern terminals set this automatically).


Installation

Clone + register with bat

# Drop the theme into bat's user theme directory
mkdir -p "$(bat --config-dir)/themes"
git clone https://github.com/kevinlangleyjr/bat-slatewave.git \
  "$(bat --config-dir)/themes/Slatewave"

# Rebuild bat's theme cache so it can find it
bat cache --build

bat's --config-dir resolves to:

  • macOS~/.config/bat/ (or ~/Library/Application Support/bat/ on older builds)
  • Linux~/.config/bat/
  • Windows%APPDATA%\bat\

Or: curl the file straight in

mkdir -p "$(bat --config-dir)/themes"
curl -fsSL https://raw.githubusercontent.com/kevinlangleyjr/bat-slatewave/main/Slatewave.tmTheme \
  -o "$(bat --config-dir)/themes/Slatewave.tmTheme"
bat cache --build

Activate the theme

One-shot:

bat --theme=Slatewave README.md

Per-shell default — set the BAT_THEME env var:

# zsh / bash
export BAT_THEME="Slatewave"

# fish
set -gx BAT_THEME Slatewave

Or persist it in bat's config file (bat --config-file):

--theme="Slatewave"

Verify

bat --list-themes | grep Slatewave
bat --theme=Slatewave --color=always /path/to/some.go | head -40

You should see teal strings, sky-blue keywords, italic-purple storage keywords, and rose-pink numbers and constants — the same balance as the editor ports.


Palette

Slatewave shares its palette with the companion themes. Every color resolves to a semantic role, so syntax behavior is consistent across bat, your editor, and your terminal.

Foundation — slate

HexTailwindWhere
#282c34#282c34slate-editorpage background
#1e293b#1e293bslate-800line highlight
#3a3f4c#3a3f4cslate-guideindentation guides
#64748b#64748bslate-500comments, line numbers
#94a3b8#94a3b8slate-400operators, punctuation
#cbd5e1#cbd5e1slate-300parameters, properties
#e2e8f0#e2e8f0slate-200default foreground

Signature — teal

HexTailwindWhere
#5eead4#5eead4teal-300strings, markdown headings, diff inserted
#99f6e4#99f6e4teal-200types, classes, inline code

Accents

HexTailwindRole
#38bdf8#38bdf8sky-400keywords, tags, links
#7dd3fc#7dd3fcsky-300functions, JSON/YAML keys, CSS properties
#b388ffstorage (const/let/function), this/self, attributes
#fb7185#fb7185rose-400numbers, constants, regex, diff deleted
#fbbf24#fbbf24amber-400decorators, escape chars, diff changed
#b45309#b45309amber-700deprecated symbols
#ef5350#ef5350red-400invalid syntax

Syntax mapping

TokenColorStyle
Comments#64748b#64748bitalic
Keywords (if, return, import)#38bdf8#38bdf8
Storage (const, let, function, class)#b388ff#b388ffitalic
Types / classes / interfaces#99f6e4#99f6e4
Functions (calls + definitions)#7dd3fc#7dd3fc
Strings#5eead4#5eead4
Numbers, booleans, null, undefined#fb7185#fb7185
Constants (UPPER_SNAKE)#fb7185#fb7185
Regex#fb7185#fb7185
Escape sequences#fbbf24#fbbf24
Decorators / annotations#fbbf24#fbbf24italic
this / self / super#b388ff#b388ffitalic
Parameters#cbd5e1#cbd5e1italic
Operators, punctuation#94a3b8#94a3b8
HTML/JSX tags#38bdf8#38bdf8
HTML/JSX attributes#b388ff#b388ffitalic
CSS selectors#5eead4#5eead4
CSS properties#7dd3fc#7dd3fc
Markdown headings#5eead4#5eead4bold
Markdown links#38bdf8#38bdf8underline
Diff inserted#5eead4#5eead4
Diff deleted#fb7185#fb7185
Diff changed#fbbf24#fbbf24

Pairing with delta and other tools that read bat themes

A handful of CLI tools delegate syntax highlighting to bat's theme cache (and accept a --theme flag of their own). Once Slatewave is registered with bat cache --build, these all see it:

  • git-delta — set syntax-theme = Slatewave in your ~/.gitconfig [delta] section.
  • fzf previewfzf --preview 'bat --theme=Slatewave --color=always {}'.
  • ripgrep-all — pipes through bat when paged.

Customize

bat doesn't merge user overrides over a theme the way lsd or Helix do — to tweak a single scope you need to fork the .tmTheme. The simplest path:

# Fork
cp "$(bat --config-dir)/themes/Slatewave/Slatewave.tmTheme" \
   "$(bat --config-dir)/themes/Slatewave-Mine.tmTheme"

# Edit the file, change the <key>name</key> at the top to "Slatewave-Mine",
# then rebuild
bat cache --build
bat --theme=Slatewave-Mine README.md

Common tweaks live in the <settings> blocks near the top: change a <key>foreground</key> or <key>fontStyle</key> value and rebuild.


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 bat --theme=Slatewave against a representative file (Go, TypeScript, or Markdown work well) so the visual tradeoff is obvious.


License

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