https://github.com/LmanTW/themify.nvim
A lightweight colorscheme manager and switcher.
https://github.com/LmanTW/themify.nvim
lua neovim neovim-colorscheme neovim-manager neovim-plugin
Last synced: 8 days ago
JSON representation
A lightweight colorscheme manager and switcher.
- Host: GitHub
- URL: https://github.com/LmanTW/themify.nvim
- Owner: LmanTW
- License: gpl-3.0
- Created: 2024-08-24T13:55:35.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-02-15T10:17:29.000Z (2 months ago)
- Last Synced: 2025-04-07T00:01:37.379Z (13 days ago)
- Topics: lua, neovim, neovim-colorscheme, neovim-manager, neovim-plugin
- Language: Lua
- Homepage:
- Size: 2.12 MB
- Stars: 43
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-neovim-sorted - LmanTW/themify.nvim
README
# Themify

A lightweight colorscheme manager and switcher inspired by [Themery.nvim](https://github.com/zaldih/themery.nvim) and [Lazy.nvim](https://github.com/folke/lazy.nvim).
- 🎨 Easily install and manage your colorschemes!
- 🔍 Switch between colorschemes with a live preview!
- ⚡️ Optimized startup time with lazy-loaded colorschemes!> [!NOTE]
> Planning on a rewrite to introduce a job-based system and a more flexible UI system.## 📦 Installation
> [!WARNING]
> Requirements: `Neovim >= 0.10`, `Git`Use the package manager of your choice to install Theminify:
- [Lazy.nvim](https://github.com/folke/lazy.nvim)
```lua
{
'lmantw/themify.nvim',
lazy = false,
priority = 999,config = {}
}
```- [Packer.nvim](https://github.com/wbthomason/packer.nvim)
```lua
use {
'lmantw/themify.nvim',config = {}
}
```Manual Installation
```lua
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:
```lua
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
```lua
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](./documents/snippet.md) or write your own using the [Publci API](./documents/api.md) Themify provides.
> [!TIP]
> You can also request or add snippets to the [Snippet Library](./documents/snippet.md) by opening an issue!## 📎 Other
- [API Reference](./documents/api.md)
- [Highlight Groups](./documents/highlight.md)