317 lines
16 KiB
Markdown
317 lines
16 KiB
Markdown
<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](#-extras) 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.
|
|
|
|
<details>
|
|
<summary><b>Supported Plugins/Extensions</b></summary>
|
|
|
|
| Plugin | Highlights |
|
|
| ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
|
| [alpha-nvim](https://github.com/goolord/alpha-nvim) | [alpha](lua/cyberdream/extensions/alpha.lua) |
|
|
| [blink.cmp](https://github.com/Saghen/blink.cmp) | [blinkcmp](lua/cyberdream/extensions/blinkcmp.lua) |
|
|
| [dashboard-nvim](https://github.com/nvimdev/dashboard-nvim) | [dashboard](lua/cyberdream/extensions/dashboard.lua) |
|
|
| [fzf-lua](https://github.com/ibhagwan/fzf-lua) | [fzflua](lua/cyberdream/extensions/fzflua.lua) |
|
|
| [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) | [gitsigns](lua/cyberdream/extensions/gitsigns.lua) |
|
|
| [gitpad.nvim](https://github.com/yujinyuz/gitpad.nvim) | [gitpad](lua/cyberdream/extensions/gitpad.lua) |
|
|
| [grapple.nvim](https://github.com/cbochs/grapple.nvim) | [grapple](lua/cyberdream/extensions/grapple.lua) |
|
|
| [grug-far.nvim](https://github.com/MagicDuck/grug-far.nvim) | [grugfar](lua/cyberdream/extensions/grugfar.lua) |
|
|
| [heirline-components.nvim](https://github.com/Zeioth/heirline-components.nvim) | [heirline](lua/cyberdream/extensions/heirline.lua) |
|
|
| [helpview.nvim](https://github.com/OXY2DEV/helpview.nvim) | [helpview](lua/cyberdream/extensions/helpview.lua) |
|
|
| [hop.nvim](https://github.com/phaazon/hop.nvim) | [hop](lua/cyberdream/extensions/hop.lua) |
|
|
| [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) | [indentblankline](lua/cyberdream/extensions/indentblankline.lua) |
|
|
| [kubectl.nvim](https://github.com/ramilito/kubectl.nvim) | [kubectl](lua/cyberdream/extensions/kubectl.lua) |
|
|
| [lazy.nvim](https://github.com/folke/lazy.nvim) | [lazy](lua/cyberdream/extensions/lazy.lua) |
|
|
| [leap.nvim](https://github.com/ggandor/leap.nvim) | [leap](lua/cyberdream/extensions/leap.lua) |
|
|
| [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) | [lualine](lua/cyberdream/extensions/lualine.lua) |
|
|
| [markview.nvim](https://github.com/OXY2DEV/markview.nvim) | [markview](lua/cyberdream/extensions/markview.lua) |
|
|
| [mini.nvim](https://github.com/echasnovski/mini.nvim) | [mini](lua/cyberdream/extensions/mini.lua) |
|
|
| [noice.nvim](https://github.com/folke/noice.nvim) | [noice](lua/cyberdream/extensions/noice.lua) |
|
|
| [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) | [cmp](lua/cyberdream/extensions/cmp.lua) |
|
|
| [nvim-notify](https://github.com/rcarriga/nvim-notify) | [notify](lua/cyberdream/extensions/notify.lua) |
|
|
| [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) | [treesitter](lua/cyberdream/extensions/treesitter.lua) |
|
|
| [nvim-treesitter-context](https://github.com/nvim-treesitter/nvim-treesitter-context) | [treesittercontext](lua/cyberdream/extensions/treesittercontext.lua) |
|
|
| [rainbow-delimiters.nvim](https://github.com/HiPhish/rainbow-delimiters.nvim) | [rainbow_delimiters](lua/cyberdream/extensions/rainbow_delimiters.lua) |
|
|
| [render-markdown.nvim](https://github.com/MeanderingProgrammer/render-markdown.nvim) | [markdown](lua/cyberdream/extensions/markdown.lua) |
|
|
| [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) | [telescope](lua/cyberdream/extensions/telescope.lua) |
|
|
| [trouble.nvim](https://github.com/folke/trouble.nvim) | [trouble](lua/cyberdream/extensions/trouble.lua) |
|
|
| [which-key.nvim](https://github.com/folke/which-key.nvim) | [whichkey](lua/cyberdream/extensions/whichkey.lua) |
|
|
|
|
</details>
|
|
|
|
## 📦 Installation
|
|
|
|
Lazy<sup>1</sup>:
|
|
|
|
```lua
|
|
{
|
|
"scottmckendry/cyberdream.nvim",
|
|
lazy = false,
|
|
priority = 1000,
|
|
}
|
|
```
|
|
|
|
Packer:
|
|
|
|
```lua
|
|
use { "scottmckendry/cyberdream.nvim" }
|
|
```
|
|
|
|
Lualine (optional):
|
|
|
|
```lua
|
|
{
|
|
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](https://github.com/scottmckendry/Windots/blob/main/nvim/lua/plugins/lualine.lua) for an example.
|
|
|
|
## 🚀 Usage
|
|
|
|
```lua
|
|
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:
|
|
|
|
```lua
|
|
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 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`](lua/cyberdream/config.lua).
|
|
|
|
## 🎁 Extras
|
|
|
|
We've cooked up some wonderful extras to enhance your cyberdream experience. Mostly terminal themes and a few other goodies!
|
|
|
|

|
|
|
|
- **[Alacritty](extras/alacritty/)**
|
|
- **[Base16/Stylix](extras/base16/)**
|
|
- **[Fish](extras/fish/)**
|
|
- **[Foot](extras/foot/)**
|
|
- **[Ghostty](extras/ghostty/)**
|
|
- **[GitUI](extras/gitui/)**
|
|
- **[Helix](extras/helix/)**
|
|
- **[Kitty](extras/kitty/)**
|
|
- **[Lazydocker](extras/lazydocker/)**
|
|
- **[Lazygit](extras/lazygit/)**
|
|
- **[lsd](extras/lsd/)**
|
|
- **[Pywal](extras/pywal/)**
|
|
- **[Rio](extras/rio/)**
|
|
- **[Textmate/Bat/Sublime/Delta](extras/textmate/)**
|
|
- **[Tilux](extras/tilux/)**
|
|
- **[Tmux](extras/tmux/)**
|
|
- **[Vivid](extras/vivid/)**
|
|
- **[Warp](extras/warp/)**
|
|
- **[Wezterm](extras/wezterm/)**
|
|
- **[Windows Terminal](extras/windowsterminal/)**
|
|
- **[Yazi](extras/yazi/)**
|
|
- **[Zed](extras/zed/)**
|
|
- **[Zellij](extras/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
|
|
|
|
```lua
|
|
-- 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
|
|
|
|
```lua
|
|
-- 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` | 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 |
|
|
|
|
</details>
|
|
|
|
<details>
|
|
<summary><b>Light</b></summary>
|
|
|
|
| 🖌 | 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 |
|
|
|
|
</details>
|
|
|
|
## 🤝 Contributing
|
|
|
|
Contributions are welcome! Please read the [contributing guidelines](CONTRIBUTING.md) to get started.
|
|
|
|
<hr>
|
|
|
|
<sub>1. For Lazyvim users, refer to the [LazyVim docs](http://www.lazyvim.org/plugins/colorscheme) for specific instructions.</sub>
|