Skip to content

A lightweight colorscheme manager and switcher.

License

Notifications You must be signed in to change notification settings

LmanTW/themify.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Themify

A screenshot of Themify

A lightweight colorscheme manager and switcher inspired by Themery.nvim and Lazy.nvim.

  • 🎨 Easily install and manage your colorschemes!
  • 🔍 Switch between colorschemes with a live preview!
  • ⚡️ Optimized startup time with lazy-loaded colorschemes!

📦 Installation

Warning

Requirements: Neovim >= 0.10, Git

Use the package manager of your choice to install Theminify:

{
  'lmantw/themify.nvim',
    
  lazy = false,
  priority = 999,

  config = {}
}
use {
  'lmantw/themify.nvim',

  config = {}
}
Manual Installation
local themify_path = vim.fs.joinpath(vim.fn.stdpath('data'), 'themify')

if not vim.loop.fs_stat(themify_path) then
  vim.fn.system({
    'git', 'clone',
    'https://github.com/LmanTW/themify.nvim.git',
    themify_path,
  })
end

vim.opt.rtp:prepend(themify_path)

require('themify').setup()

🛠 Configuration

To configure Themify, call the setup function (or use the config option in your package manager) and add the colorschemes you want to install / manage:

require('themify').setup({
  -- Your list of colorschemes.

  'folke/tokyonight.nvim',
  'sho-87/kanagawa-paper.nvim',
  {
    'comfysage/evergarden',

    branch = 'mega'
  },

  -- Built-in colorschemes are also supported.
  -- (Also works with any colorschemes that are installed via other plugin manager, just make sure the colorscheme is loaded before Themify is loaded.)
  'default'
})

Important

The colorschemes will not be installed automatically, please use the :Themify command to open the menu then press I to install all the colorschemes.

Advance Configuration
require('themify').setup({
  async = false,
  -- Enabling this would load the colorscheme asynchronously, which might improve your startup time.

  activity = false,
  -- Enabling this would track your colorscheme usage activity.

  {
    'folke/tokyonight.nvim',

    branch = 'main',

    before = function(theme)
      -- The function run before the colorscheme is loaded.
    end,
    after = function(theme)
      -- The function run after the colorscheme is loaded.
    end,

    -- A colorscheme can have multiple themes, you can use the options below to only show the themes you want.
    whitelist = {'tokyonight-night', 'tokyonight-day'},
    blacklist = {}
  },

  -- The loader loads the colorscheme on startup, you can use the option below to replace it with a custom one.
  loader = function()
    -- Custom loader logic...
  end
})

📚 Snippets

You can add extra functionality to Themify by using short snippets of code. You can find snippets in the Snippet Library or write your own using the Publci API Themify provides.

Tip

You can also request or add snippets to the Snippet Library by opening an issue!

📎 Other

Star History Chart

Releases

No releases published

Languages