editor

Slatewave for Helix

A Helix theme with mode-aware accents and live-reload tweakability.

Latest release
0.0.2 · 2 months ago
Last commit
3 weeks ago
// slatewave/palette.rs
use std::fmt;

#[derive(Debug, Clone)]
pub struct Theme {
    pub name: String,
    pub accent: &'static str,
    pub mode: Mode,
}

#[derive(Debug, Clone, Copy)]
pub enum Mode {
    Normal,
    Insert,
    Select,
}

impl fmt::Display for Theme {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(f, "{} · {:?}", self.name, self.mode)
    }
}

fn main() {
    let theme = Theme {
        name: String::from("Slatewave"),
        accent: "#5eead4",
        mode: Mode::Normal,
    };
    println!("{theme}");
}

About this theme

A Helix theme covering editor, statusline, bufferline, popups, diagnostics, and diff — plus mode-aware cursor/badge colors (teal normal, teal-200 insert, sky select) that keep the active mode readable at a glance.

Slatewave for Helix surfaces the current mode on both the statusline badge and the primary cursor — teal for Normal, teal-200 for Insert, sky-400 for Select — so the active mode reads at a glance without looking at the status bar. Badge ink stays slate-900 across all three for maximum contrast.

Syntax mapping is 1:1 with the VSCode, Neovim, Zed, and Sublime Text ports, so the same file highlights identically across editors. Covers TreeSitter scopes, LSP diagnostics (with curly underlines), bufferline, popups, rulers, diff gutter, and virtual text.

Install

Don't have the CLI yet? Install the Slatewave CLI →

  • Slatewave CLI

    Install with the Slatewave family CLI — one command, every theme.

    slatewave install helix
  • Clone

    Clone and copy the theme into Helix's themes directory. Requires Helix 24.03+ for modern theme scopes (ui.bufferline, ui.virtual.inlay-hint, curly diagnostic underlines).

    1. git clone https://github.com/kevinlangleyjr/helix-slatewave.git
    2. cp helix-slatewave/themes/slatewave.toml ~/.config/helix/themes/slatewave.toml
    3. Tweaking the theme? Symlink instead so edits round-trip — `ln -s "$(pwd)/helix-slatewave/themes/slatewave.toml" ~/.config/helix/themes/slatewave.toml`
  • Activate

    Set the theme in config.toml, or switch at runtime from the command palette — Helix reloads themes on save.

    1. Add `theme = "slatewave"` to ~/.config/helix/config.toml
    2. Or pick at runtime — `:set theme slatewave`