Lush is a colorscheme creation aid for Neovim. It gives you real time feedback as you edit, as well as color manipulation tools and some aids building a structured colorscheme.
Lush colorschemes can easily be exported for use without Lush, either as a lua table, vimscript commands or any other format. They can also be imported into other Lua systems to access your color data.
See some colorschemes Made with Lush.
Lush was originally written for Neovim 0.4 (!!!). I had just swapped from Vim to Neovim, wanted to learn Lua as well as make my own colorscheme. I read an article by Leaf about creating DSLs in lua and rolled all that into Lush.
At the time, there was no native support for writing colorschemes in Lua and being able to export my Neovim colorscheme to use with AwesomeWM was a neat trick. Neovim's APIs have matured and writing colorschemes in Lua is now quite simple. You can approximate a custom implementation of Lush with some metatables and glue.
Lush will still be maintained but the value proposition of Lush is different to what it was at the time of release and creators may want to take that under consideration.
See issue for new syntax. Syntax is subject to change.
exclude_keys
option has been
deprecated in favour of the build system,termguicolors
enabled for true color supportInstall via any package management system, for example, paq:
require paq { 'rktjmp/lush.nvim' }
Via Lazy:
return {
"rktjmp/lush.nvim",
-- if you wish to use your own colorscheme:
-- { dir = '/absolute/path/to/colorscheme', lazy = true },
}
Run :LushRunTutorial
for an Interactive guided tour of using Lush.