Giter Club home page Giter Club logo

cyberdream.nvim's Introduction

A high-contrast, futuristic & vibrant theme for neovim

Issues License stars


๐Ÿš€ 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.
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 #16181a bg
#1e2124 #1e2124 bgAlt
#3c4048 #3c4048 bgHighlight
#ffffff #ffffff fg
#7b8496 #7b8496 grey
#5ea1ff #5ea1ff blue
#5eff6c #5eff6c green
#5ef1ff #5ef1ff cyan
#ff6e5e #ff6e5e red
#f1ff5e #f1ff5e yellow
#ff5ef1 #ff5ef1 magenta
#ff5ea0 #ff5ea0 pink
#ffbd5e #ffbd5e orange
#bd5eff #bd5eff purple
Light
๐Ÿ–Œ Hex Color
#ffffff #ffffff bg
#eaeaea #eaeaea bgAlt
#acacac #acacac bgHighlight
#16181a #16181a fg
#7b8496 #7b8496 grey
#0057d1 #0057d1 blue
#008b0c #008b0c green
#008c99 #008c99 cyan
#d11500 #d11500 red
#997b00 #997b00 yellow
#d100bf #d100bf magenta
#f40064 #f40064 pink
#d17c00 #d17c00 orange
#a018ff #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.

cyberdream.nvim's People

Contributors

akiyosi avatar alejandrosuero avatar byt3m4st3r avatar echasnovski avatar github-actions[bot] avatar hchris21 avatar ianchesal avatar letieu avatar mvykool avatar purtl avatar s1m0n38 avatar scottmckendry avatar txk2048 avatar xbreid avatar zoedsoupe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

cyberdream.nvim's Issues

Easy way to switch theme variant?

Question or Suggestion

Hello,
really Thank you for the theme!

I'm wondering if there is a simple way to switch the theme variant.

maybe using set background=light

Comments seem to have highligting?

Question or Suggestion

Love the theme, just curious on the comments. When I comment I get what look like highlights which look semi-random...but also seem to be highlighting some key words. If this is intended am I missing some config to stop the highlights? Cheers.

Screenshot 2024-07-05 at 8 13 15โ€ฏPM

Selection color is same as color used for some syntax highlighting

Selection color is same as color used for some syntax highlighting, which results in some elements "disappearing" when highlighted.

Example markdown:

# Title 1
## Title 2
### Title 3

When visual mode is enabled and this block is selected, you won't be able to see the contents of the third line. The same happens in this example python:

def foo:
    print("bar")

My suggestion would be to find a color for highlighting that is not used for syntax highlighting.

Alacritty and Zellij support

Hi,

I prefer to maintain consistent color schemes across my terminal applications. Below are the color schemes derived from Cyberdream for Alacritty (a terminal emulator) and Zellij (a terminal multiplexer):

It might be beneficial to provide users with an official version of the Cyberdream color scheme for various terminal applications, similar to what is done with Catpuccin.

Any chance that the telecope picker could be a color scheme, too?`

Hi so I love this theme, thank you. I also really like the telescope picker colors, I find that black is perfectly black without being 'one hundred percent black', and the red and green for 'find' files' and 'files preview' are perfectly matched to it, too. I can't help but wonder if that would be a good color theme in it's own right, of course with some other colors of the same hue thrown in, too? Just a thought, sorry if this is not the place for it. And I really like the color schemehere, too!

Tree sitter highlighting differs a bit

Description

image
If you compare both the themes, you can see that vim.o.wrap differs between both the themes probably due to a missing highlight group for treesitter. Do you know which highlight group could this be.

Neovim version?

NVIM v0.11.0-dev-313+gfc9b70826

What should happen?

In vim.o.wrap, o.wrap part should be highlighted as well.

What happened instead?

In vim.o.wrap, o.wrap part should was not highlighted.

Your configuration

{
    "scottmckendry/cyberdream.nvim",
    lazy = false,
    priority = 1000,
    config = function()
        require("cyberdream").setup({
            transparent = true,
            italic_comments = true,
            hide_fillchars = true,
            borderless_telescope = true,
        })
        vim.cmd("colorscheme cyberdream")
    end,
}

Extras docs

Question or Suggestion

Add/update readmes for each cyberdream extra with install instructions and any other relevant info.

It's possible configure in Packer?

Question or Suggestion

Hi everyone,

I'll like to use this awesome theme, but current I use Packer to manager my plugins, so trying to do that don't work:

packer.lua

    use {
        'scottmckendry/cyberdream.nvim',
        lazy = false,
        priority = 1000
    }

after/plugin/colors.lua

require("cyberdream").setup({
    -- Enable transparent background
    transparent = true, -- Default: false

    -- Enable italics comments
    italic_comments = true, -- Default: false

    -- Replace all fillchars with ' ' for the ultimate clean look
    hide_fillchars = true, -- Default: false

    -- Modern borderless telescope theme
    borderless_telescope = true, -- Default: true

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

    theme = { -- Default: nil
        variant = "light", -- Default: "deafult" (dark)
        highlights = {
            -- Highlight groups to override, adding new groups is also possible
            -- See `:help highlight-groups` for a list of highlight groups

            -- Example:
            Comment = { fg = "#696969", bg = "NONE", italic = true },

            -- Complete list can be found in `lua/cyberdream/theme.lua`
        },

        -- Override a color entirely
        colors = {
            -- For a list of colors see `lua/cyberdream/colours.lua`
            -- Example:
            bg = "#000000",
            green = "#00ff00",
            magenta = "#ff00ff",
        },
    },
})

Result:
2024-05-15_14-43

I use the default and most simple configuration, maybe losing something in the config.

Thanks!!

Highlight group separation

Question or Suggestion

To keep better separation in the file structure I thought of something to help separate highlight groups.

  • Right now:
# ./lua/cyberdream
โ”œโ”€โ”€ colors.lua
โ”œโ”€โ”€ config.lua
โ”œโ”€โ”€ extra/
โ”œโ”€โ”€ init.lua
โ”œโ”€โ”€ theme.lua
โ”œโ”€โ”€ treesitter.lua
โ””โ”€โ”€ util.lua
  • What I propose:
# ./lua/cyberdream
โ”œโ”€โ”€ colors.lua
โ”œโ”€โ”€ config.lua
โ”œโ”€โ”€ extra/
โ”œโ”€โ”€ init.lua
โ”œโ”€โ”€ groups/
โ”œโ”€โ”€โ”œโ”€โ”€base.lua
โ”œโ”€โ”€โ”œโ”€โ”€treesitter.lua
โ”œโ”€โ”€โ”œโ”€โ”€telescope.lua
โ”œโ”€โ”€โ”œโ”€โ”€lsp.lua
โ”œโ”€โ”€ treesitter.lua
โ”œโ”€โ”€ theme.lua
โ””โ”€โ”€ util.lua

With this I think it will reduce the theme.lua file to simply hook up the highlight groups and change the palette variant and apply the config.theme options, so each group has it separation.

Example:

-- ./lua/cyberdream/groups/telescope
local function callback(opts)
  local t = util.get_palette()
  local borderless_telescope = opts.borderless_telescope
  local telescope_style = ""
  if type(opts.borderless_telescope) == "table" then
    borderless_telescope = not opts.borderless_telescope.border
    telescope_style = opts.borderless_telescope.style
  end
  local highlights = {
    TelescopeBorder = { fg = t.bgHighlight },
    TelescopePromptTitle = { fg = t.blue },
    TelescopeResultsTitle = { fg = t.cyan },
    TelescopePromptPrefix = { fg = t.pink },
    TelescopePreviewTitle = { fg = t.magenta },
    TelescopeSelection = { bg = t.bgHighlight },
    TelescopePromptCounter = { fg = t.pink },
    GrappleTitle = { fg = t.pink },
    GrappleFooter = { fg = t.grey },
    GrappleBorder = { fg = t.cyan },
  }
  if borderless_telescope then
    vim.tbl_deep_extend("force", highlights, {
        TelescopeBorder = { fg = t.bgAlt, bg = t.bgAlt },
        TelescopeNormal = { bg = t.bgAlt },
        TelescopePreviewBorder = { fg = t.bgAlt, bg = t.bgAlt },
        TelescopePreviewNormal = { bg = t.bgAlt },
        TelescopeResultsBorder = { fg = t.bgAlt, bg = t.bgAlt },
        TelescopeResultsNormal = { bg = t.bgAlt },
        TelescopeResultsTitle = { fg = t.bgAlt, bg = t.bgAlt },
        GrappleNormal = { bg = t.bgAlt }
        GrappleBorder = { fg = t.bgAlt, bg = t.bgAlt }
        GrappleTitle = { fg = t.bgAlt, bg = t.cyan }
    })
    if telescope_style == "nvchad" then
      vim.tbl_deep_extend("force", hihglights, {
        TelescopePreviewTitle = { fg = t.bgAlt, bg = t.green, bold = true },
        TelescopePromptBorder = { fg = t.bgHighlight, bg = t.bgHighlight },
        TelescopePromptNormal = { fg = t.fg, bg = t.bgHighlight },
        TelescopePromptPrefix = { fg = t.red, bg = t.bgHighlight },
        TelescopePromptTitle = { fg = t.bgAlt, bg = t.red, bold = true },
      })
    else
      vim.tbl_deep_extend("force", hihglights, {
         TelescopePreviewTitle = { fg = t.bgAlt, bg = t.green },
         TelescopePromptBorder = { fg = t.bgAlt, bg = t.bgAlt },
         TelescopePromptNormal = { fg = t.fg, bg = t.bgAlt },
         TelescopePromptPrefix = { fg = t.red, bg = t.bgAlt },
         TelescopePromptTitle = { fg = t.bgAlt, bg = t.red },
      })
    end
  end
  return highlights
end

return callback
-- ./lua/cyberdream/theme.lua
local opts = config.options

local theme = {}

theme.highligths = util.get_hl_groups(opts)

if opts.hide_fillchars then
  vim.opt.fillchars:append({
    horiz = " ",
    horizup = " ",
    horizdown = " ",
    vert = " ",
    vertleft = " ",
    vertright = " ",
    verthoriz = " ",
    eob = " ",
  })
else
  vim.opt.fillchars:append({
    eob = " ",
  })
end

-- Use #000000 for full transparency
if opts.transparent then
  theme.highlights.NotifyBackground = { bg = "#000000" }
end

local overrides = opts.theme.overrides or opts.theme.highlights
if type(overrides) == "function" then
 overrides = overrides(t)
end
-- Override highlights with user defined highlights
theme.highlights = vim.tbl_deep_extend("force", theme.highlights, overrides or {})

return theme

Of course, util functions that I wrote in the examples had to be implemented. Or pass the opts necessary and return a table instead of a callback function

bug lazydocker: having cursor on an item makes the name unreadable

Description

When I navigate to an item, the item name becomes unreadable
Screenshot 2024-05-09 at 23 36 32
Screenshot 2024-05-09 at 23 36 37
Screenshot 2024-05-09 at 23 36 43
Screenshot 2024-05-09 at 23 36 47

Neovim version?

0.9.4

What should happen?

The highlighted text when cursor is on that item should be readable

What happened instead?

It becomes unreadable

Your configuration

{
    "scottmckendry/cyberdream.nvim",
    lazy = false,
    priority = 1000,
    config = function()
        require("cyberdream").setup({
            transparent = true,
            italic_comments = true,
            hide_fillchars = true,
            borderless_telescope = true,
        })
        vim.cmd("colorscheme cyberdream")
    end,
}

Support more plugins

Question or Suggestion

Hi, I love your theme. It really works well and I would suggest adding support to more plugins:

  • Aerial
  • mini-files
  • Grapple
  • LazyGit
  • LazyDocker

The popup border is invisible

Question or Suggestion

Now:
image
Should looks like:
image

I'm using vim-go, when I execute :GoDoc, the border is invisible, how can i fix this ?

bug: "light" theme makes cursor invincible

Description

Enabling "light" theme causes cursor to be invincible

Neovim version?

0.9.4

What should happen?

The cursor should be visible

What happened instead?

It became invincible

Your configuration

return {
  "scottmckendry/cyberdream.nvim",
  lazy = false,
  priority = 1000,
  config = function()
    require("cyberdream").setup({
      -- Recommended - see "Configuring" below for more config options
      -- transparent = true,
      italic_comments = true,
      hide_fillchars = true,
      borderless_telescope = true,
      terminal_colors = true,
      theme = {
        variant = "light",
        highlights = {
          Type = { fg = "NONE", bg = "NONE" },
        },
      },
    })
    vim.cmd("colorscheme cyberdream") -- set the colorscheme
  end,
}

tmux theme?

Really loving this theme so far- any chance of adding a matching tmux theme?

Cursorline is nonexistent

The cursor line seems to be not apparent despite vim.opt.cursorline = true. Its not an error with my config it only happens when the cyberdream theme is selected

image
image

pictures for comparison

Great theme btw, have been using it everyday since I saw the post on reddit

[Feat]: more colour distinction

Question or Suggestion

I am currently using astrotheme but I discovered this theme and I loved it, but the problem is, that all seems the same colour, hard to distinguish the type of variables.

  • cyberdream:
cyberdream colorscheme astrodark catppuccin mocha rose-pine-moon

As you can see, booleans have their own colour and accessing a variable member as well.

The highlight groups affected in this group, using :Inspect in the other colorschemes, are:

  • @boolean.lua links to Boolean
  • @variable.lua links to @variable
  • @variable.member.lua links to @property

How cyberdream is currently:

  • @boolean.lua links to Constant
  • @variable.lua links to @variable
  • @variable.member.lua links to @variable

In the case that this is the intended colour palette, at least exposing a function to override or add highlights would be a good start.

Support more plugins

I have a couple more plugins in my mind that I would like to suggest supporting:

  1. Gitpad.nvim
  2. Trouble.nvim
  3. Curl.nvim
  4. Kubectl.nvim

How can I make the builtin types italic (or different color)?

Description

I am trying to make the builtin types in italic (or different color) to be able to distinguish them better.

Neovim version?

nvim v0.10.0

What should happen?

No response

What happened instead?

Screenshot from 2024-07-08 17-16-36
:Inspect when the cursor is on 'int'
Screenshot from 2024-07-08 17-11-16
and this is when the cursor is on 'int32'

#include
#include <stdio.h>
#include <unistd.h>
#include <stdio.h>
#include

#include <assert.h>
#include <errno.h>

typedef unsigned int int32;
typedef unsigned short int int16;

Your configuration

return {
  "scottmckendry/cyberdream.nvim",
  lazy = false,
  priority = 1000,
  config = function()
    require("cyberdream").setup {
      transparent = true,
      italic_comments = true,
      hide_fillchars = true,
      terminal_colors = true,
      borderless_telescope = { border = false, style = "flat" },
      theme = {
        variant = "auto",
        overrides = function(colours)
          return {
            TelescopePromptPrefix = { fg = colours.blue },
            TelescopeMatching = { fg = colours.cyan },
            TelescopeResultsTitle = { fg = colours.blue },
            TelescopePromptCounter = { fg = colours.cyan },
            TelescopePromptTitle = { fg = colours.bg, bg = colours.blue, bold = true },
          }
        end,
      },
    }

    vim.cmd("colorscheme cyberdream")
    vim.api.nvim_set_keymap("n", "<leader>tt", ":CyberdreamToggleMode<CR>", { noremap = true, silent = true })
    vim.api.nvim_create_autocmd("User", {
      pattern = "CyberdreamToggleMode",
      callback = function(ev)
        print("Switched to " .. ev.data .. " mode!")
      end,
    })
  end,
}

Highlights for nvim-treesitter/nvim-treesitter-context

Currently, NormalFloat is set to the normal fg/bg colours. This causes nvim-treesitter-context lines not to be highlighted:

Appearance

Use the highlight group TreesitterContext to change the colors of the context. Per default it links to NormalFloat.

from (nvim-treesitter/nvim-treesitter-context README)

lazy config
{
    "scottmckendry/cyberdream.nvim",
    lazy = false,
    priority = 1000,
    opts = {
        transparent = true,
        italic_comments = true,
        hide_fillchars = true,
        borderless_telescope = false,
        terminal_colors = true,

        theme = {
            highlights = {
                LineNr = { fg = "#5C6594" },
            },
        },
    },
    config = function(_, opts)
        require("cyberdream").setup(opts)
        vim.cmd("colorscheme cyberdream")
    end,
},

Screenshots

current cyberdream:
cyberdream screenshot

tokyonight:
tokyonight screenshot

Search and replace with /gc needs work

When I try to search and replace: :%s/old/new/gc - all texts with "old" are highlighted as usual but the current "old" text is no different which means I have no idea which current "old" text i want to replace or not.

Screenshot 2024-04-30 at 10 46 02

The second highligted text should be of different color because that's the current one.

I'm using LazyVim Distro if that helps.

Request: change LineNr color

Hi, I would like to ask if it is possible to change the LineNumber Color away from bgHighlight?
Reason is, the line numbers are very thin and you can see them best with very high contrasts like black and white for example. In order to see the highlighted text, highlights needs to be darker then the text but brighter then the background which gives that colorgrade in which the thin linenumbers get hard to see (at least for me).

Otherwise, I really like the theme! Thank you for the great work!

Treesitter and semantic highlighting

I'm opening this issue to see if there's any intention to add more colors and highlighting groups to cyberdream.
I'm talking mostly from a programmer's perspective and am concerned about both treesitter hl groups like constant, variable etc., as well as LSP semantic highlight groups.
I'm no expert in this, I just browsed tokyonight's theme.lua and there's a lot there, perhaps even too much. I'm also not sure if all this highlighting doesn't conflict with cyberdream's high contrast goal. So I'd like to hear your thoughts on this. Thanks!

Color column

Can you add color column support in a cleanish looking way?

I think currently color column does not work

notify.nvim throwing warning when enabling cyberdream

After installing cyberdream to my LazyDistro:

return {
    "scottmckendry/cyberdream.nvim",
    lazy = false,
    priority = 1000,
    config = function()
        require("cyberdream").setup({
            -- Recommended - see "Configuring" below for more config options
            transparent = true,
            italic_comments = true,
            hide_fillchars = true,
            borderless_telescope = true,
            terminal_colors = true,
        })
        vim.cmd("colorscheme cyberdream") -- set the colorscheme
    end,
}

I get this warning everything I open up nvim:

 ๎ฉฌ  Warn  22:17:46 notify.warn nvim-notify Highlight group 'NotifyBackground' has no background highlight
Please provide an RGB hex value or highlight group with a background value for 'background_colour' option.
This is the colour that will be used for 100% transparency.

require("notify").setup({
  background_colour = "#000000",
})

Defaulting to #000000

Error after update

Description

Today I just update the cyberdream colorscheme, and it tells me it has break changes. When I restart nvim there is an error message like this:
image

image

And I use lazy.vim.

Neovim version?

0.10.0

What should happen?

No Error message.

What happened instead?

Error message is showed.

Your configuration

return {
  "scottmckendry/cyberdream.nvim",
  {
    "LazyVim/LazyVim",
    opts = {
      colorscheme = "cyberdream",
    },
  }
}

Transparent background in Telescope?

Love the theme! I've tried this on two machines now and notice that the Telescope background is not transparent. I'm not sure if this is by design or not, since the LazyGit background is transparent, and it is also a supported plugin. Should there be configuration changes needed to make Telescope background transparent? I'm using almost LazyVim defaults with the only change to my Telescope config being the following:

  {
    "nvim-telescope/telescope.nvim",
    -- opts will be merged with the parent spec
    opts = {
      defaults = {
        file_ignore_patterns = { ".git/", "node_modules", "poetry.lock" },
        vimgrep_arguments = {
          "rg",
          "--color=never",
          "--no-heading",
          "--hidden",
          "--with-filename",
          "--line-number",
          "--column",
          "--smart-case",
          "--trim",
        },
      },
      extensions = {
        fzf = {},
        live_grep_args = {},
      },
    },
  }
image

Automatic day/night colors switching based on vim.o.background

Question or Suggestion

I'm currently using tokyonight and it automatically switches between day and night themes based on vim.o.background being dark or light. This is very helpful in combination with tools that switch colorschemes based on system preferences.

For example, I have a system daemon that sends SIGUSR1 to all running neovim instances and have this lua code that switches the vim background:

local os_is_dark = function()
  return (vim.call(
    'system',
    [[echo $(defaults read -globalDomain AppleInterfaceStyle &> /dev/null && echo 'dark' || echo 'light')]]
  )):find('dark') ~= nil
end

local is_dark = function()
  return vim.o.background == 'dark'
end

local set_from_os = function()
  if os_is_dark() then
    vim.o.background = 'dark'
  else
    vim.o.background = 'light'
  end
end

local init = function()
  set_from_os()

  vim.api.nvim_create_autocmd('Signal', {
    pattern = '*',
    callback = function()
      set_from_os()
    end,
  })
end

local toggle = function()
  if is_dark() then
    vim.o.background = 'light'
  else
    vim.o.background = 'dark'
  end
end

return {
  toggle = toggle,
  init = init,
}

Cyberdream currently doesn't handle the color switch based on the background color. There now is a CyberdreamToggleMode vim cmd that toggles the theme that I can try to reimplement that in my lua code above to explicitly switch to dark or light colors, but ideally cyberdream could handle this on its own based on the vim.o.background value.

Add highlight for WinSeparator

Nvim is deprecating VertSplit and moving to WinSeparator for borders in 0.10. By default, WinSeparator links to normal which does not look great for most colorschemes.

Please add colors to tsx files

Question or Suggestion

The colors in a tsx file (react + typescript) looks very dull and "empty".

Please add support for this.

Example
Screenshot 2024-06-24 at 00 12 06

Bold/Italics (and combined) in Markdown

I was wondering about enabling Markdown to render strings appropriately that are in italics, bold, bold/italics? Is there a way to configure this currently (I wasn't seeing one but I could have missed it) or how hard would it be to add that in?

I love what this theme does for styling headers and I see that it bolds them already, but getting that added to strings with emphasis would really help, especially when conceal is enabled so I'm not seeing it unless my cursor is on that line.

Example strings

*italics string*
**bold string**
***bolded italics string***

control brightness for the white color in the theme

Question or Suggestion

image
Are there any plans on implementing options for controlling brightness like how tokyonight.nvim does.
Altough it is just my perspective but I feel like #ffffff is way too bright for foreground. Is there any change of adding a setting to control the brightness of the white color in the theme.

Feedback for Improvement

Hello @ianchesal

I came across a recent commit to your dotfiles repo via GitHub search this morning that caught my interest:

ianchesal/dotfiles@329fa78

I was wondering if I could get your thoughts and feedback. Is there anything you feel was missing from the colour scheme? Anything you would change or not quite right?

Appreciate your time!

Cheers,
Scott

Heirline support?

Hello there, your theme works well with most of the heirline components actually but there is one that caught my eye, the mode indicators does not change color with this theme, I tired to implement it myself but I clearly don't know what I'm doing :)

Installation Instructions

I am currently using kickstart.nvim and a beginner to the neovim world and I am fascinated with this config. Can you help me out on how to install this? I have been trying to use the instructions you provided in my init.lua but that doesn't seem to work. It will be really great if you can provide additional directions for installation in the README.md or comment on this issue.

Thank you

Recipes for transparent theme switching ๐Ÿ‘จ๐Ÿปโ€๐Ÿณ

Description

When using :CyberdreamToggleMode or theme.variant = "light" the text color makes it unreadable.

I will propose to use the dark variant of colours for at least the text if transparent is true.

Neovim version?

v0.10.0

What should happen?

I can read the text without problem.

What happened instead?

The text color makes it hard to read

Screenshot 2024-06-16 at 23 40 41 Screenshot 2024-06-16 at 23 45 25

Your configuration

{
    "scottmckendry/cyberdream.nvim",
    lazy = false,
    priority = 1000,
    config = function()
        require("cyberdream").setup({
            transparent = true,
            italic_comments = false,
            hide_fillchars = false,
            borderless_telescope = { border = false, style = "nvchad" },
            terminal_colors = true,
            theme = {
                variant = "light",
            },
        })
        vim.cmd("colorscheme cyberdream")
    end,
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.