flashcodes-themayankjha/fkthemes.nvim

github github
colorschemecolorscheme-switchers
stars 7
issues 1
subscribers 0
forks 0
CREATED

UPDATED


🎨 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


📦 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.

{
  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",
}

Transparency option only works properly if your chosen theme supports transparency


🚀 Usage

  • Open Theme Picker:FkThemePicker or <leader>tp
  • Next Theme:FkThemeNext or <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


🛠️ 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.