Awesome
<p align="center"> <img src="https://github.com/scottmckendry/cyberdream.nvim/assets/39483124/e758f47a-32eb-4eac-a008-eb59272badef"> <b><i>A high-contrast, futuristic & vibrant theme for neovim</i></b> </p> <p align="center"> <a href="https://github.com/scottmckendry/cyberdream.nvim/issues"> <img alt="Issues" src="https://img.shields.io/github/issues/scottmckendry/cyberdream.nvim?style=for-the-badge&logo=github&color=%23ffbd5e"> </a> <a href="https://github.com/scottmckendry/cyberdream.nvim/blob/main/LICENSE"> <img alt="License" src="https://img.shields.io/github/license/scottmckendry/cyberdream.nvim?style=for-the-badge&logo=github&color=%235ef1ff"> </a> <a href="https://github.com/scottmckendry/cyberdream.nvim/stars"> <img alt="stars" src="https://img.shields.io/github/stars/scottmckendry/cyberdream.nvim?style=for-the-badge&logo=github&color=%23bd5eff"> </a> <br> <a href="https://dotfyle.com/plugins/scottmckendry/cyberdream.nvim"> <img src="https://dotfyle.com/plugins/scottmckendry/cyberdream.nvim/shield?style=for-the-badge" /> </a> </p> <hr> <table align="center"> <tr> <td> <img src="https://github.com/scottmckendry/cyberdream.nvim/assets/39483124/f9dc6523-f458-48df-8837-09d5c131a5c7"> </td> <td> <img src="https://github.com/scottmckendry/cyberdream.nvim/assets/39483124/0a0595a9-4d4d-4fc3-9bb3-dab2eb3b3e04" </td> </tr> <tr> <td> <img src="https://github.com/scottmckendry/cyberdream.nvim/assets/39483124/ac6f5b6e-458b-4087-bbe3-745c1033cfb0" </td> <td> <img src="https://github.com/scottmckendry/cyberdream.nvim/assets/39483124/e7721a7d-26a9-4bcb-b72b-18c44defd7c6" </td> </tr> <tr> <td> <img src="https://github.com/scottmckendry/cyberdream.nvim/assets/39483124/18c40e4c-e1f7-40c6-be82-f82c011338bd" </td> <td> <img src="https://github.com/scottmckendry/cyberdream.nvim/assets/39483124/80def4be-476e-4f1d-9e2a-cd141264fecd" </td> </tr> </table>🚀 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.
📦 Installation
Lazy<sup>1</sup>:
{
"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({
-- 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,
-- Improve start up time by caching highlights. Generate cache with :CyberdreamBuildCache and clear with :CyberdreamClearCache
cache = false,
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`
saturation = 1, -- accepts a value between 0 and 1. 0 will be fully desaturated (greyscale) and 1 will be the full color (default)
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
.
🎁 Extras
We've cooked up some wonderful extras to enhance your cyberdream experience. Mostly terminal themes and a few other goodies!
- Alacritty
- Base16/Stylix
- Fish
- GitUI
- Helix
- Kitty
- Lazydocker
- Lazygit
- lsd
- Pywal
- Rio
- Textmate/Bat/Sublime/Delta
- Tilux
- Tmux
- Vivid
- Warp
- Wezterm
- Windows Terminal
- Yazi
- Zed
- Zellij
🧑🍳 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
<details> <summary><b>Dark</b></summary>🖌 | Hex | Color |
---|---|---|
#16181a | bg | |
#1e2124 | bgAlt | |
#3c4048 | bgHighlight | |
#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 | bgAlt | |
#acacac | bgHighlight | |
#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.
<hr><sub>1. For Lazyvim users, refer to the LazyVim docs for specific instructions.</sub>