A dark, warm Neovim colorscheme that leans into its name: yolk-yellow literals, rice-cream text, and scallion-green strings on a navy background inspired by halcyon. Token roles follow One Dark Pro: red identifiers, purple keywords, green strings. Yellow is the signature and carries functions, types and builtins plus everything One Dark Pro paints orange: numbers, booleans, constants, attributes. Operators are blue where One Dark Pro uses cyan.
The preview is generated from the palette by make preview, so it never drifts from the colors.
| Role | Color | Hex |
|---|---|---|
| Variables, fields, keys, tags, errors | Red | #e06c75 |
| Keywords, decorators | Purple | #c084fc |
| Functions, types, builtins, numbers, booleans, constants | Yolk yellow | #ffc940 |
| Operators | Blue | #6cb8ff |
| Strings | Scallion | #60e654 |
| Escapes, enum members, accents | Teal | #78e2d6 |
| Text | Rice cream | #d8d3c3 |
| Punctuation | Muted | #a8a396 |
| Comments | Blue gray | #8695b7 |
| Background | Navy | #0d111a |
| Line numbers, dividers | Gutter | #586480 |
| Dormant, not assigned to any group | Orange | #fc9a2c |
Fields and properties are red on both declaration and access, like One Dark Pro. Diff backgrounds are tints at one OKLCH lightness and chroma in each accent's hue, and search backgrounds are blends. Both are computed at load time, so overriding a palette color carries through everywhere.
A bright tier (red_bright, green_bright, yellow_bright, blue_bright, purple_bright, cyan_bright, fg_bright) lifts each accent 0.04 OKLCH lightness with its hue held. It fills ANSI slots 9 to 15 in :terminal and in the extras, so bold terminal text reads as the same color, only lit.
- Consistent token roles across legacy syntax, treesitter, and LSP semantic tokens - tuned against TypeScript, JavaScript, Go, Rust, Java, Python, Lua, CSS, HTML, YAML, JSON, TOML, and Markdown
- Terminal colors (
:terminalmatches the theme) - Bundled lualine theme
- Extras for Ghostty, Hyprland, waybar, rofi, dunst, fzf, zsh, Starship, tmux, lazygit, bat, btop, eza, opencode, Slack, Discord, Zen and Chromium browsers, frameit and efr, generated from the same palette (see Extras)
on_colors/on_highlightshooks for overriding anything- Popular plugin support (Telescope, neo-tree, gitsigns, nvim-cmp, and more)
{
"eggfriedrice24/eggfriedrice.nvim",
lazy = false,
priority = 1000,
config = function()
vim.cmd.colorscheme("eggfriedrice")
end,
}vim.pack.add({ "https://github.com/eggfriedrice24/eggfriedrice.nvim" })
vim.cmd.colorscheme("eggfriedrice")setup() is optional and only needed to change defaults. Call it before colorscheme. Full docs: :h eggfriedrice.
-- defaults
require("eggfriedrice").setup({
transparent = false, -- no background; let the terminal show through
italic_comments = true, -- italic comments
dim_inactive = false, -- darker background in inactive windows
on_colors = nil, -- fun(colors): tweak the palette
on_highlights = nil, -- fun(highlights, colors): tweak highlight groups
})
vim.cmd.colorscheme("eggfriedrice")Removes editor, float, and sidebar backgrounds so your terminal's background (and its opacity or blur) shows through:
{
"eggfriedrice24/eggfriedrice.nvim",
lazy = false,
priority = 1000,
config = function()
require("eggfriedrice").setup({
transparent = true,
})
vim.cmd.colorscheme("eggfriedrice")
end,
}require("eggfriedrice").setup({
italic_comments = false,
})Inactive windows get the darker background shade (ignored while transparent is set):
require("eggfriedrice").setup({
dim_inactive = true,
})on_colors runs before highlights are built and receives the complete palette, including semantic aliases (error, git_add, ...) and derived backgrounds (diff, search, ...). Changes carry through everywhere:
require("eggfriedrice").setup({
on_colors = function(c)
c.green = "#b0e070" -- brighter strings
c.comment = "#8a8578" -- brighter comments
end,
})on_highlights runs after all groups are built and can change or add any group. The dormant orange is in the palette for exactly this:
require("eggfriedrice").setup({
on_highlights = function(hl, c)
hl.CursorLineNr = { fg = c.red, bold = true }
hl["@punctuation.special"] = { fg = c.orange }
hl.TelescopeBorder = { fg = c.fg_gutter }
end,
})A matching lualine theme is bundled (normal is yellow, insert green, visual purple, replace red, command cyan):
require("lualine").setup({
options = { theme = "eggfriedrice" },
})The same palette, rendered for the rest of the terminal. Every file under extras/ is generated from lua/eggfriedrice/colors.lua by make extras, and CI fails when they drift, so they never lag behind the editor.
| App | File | Install |
|---|---|---|
| Ghostty | extras/ghostty/eggfriedrice |
copy to ~/.config/ghostty/themes/eggfriedrice, set theme = eggfriedrice |
| fzf 0.36+ | extras/fzf/eggfriedrice.sh |
source it from your shell rc |
| zsh with zsh-syntax-highlighting and zsh-autosuggestions | extras/zsh/eggfriedrice.zsh |
source it from .zshrc |
| fast-syntax-highlighting | extras/fsh/eggfriedrice.ini |
copy to ~/.config/fsh/, run fast-theme XDG:eggfriedrice |
| Starship | extras/starship/eggfriedrice.toml |
paste into starship.toml, use the names in style |
| tmux 3.3+ | extras/tmux/eggfriedrice.tmux |
source-file it from tmux.conf; the palette is also set as @eggfriedrice_* user options for your own formats |
| lazygit | extras/lazygit/eggfriedrice.yml |
append to LG_CONFIG_FILE after your own config |
| bat, Sublime Text | extras/bat/eggfriedrice.tmTheme |
copy to ~/.config/bat/themes/, run bat cache --build, set BAT_THEME=eggfriedrice |
| Hyprland and hyprlock | extras/hyprland/eggfriedrice.conf |
source = it, then use $yellow or rgba($yellowAlphaee) |
| Lua (Hyprland's Lua config, wezterm, ...) | extras/lua/eggfriedrice.lua |
put it on your Lua path and require("eggfriedrice") |
GTK CSS: waybar, ghostty gtk-custom-css |
extras/gtk/eggfriedrice.css |
@import url(...) it, then use @yellow or alpha(@bg, 0.7) |
| rofi | extras/rofi/eggfriedrice.rasi |
@import it, then use @yellow |
| dunst | extras/dunst/eggfriedrice.conf |
copy or symlink into ~/.config/dunst/dunstrc.d/ |
| btop | extras/btop/eggfriedrice.theme |
copy into ~/.config/btop/themes/, set color_theme = "eggfriedrice" |
| eza | extras/eza/eggfriedrice.yml |
copy or symlink to ~/.config/eza/theme.yml, unset LS_COLORS and EZA_COLORS |
| opencode | extras/opencode/eggfriedrice.json |
copy or symlink into ~/.config/opencode/themes/, then set theme.name in cli.json (opencode 2) or theme in tui.json (opencode 1) |
| Slack | extras/slack/eggfriedrice.txt |
Preferences, Appearance, Custom theme, Import: paste the four-color line (classic client: the ten-color one) |
| Discord via Vencord, Vesktop or BetterDiscord | extras/discord/eggfriedrice.theme.css |
copy or symlink into the client mod's themes/ dir and enable it; the stock client cannot load themes |
| Zen Browser | extras/zen/userChrome.css |
copy or symlink to <profile>/chrome/userChrome.css, set toolkit.legacyUserProfileCustomizations.stylesheets to true in about:config, restart |
| Helium and other Chromium browsers | extras/chromium/manifest.json |
chrome://extensions, Developer mode, Load unpacked, pick the extras/chromium folder |
| frameit 0.2+ | extras/frameit/eggfriedrice.toml |
include = "/path/to/eggfriedrice.toml" in ~/.config/frameit/config.toml |
| efr | extras/efr/eggfriedrice.toml |
set palette = "/path/to/eggfriedrice.toml" under [render] in ~/.config/efr/config.toml; the file's code_theme points at ../bat/eggfriedrice.tmTheme next to it, so code uses the bat theme; in a copy of the file, set code_theme to an absolute path |
| anything else | extras/palette/eggfriedrice.json |
primitives, semantic tokens, the 16 ANSI slots and every app's role map as JSON |
Shell roles match the editor: commands are yellow like functions, quoted words green like strings, $vars red like variables, redirections blue like operators. The palette JSON carries the full token set of the design system, including the semantic names each extra maps from.
- telescope.nvim
- nvim-tree.lua
- neo-tree.nvim
- gitsigns.nvim
- indent-blankline.nvim
- which-key.nvim
- nvim-cmp
- lazy.nvim
- mason.nvim
- bufferline.nvim
- nvim-notify
- noice.nvim
- flash.nvim
- mini.nvim
- lualine.nvim
MIT