A Neovim plugin to quickly try out different themes. Browse, install, and apply colorschemes from a curated list.
{
"erl-koenig/theme-hub.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
-- Optional: for themes that use lush (will be notified if a theme requires it)
-- "rktjmp/lush.nvim"
},
config = function()
require("theme-hub").setup({
-- Configuration options (see below)
})
end,
}
:ThemeHub
- Open the theme selector to browse and install all available themes:ThemeHub install <name>
- Install a specific theme:ThemeHub uninstall <name>
- Uninstall a specific theme:ThemeHub uninstall-all
- Uninstall all themes:ThemeHub clear-persistent
- Clear the saved persistent theme (auto-clears after uninstalling)After installation it will apply the theme automatically. It will use the first variant of the theme.
Important: You must call setup()
to initialize the plugin.
require("theme-hub").setup({
install_dir = vim.fn.stdpath("data") .. "/theme-hub",
auto_install_on_select = true,
apply_after_install = true,
persistent = false,
})
Option | Type | Default | Description |
---|---|---|---|
install_dir |
string | stdpath("data")/theme-hub |
Directory where themes are installed |
auto_install_on_select |
boolean | true |
Auto-install themes when selected in browser |
apply_after_install |
boolean | true |
Auto-apply theme after installation |
persistent |
boolean | false |
Remember last applied theme across restarts |
This plugin uses vim.ui.select
to display themes. For the best experience, use it with a telescope-like plugin: telescope.nvim, fzf-lua, snacks.picker, mini.pick, etc. Below is how to set it up with each one:
-- Add to your telescope dependencies
dependencies = {
"nvim-telescope/telescope-ui-select.nvim",
}
-- In your config call
require("telescope").load_extension("ui-select")
Add this to your fzf-lua config:
require("fzf-lua").register_ui_select({})
Works out of the box. No config needed.
In your mini config overwrite the default vim.ui.select
with:
vim.ui.select = MiniPick.ui_select
See lua/theme-hub/registry.lua
for the list of curated themes.
:checkhealth theme-hub
to ensure everything works correctly.:h theme-hub
to see the help documentation.Feel free to add new themes to the registry, or open issues for feature requests.