slugbyte / lackluster.nvim

a delightful and customizable mostly monochrome colorscheme thats soft on the eyes and supports treesitter, lsp, and heaps of neovim plugins.
MIT License
96 stars 6 forks source link
alacritty-theme colorscheme customizable customizeable eza fish-theme grayscale lua minimal minimalist monochrome neovim neovim-colorscheme neovim-plugin nvim nvim-colorscheme tmux-conf tmux-config

lackluster

a delightful and customizable mostly monochrome colorscheme thats soft on the eyes and supports treesitter, lsp, and heaps of neovim plugins.

a screenshot of neovim with the lackluster colorscheme

a minimal but flexible and good looking pallet made from beautiful hexcodes

a bunch more screenshots...

ABOUT

SETUP

  1. Install slugbyte/lackluster.nvim with your favorite package manager
  2. Set your colorscheme to lackluster, lackluster-hack, or lackluster-mint
  3. (optional) Setup Lualine
  4. (optional) Tweak Syntax, Color, and Transparency
  5. (optional) Tweak UI
  6. (optional) Disable Plugin Highlights
  7. (optional) Setup nvim-web-devicons
-- example lazy.nvim install setup
return {
    "slugbyte/lackluster.nvim",
    lazy = false,
    priority = 1000,
    init = function()
        vim.cmd.colorscheme("lackluster")
        -- vim.cmd.colorscheme("lackluster-hack") -- my favorite
        -- vim.cmd.colorscheme("lackluster-mint")
    end,
}

LUALINE SETUP

require('lualine').setup({
  options = {
    theme = "lackluster",
  },
})
(OPTIONAL) Tweak Syntax, Color, and Transparency > !! `setup()` **MUST** be called before setting your colorscheme !! ```lua local lackluster = require("lackluster") local color = lackluster.color -- blue, green, red, orange, black, lack, luster, gray1-9 -- !must called setup() before setting the colorscheme! lackluster.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 lackluster's default is. tweak_syntax = { string = "default", -- string = "#a1b2c3", -- custom hexcode -- string = color.green, -- lackluster 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 lackluster's default is. tweak_background = { normal = 'default', -- main background -- normal = 'none', -- transparent -- normal = '#a1b2c3', -- hexcode -- normal = color.green, -- lackluster 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("lackluster") ``` > Example transparent background `setup()` ```lua -- 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 lackluster = require("lackluster") -- !must called setup() before setting the colorscheme! lackluster.setup({ tweak_syntax = { comment = lackluster.color.gray4, -- or gray5 }, tweak_background = { normal = 'none', telescope = 'none', menu = lackluster.color.gray3, popup = 'default', }, }) -- !must set colorscheme after calling setup()! vim.cmd.colorscheme("lackluster") ```
(OPTIONAL) Tweak UI > !! `setup()` **MUST** be called before setting your colorscheme !! ```lua local lackluster = require("lackluster") -- !must called setup() before setting the colorscheme! lackluster.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("lackluster") ```
(OPTIONAL) Disable Plugin Highlights > !! `setup()` **MUST** be called before setting your colorscheme !! ```lua local lackluster = require("lackluster") -- 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! lackluster.setup({ disable_plugin = { bufferline = false, cmp = false, dashboard = false, flash = false, git_gutter = false, git_signs = false, headline = 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("lackluster") ```
(OPTIONAL) Setup nvim-web-devicons ```lua -- nvim-web-devicons does not play well with colorschemes so if lackluster style icons -- run the following setup before you load lackluster. local lackluster = require("lackluster") -- !must called setup() before setting the colorscheme! require('nvim-web-devicons').setup({ color_icons = false, override = { ["default_icon"] = { color = lackluster.color.gray4, name = "Default", } } }) vim.cmd.colorscheme("lackluster") ```

VARIATIONS

lackluster-hack (return is green, exception is blue)

a screenshot of neovim with the lackluster-hack colorscheme

lackluster-mint (types are green)

a screenshot of neovim with the lackluster-mint colorscheme

more variations..

EXPLICITLY SUPPORTED PLUGINS

lots of other plugins should work right out of the box too!

Screenshots of many of the plugins can be found here

SELF-PROMO

If you like this project star the GitHub repository :)

HELP WANTED

If you find a bug please open a issue :) and please include screenshots if relevant :)

Is lackluster missing support for a plugin/extra you love? Open a suggestion issue, or better yet Read the CONTRIBUTING and DEVELOPMENT Guides, and make a contribution!

Your feedback and contributions are mega appreciated!

ACKNOWLEDGEMENT

I referenced the following colorscheme's source code when creating lackluster :)