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({
-- Set light or dark variant
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`
-- 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.
We've cooked up some wonderful extras to enhance your cyberdream experience. Mostly terminal themes and a few other goodies!
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.
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.
Add cyberdream to your flake inputs:
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
cyberdream.url = "github:scottmckendry/cyberdream.nvim";
};
}
There are several approaches you can use depending on the program:
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";
};
}
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";
}
{ inputs, ... }:
{
# Bat - register as a custom theme
programs.bat = {
enable = true;
config = {
theme = "cyberdream";
};
themes = {
cyberdream = {
src = inputs.cyberdream;
file = "extras/textmate/cyberdream.tmTheme";
};
};
};
}
All directories in the extras/ folder are available through inputs.cyberdream.extras.<name>. See the list above for all available themes.
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 })
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,
})
| 🖌 | 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 |
| 🖌 | 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 |
Contributions are welcome! Please read the contributing guidelines to get started.
1. For Lazyvim users, refer to the LazyVim docs for specific instructions.