A simple yet powerful theme previewer and Selector plugin for Neovim, inspired by the FkVim ecosystem.
FkThemes.nvim is a modern Neovim plugin for theme management.
Easily switch, preview, and configure multiple colorschemes with a sleek UI powered by nui.nvim and telescope.nvim.
nui.nvim
. Using lazy.nvim:
{
"flashcodes-themayankjha/Fkthemes.nvim",
event = "VeryLazy",
dependencies = {
"MunifTanjim/nui.nvim",
"nvim-telescope/telescope.nvim",
-- Add your themes here
},
config = function()
require("fkthemes").setup({
themes = { "tokyonight", "catppuccin", "gruvbox" },
default_theme = "tokyonight",
transparent_background = true,
})
end,
}
Customize setup()
with your options.
{
transparent_background = false, -- Transparent UI
themes = {
"tokyonight",
"catppuccin",
"gruvbox",
"rose-pine",
"material",
"moonlight",
},
default_theme = "tokyonight",
keymaps = {
enable = true, -- Disable to remove default keymaps
open_picker = {
lhs = "<leader>tp",
rhs = "<cmd>FkThemePicker<cr>",
mode = "n",
desc = "Open Theme Picker",
},
next_theme = {
lhs = "<leader>tn",
rhs = "<cmd>FkThemeNext<cr>",
mode = "n",
desc = "Next Theme",
},
},
}
Some themes allow native transparency. Configure them as dependencies:
dependencies = {
"nvim-telescope/telescope.nvim",
-- Material
"marko-cerovac/material.nvim",
-- Tokyonight
{
"folke/tokyonight.nvim",
config = function()
require("tokyonight").setup({
transparent = true,
styles = {
sidebars = "transparent",
floats = "transparent",
},
})
end,
},
-- Rose Pine
{ "rose-pine/neovim", name = "rose-pine" },
-- Catppuccin
{
"catppuccin/nvim",
name = "catppuccin",
priority = 1000,
config = function()
require("catppuccin").setup({
flavour = "mocha",
transparent_background = true,
})
end,
},
-- Others
"shaunsingh/moonlight.nvim",
"morhetz/gruvbox",
}
Transparency option only works properly if your chosen theme supports transparency
:FkThemePicker
or <leader>tp
:FkThemeNext
or <leader>tn
require("fkthemes").setup({
themes = { "catppuccin", "tokyonight", "dracula" },
})
require("fkthemes").setup({
themes = {
light = { "github_light", "solarized_light" },
dark = { "catppuccin", "tokyonight", "dracula" },
},
})
-- Optional command
vim.api.nvim_create_user_command("FkThemesLight", function()
require("fkthemes").load_theme_set("light")
end, { desc = "Load Light Themes" })
Contributions are welcome! Feel free to open issues or submit PRs for new features, theme presets, or improvements.
This project is licensed under the MIT License.