scottmckendry/cyberdream.nvim
scottmckendry/cyberdream.nvim has 1,425 GitHub stars and 59 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-07 06:18 UTC. Last push 2026-11-01.
🤖💤 High-contrast, Futuristic & Vibrant Neovim Colorscheme
What you can do
- Transparency-first design - all design decisions are made with transparency in mind.
- High contrast - Colours have been carefully chosen to be cohesive and easy on the eyes while still being easy to distinguish.
- Terminal Support - Several included terminal themes to enhance your cyberdream experience.
- Extensions - Support for a variety of popular plugins out of the box. Can be toggled on or off to maximise performance.
Measured star growth
- in 24h
- +1
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
A high-contrast, futuristic & vibrant theme for neovim
|
|
|
|
|
|
|
|
|
🚀 Features
- Transparency-first design - all design decisions are made with transparency in mind.
- High contrast - Colours have been carefully chosen to be cohesive and easy on the eyes while still being easy to distinguish.
- Terminal Support - Several included terminal themes to enhance your cyberdream experience.
- Extensions - Support for a variety of popular plugins out of the box. Can be toggled on or off to maximise performance.
Supported Plugins/Extensions
📦 Installation
Vim.pack (Neovim 0.12+):
vim.pack.add({
"https://github.com/scottmckendry/cyberdream.nvim",
})
Lazy1:
{
"scottmckendry/cyberdream.nvim",
lazy = false,
priority = 1000,
}
Packer:
use { "scottmckendry/cyberdream.nvim" }
Lualine (optional):
{
require("lualine").setup({
-- ... other config
options = {
theme = "auto", -- "auto" will set the theme dynamically based on the colorscheme
},
-- ... other config
})
}
See my personal lualine config here for an example.
🚀 Usage
vim.cmd("colorscheme cyberdream")
⚙️ Configuring
Calling setup is optional, but allows you to configure the theme to your liking.
Below is an example of all the available configuration options with their default values:
require("cyberdream").setup({
-- Set light or dark variant
variant = "default", -- use "light" for the light variant, "muted" for a softer dark variant. Also accepts "auto" to set dark or light colors based on the current value of `vim.o.background`
-- Enable transparent background
transparent = false,
-- Reduce the overall saturation of colours for a more muted look
saturation = 1, -- accepts a value between 0 and 1. 0 will be fully desaturated (greyscale) and 1 will be the full color (default)
-- Enable italics comments
italic_comments = false,
-- Replace all fillchars with ' ' for the ultimate clean look
hide_fillchars = false,
-- Apply a modern borderless look to pickers like Telescope, Snacks Picker & Fzf-Lua
borderless_pickers = false,
-- Set terminal colors used in `:terminal`
terminal_colors = true,
-- Improve start up time by caching highlights. Generate cache with :CyberdreamBuildCache and clear with :CyberdreamClearCache
cache = false,
-- Override highlight groups with your own colour values
highlights = {
-- Highlight groups to override, adding new groups is also possible
-- See `:h highlight-groups` for a list of highlight groups or run `:hi` to see all groups and their current values
-- Example:
Comment = { fg = "#696969", bg = "NONE", italic = true },
-- More examples can be found in `lua/cyberdream/extensions/*.lua`
},
-- Override a highlight group entirely using the built-in colour palette
overrides = function(colors) -- NOTE: This function nullifies the `highlights` option
-- Example:
return {
Comment = { fg = colors.green, bg = "NONE", italic = true },
["@property"] = { fg = colors.magenta, bold = true },
}
end,
-- Override colors
colors = {
-- For a list of colors see `lua/cyberdream/colours.lua`
-- Override colors for both light and dark variants
bg = "#000000",
green = "#00ff00",
-- If you want to override colors for light or dark variants only, use the following format:
dark = {
magenta = "#ff00ff",
fg = "#eeeeee",
},
light = {
red = "#ff5c57",
cyan = "#5ef1ff",
},
},
-- Disable or enable colorscheme extensions
extensions = {
telescope = true,
notify = true,
mini = true,
...
},
-- Alternatively, you can use 'default' to set all extensions at once
-- cache = true, -- Use cache for fastest loads
-- extensions = {
-- default = false, -- Disable all by default
-- base = true, -- Enable all built-in hl groups (you probably want this)
--
-- -- Now enable only what you want to use
-- telescope = true,
-- cmp = true,
-- gitsigns = true,
-- },
})
[!NOTE] For a complete list of extensions, see the table in
config.lua.
🎁 Extras
We've cooked up some wonderful extras to enhance your cyberdream experience. Mostly terminal themes and a few other goodies!
- Alacritty
- Base16/Stylix
- Dux
- Fish
- Foot
- Ghostty
- GitUI
- Helix
- K9s
- Kitty
- Lazydocker
- Lazygit
- lsd
- OpenCode
- Posting
- Pywal
- Rio
- Superfile
- Textmate/Bat/Sublime/Delta
- Tilix
- Tmux
- Vicinae
- Vim
- Vivid
- Warp
- Wezterm
- Windows Terminal
- Yazi
- Zed
- Zellij
Using the Nix Flake
For Nix users, this repository includes a flake.nix that exposes all extra themes through the extras output. This makes it easy to integrate cyberdream themes into your NixOS or home-manager configuration.
How it works
The flake automatically discovers all directories in the extras/ folder and makes them available as outputs. You can reference any extra theme directly in your Nix configuration.
Setup
Add cyberdream to your flake inputs:
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
cyberdream.url = "github:scottmckendry/cyberdream.nvim";
};
}
Example Usage with Home Manager
There are several approaches you can use depending on the program:
Using extraConfig for programs with custom config options
{ inputs, ... }:
{
# Alacritty - parse TOML and merge with settings
programs.alacritty = {
enable = true;
settings = builtins.fromTOML (builtins.readFile "${inputs.cyberdream.extras.alacritty}/alacritty.toml");
};
# Kitty - append theme config
programs.kitty = {
enable = true;
extraConfig = builtins.readFile "${inputs.cyberdream.extras.kitty}/kitty.conf";
};
# Tmux - append theme config
programs.tmux = {
enable = true;
extraConfig = builtins.readFile "${inputs.cyberdream.extras.tmux}/tmux.conf";
};
}
Using xdg.configFile for direct file placement
{ inputs, ... }:
{
# Yazi - link theme file directly
xdg.configFile."yazi/theme.toml".source = "${inputs.cyberdream.extras.yazi}/cyberdream.toml";
# Zellij - link theme file directly
xdg.configFile."zellij/themes/cyberdream.kdl".source = "${inputs.cyberdream.extras.zellij}/cyberdream.kdl";
}
Using program-specific theme options
{ inputs, ... }:
{
# Bat - register as a custom theme
programs.bat = {
enable = true;
config = {
theme = "cyberdream";
};
themes = {
cyberdream = {
src = inputs.cyberdream;
file = "extras/textmate/cyberdream.tmTheme";
};
};
};
}
Available extras
All directories in the extras/ folder are available through inputs.cyberdream.extras.<name>. See the list above for all available themes.
🌐 Community Integrations
Cyberdream is also integrated into these third-party projects:
🧑🍳 Recipes
Include these alongside the setup function to add additional functionality to the theme.
Map a key to toggle between light and dark mode
-- Add a custom keybinding to toggle the colorscheme
vim.api.nvim_set_keymap("n", "<leader>tt", ":CyberdreamToggleMode<CR>", { noremap = true, silent = true })
Create an autocmd to hook into the toggle event and run custom code
-- The event data property will contain a string with either "default" or "light" respectively
vim.api.nvim_create_autocmd("User", {
pattern = "CyberdreamToggleMode",
callback = function(event)
-- Your custom code here!
-- For example, notify the user that the colorscheme has been toggled
print("Switched to " .. event.data .. " mode!")
end,
})
🎨 Palette
Dark
| 🖌 | Hex | Color |
|---|---|---|
#16181a |
bg | |
#1e2124 |
bg_alt | |
#3c4048 |
bg_highlight | |
#ffffff |
fg | |
#7b8496 |
grey | |
#5ea1ff |
blue | |
#5eff6c |
green | |
#5ef1ff |
cyan | |
#ff6e5e |
red | |
#f1ff5e |
yellow | |
#ff5ef1 |
magenta | |
#ff5ea0 |
pink | |
#ffbd5e |
orange | |
#bd5eff |
purple |
Muted
| 🖌 | Hex | Color |
|---|---|---|
#16181a |
bg | |
#1e2124 |
bg_alt | |
#3c4048 |
bg_highlight | |
#ffffff |
fg | |
#7b8496 |
grey | |
#78a8e8 |
blue | |
#7ee088 |
green | |
#7ed8e8 |
cyan | |
#e8796f |
red | |
#e3c875 |
yellow | |
#e878d8 |
magenta | |
#e878a8 |
pink | |
#e3a875 |
orange | |
#b07ee8 |
purple |
Light
| 🖌 | Hex | Color |
|---|---|---|
#ffffff |
bg | |
#eaeaea |
bg_alt | |
#acacac |
bg_highlight | |
#16181a |
fg | |
#7b8496 |
grey | |
#0057d1 |
blue | |
#008b0c |
green | |
#008c99 |
cyan | |
#d11500 |
red | |
#997b00 |
yellow | |
#d100bf |
magenta | |
#f40064 |
pink | |
#d17c00 |
orange | |
#a018ff |
purple |
🤝 Contributing
Contributions are welcome! Please read the contributing guidelines to get started.
1. For Lazyvim users, refer to the LazyVim docs for specific instructions.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,641 starspublic-apis/public-apis
A collective list of free APIs
496,892 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
439,712 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,110 stars