scottmckendry / cyberdream.nvim

🤖💤 High-contrast, Futuristic & Vibrant Coloursheme for Neovim
MIT License
478 stars 26 forks source link
alacritty-theme cyberdream kitty neovim neovim-colorscheme neovim-plugin neovim-theme textmate textmate-theme tmtheme vim-colorscheme wezterm-colorscheme windows-terminal-theme

A high-contrast, futuristic & vibrant theme for neovim

Issues License stars


🚀 Features

Supported Plugins/Extensions

📦 Installation

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({
    -- 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
    borderless_telescope = true,

    -- Set terminal colors used in `:terminal`
    terminal_colors = true,

    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.

🎁 Extras

We've cooked up some wonderful extras to enhance your cyberdream experience. Mostly terminal themes and a few other goodies!

terminal

🧑‍🍳 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,
})

image

🎨 Palette

Dark | 🖌 | Hex | Color | | --------------------------------------------------------- | --------- | ----------- | | ![#16181a](https://place-hold.it/15/16181a/16181a?text=+) | `#16181a` | bg | | ![#1e2124](https://place-hold.it/15/1e2124/1e2124?text=+) | `#1e2124` | bgAlt | | ![#3c4048](https://place-hold.it/15/3c4048/3c4048?text=+) | `#3c4048` | bgHighlight | | ![#ffffff](https://place-hold.it/15/ffffff/ffffff?text=+) | `#ffffff` | fg | | ![#bbd3ff](https://place-hold.it/15/bbd3ff/bbd3ff?text=+) | `#bbd3ff` | lightGrey | | ![#7b8496](https://place-hold.it/15/7b8496/7b8496?text=+) | `#7b8496` | grey | | ![#5ea1ff](https://place-hold.it/15/5ea1ff/5ea1ff?text=+) | `#5ea1ff` | blue | | ![#5eff6c](https://place-hold.it/15/5eff6c/5eff6c?text=+) | `#5eff6c` | green | | ![#5ef1ff](https://place-hold.it/15/5ef1ff/5ef1ff?text=+) | `#5ef1ff` | cyan | | ![#ff6e5e](https://place-hold.it/15/ff6e5e/ff6e5e?text=+) | `#ff6e5e` | red | | ![#f1ff5e](https://place-hold.it/15/f1ff5e/f1ff5e?text=+) | `#f1ff5e` | yellow | | ![#ff5ef1](https://place-hold.it/15/ff5ef1/ff5ef1?text=+) | `#ff5ef1` | magenta | | ![#ff5ea0](https://place-hold.it/15/ff5ea0/ff5ea0?text=+) | `#ff5ea0` | pink | | ![#ffbd5e](https://place-hold.it/15/ffbd5e/ffbd5e?text=+) | `#ffbd5e` | orange | | ![#bd5eff](https://place-hold.it/15/bd5eff/bd5eff?text=+) | `#bd5eff` | purple |
Light | 🖌 | Hex | Color | | --------------------------------------------------------- | --------- | ----------- | | ![#ffffff](https://place-hold.it/15/ffffff/ffffff?text=+) | `#ffffff` | bg | | ![#eaeaea](https://place-hold.it/15/eaeaea/eaeaea?text=+) | `#eaeaea` | bgAlt | | ![#acacac](https://place-hold.it/15/acacac/acacac?text=+) | `#acacac` | bgHighlight | | ![#16181a](https://place-hold.it/15/16181a/16181a?text=+) | `#16181a` | fg | | ![#7b8496](https://place-hold.it/15/7b8496/7b8496?text=+) | `#7b8496` | grey | | ![#0057d1](https://place-hold.it/15/0057d1/0057d1?text=+) | `#0057d1` | blue | | ![#008b0c](https://place-hold.it/15/008b0c/008b0c?text=+) | `#008b0c` | green | | ![#008c99](https://place-hold.it/15/008c99/008c99?text=+) | `#008c99` | cyan | | ![#d11500](https://place-hold.it/15/d11500/d11500?text=+) | `#d11500` | red | | ![#997b00](https://place-hold.it/15/997b00/997b00?text=+) | `#997b00` | yellow | | ![#d100bf](https://place-hold.it/15/d100bf/d100bf?text=+) | `#d100bf` | magenta | | ![#f40064](https://place-hold.it/15/f40064/f40064?text=+) | `#f40064` | pink | | ![#d17c00](https://place-hold.it/15/d17c00/d17c00?text=+) | `#d17c00` | orange | | ![#a018ff](https://place-hold.it/15/a018ff/a018ff?text=+) | `#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.