A low-contrast, eye-friendly dark colorscheme for Neovim.
Find a file
2026-09-08 07:17:38 +03:00
colors initial commit 2026-09-08 07:14:40 +03:00
lua initial commit 2026-09-08 07:14:40 +03:00
res initial commit 2026-09-08 07:14:40 +03:00
README.md README.md smol fix v2 2026-09-08 07:17:38 +03:00

cyberslums-nvim

A low-contrast, eye-friendly dark colorscheme for Neovim.

Install (pack)

vim.pack.add({
  { src = "https://vcs.cyberslums.tech/clincy/cyberslums-nvim"},
})

vim.cmd.colorscheme("cyberslums")

Lualine

require("lualine").setup({ options = { theme = "cyberslums" } })

Tweaking

(OPTIONAL) Tweak Color Pallet

!! setup() MUST be called before setting your colorscheme !!

local cyberslums = require("cyberslums")

-- !must called setup() before setting the colorscheme!
cyberslums.setup({
    -- tweak_color allows you to overwrite the default colors in the cyberslums theme
    tweak_color = {
        -- you can set a value to a custom hexcode like' #aaaa77' (hashtag required)
        -- or if the value is 'default' or nil it will use cyberslums default color
        orange = "default",
        yellow = "default",
        green = "default",
        blue = "default",
        red = "default",
        -- WARN: Watchout! messing with grays is probs a bad idea, its very easy to shoot yourself in the foot!
        -- black = "default",
        -- gray1 = "default",
        -- gray2 = "default",
        -- gray3 = "default",
        -- gray4 = "default",
        -- gray5 = "default",
        -- gray6 = "default",
        -- gray7 = "default",
        -- gray8 = "default",
        -- gray9 = "default",

    },
})

-- !must set colorscheme after calling setup()!
vim.cmd.colorscheme("cyberslums")
(OPTIONAL) Tweak Syntax Colors and Background Transparency

!! setup() MUST be called before setting your colorscheme !!

local cyberslums = require("cyberslums")

local color = cyberslums.color -- blue, green, red, orange, black, gray1-9

-- !must called setup() before setting the colorscheme!
cyberslums.setup({
    -- You can overwrite the following syntax colors by setting them to one of...
    --   1) a hexcode like "#a1b2c3" for a custom color.
    --   2) "default" or nil will just use whatever cyberslums default is.
    tweak_syntax = {
        string = "default",
        -- string = "#a1b2c3", -- custom hexcode
        -- string = color.green, -- cyberslums color
        string_escape = "default",
        comment = "default",
        builtin = "default", -- builtin modules and functions
        type = "default",
        keyword = "default",
        keyword_return = "default",
        keyword_exception = "default",
    },
    -- You can overwrite the following background colors by setting them to one of...
    --   1) a hexcode like "#a1b2c3" for a custom color
    --   2) "none" for transparency
    --   3) "default" or nil will just use whatever cyberslums default is.
    tweak_background = {
        normal = 'default',    -- main background
        -- normal = 'none',    -- transparent
        -- normal = '#a1b2c3',    -- hexcode 
        -- normal = color.green,    -- cyberslums color
        telescope = 'default', -- telescope
        menu = 'default',      -- nvim_cmp, wildmenu ... (bad idea to transparent)
        popup = 'default',     -- lazy, mason, whichkey ... (bad idea to transparent)
    },
})

-- !must set colorscheme after calling setup()!
vim.cmd.colorscheme("cyberslums")

Example transparent background setup()

--  When testing transparent backgrounds I found that comments where often hard to read, 
--  and menus didn't look good but using setup() tweaks you can easily address that!
local cyberslums = require("cyberslums")

-- !must called setup() before setting the colorscheme!
cyberslums.setup({
    tweak_syntax = {
        comment = cyberslums.color.gray4, -- or gray5
    },
    tweak_background = {
        normal = 'none',
        telescope = 'none',
        menu = cyberslums.color.gray3,
        popup = 'default',
    },
})

-- !must set colorscheme after calling setup()!
vim.cmd.colorscheme("cyberslums")
(OPTIONAL) Tweak UI

!! setup() MUST be called before setting your colorscheme !!

local cyberslums = require("cyberslums")

-- !must called setup() before setting the colorscheme!
cyberslums.setup({
    tweak_ui = {
        disable_undercurl = false, -- set to true if you want underline instead of undercurl
        enable_end_of_buffer = false, -- set to true to show the end_of_buffer ~ symbols in the gutter
    },
})

-- !must set colorscheme after calling setup()!
vim.cmd.colorscheme("cyberslums")
(OPTIONAL) Tweak Highlights Manually (bold, italic, etc...)
local cyberslums = require("cyberslums")

-- !must called setup() before setting the colorscheme!
cyberslums.setup({
    -- tweak_highlight allows you to update or overwrite the value passed into
    -- vim.api.nvim_set_hl which allows you to have complete control over modifying all
    -- highlights on a granular level.
    tweak_highlight = {
      -- modify @keyword's highlights to be bold and italic
      ["@keyword"] = {
        overwrite = false, -- overwrite falsey will extend/update cyberslums defaults (nil also does this)
        bold = true,
        italic = true,
        -- see `:help nvim_set_hl` for all possible keys
      },
      -- overwrite @function to link to @keyword
      ["@function"] = {
        overwrite = true, -- overwrite == true will force overwrite cyberslums's default highlights
        link = "@keyword",
      },
    },
})

-- !must set colorscheme after calling setup()!
vim.cmd.colorscheme("cyberslums")
(OPTIONAL) Tweak Disable Plugin Highlights

!! setup() MUST be called before setting your colorscheme !!

local cyberslums = require("cyberslums")

-- if for some reason you want to disable the highlights related to a specific plugin you 
-- can set any of these to true and the highlights will not be set

-- !must called setup() before setting the colorscheme!
cyberslums.setup({
    disable_plugin = {
        bufferline = false,
        cmp = false,
        dashboard = false,
        flash = false,
        git_gutter = false,
        git_signs = false,
        headline = false,
        indentmini = false,
        lazy = false,
        lightbulb = false,
        lsp_config = false,
        mason = false,
        mini_diff = false,
        navic = false,
        noice = false,
        notify = false,
        oil = false,
        rainbow_delimiter = false, -- if you want color-rainbows you should disable this
        scollbar = false,
        telescope = false,
        todo_comments = false,
        tree = false,
        trouble = false,
        which_key = false,
        yanky = false,
    },
})

-- !must set colorscheme after calling setup()!
vim.cmd.colorscheme("cyberslums")
(OPTIONAL) Setup nvim-web-devicons

-- nvim-web-devicons does not play well with colorschemes so if cyberslums style icons
-- run the following setup before you load cyberslums.
local cyberslums = require("cyberslums")
-- !must called setup() before setting the colorscheme!
require('nvim-web-devicons').setup({
    color_icons = false,
    override = {
        ["default_icon"] = {
            color = cyberslums.color.gray4,
            name = "Default",
        }
    }
})
vim.cmd.colorscheme("cyberslums")

Supported plugins

Example

Acknowledgement

This is fork of https://github.com/slugbyte/lackluster.nvim. Thank you very much slugbyte