A high-contrast, futuristic & vibrant theme for neovim
- 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
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.
vim.cmd("colorscheme cyberdream")
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({
-- Enable transparent background
transparent = false,
-- Enable italics comments
italic_comments = false,
-- Replace all fillchars with ' ' for the ultimate clean look
hide_fillchars = false,
-- Modern borderless telescope theme - also applies to fzf-lua
borderless_telescope = true,
-- Set terminal colors used in `:terminal`
terminal_colors = true,
-- Use caching to improve performance - WARNING: experimental feature - expect the unexpected!
-- Early testing shows a 60-70% improvement in startup time. YMMV. Disables dynamic light/dark theme switching.
cache = false, -- generate cache with :CyberdreamBuildCache and clear with :CyberdreamClearCache
theme = {
variant = "default", -- use "light" for the light variant. Also accepts "auto" to set dark or light colors based on the current value of `vim.o.background`
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 },
-- Complete list can be found in `lua/cyberdream/theme.lua`
},
-- Override a highlight group entirely using the color 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 a color entirely
colors = {
-- For a list of colors see `lua/cyberdream/colours.lua`
-- Example:
bg = "#000000",
green = "#00ff00",
magenta = "#ff00ff",
},
},
-- Disable or enable colorscheme extensions
extensions = {
telescope = true,
notify = true,
mini = true,
...
},
})
Note
For a complete list of extensions, see the table in config.lua
.
We've cooked up some wonderful extras to enhance your cyberdream experience. Mostly terminal themes and a few other goodies!
- Alacritty
- Fish
- GitUI
- Helix
- Kitty
- Lazydocker
- Lazygit
- lsd
- Pywal
- Rio
- Textmate/Bat/Sublime/Delta
- Tilux
- Tmux
- Vivid
- Wezterm
- Windows Terminal
- Zed
- Zellij
Include these alongside the setup
function to add additional functionality to the theme.
-- Add a custom keybinding to toggle the colorscheme
vim.api.nvim_set_keymap("n", "<leader>tt", ":CyberdreamToggleMode<CR>", { noremap = true, silent = true })
-- 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,
})
Dark
Light
Contributions are welcome! Please read the contributing guidelines to get started.
1. For Lazyvim users, refer to the LazyVim docs for specific instructions.