๐จ fkthemes.nvim
October 6, 2025 ยท View on GitHub
๐จ fkthemes.nvim
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.
โจ Features
- ๐ Quick Theme Switching โ Move between themes effortlessly.
- ๐๏ธ Live Preview โ Preview themes instantly as you navigate.
- โ๏ธ Highly Configurable โ Customize transparency, themes, and keymaps.
- ๐ Modern UI โ Built with
nui.nvim. - ๐ญ Telescope Integration โ Theme selection inside Telescope.
๐ Requirements
- Neovim >= 0.8.0
- nui.nvim
- telescope.nvim
๐ฆ Installation
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,
}
โ๏ธ Configuration
Customize setup() with your options.
Default Settings
{
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",
},
},
}
๐จ Example with Transparency Support
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",
}
Note Transparency only works properly if your chosen theme supports it.
For the best transparency experience, use fkthemes.nvim with Fkvim.
๐ Usage
- Open Theme Picker โ
:FkThemePickeror<leader>tp - Next Theme โ
:FkThemeNextor<leader>tn - Preview Live โ Navigate themes inside the picker
๐ก Examples
Basic
require("fkthemes").setup({
themes = { "catppuccin", "tokyonight", "dracula" },
})
Light/Dark Sets
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" })
๐ฆ Alternatives
- folke/tokyonight.nvim โ Single theme
- lunarvim/lunar.nvim โ Distribution with theme switching
- NvChad/nvim-colorizer.lua โ Highlighting, not theme management
๐ ๏ธ Contributing
Contributions are welcome! Feel free to open issues or submit PRs for new features, theme presets, or improvements.
๐ License
This project is licensed under the MIT License.