A drop-in plugin for changing Neovim theme automatically when Omarchy theme changes.
lazy.nvim setup
Add this to your plugins folder and you are good to go.
return {
-- 1. Install the Neovim plugins for Omarchy themes.
{
"ribru17/bamboo.nvim",
priority = 1000,
lazy = true,
},
{
"catppuccin/nvim",
name = "catppuccin",
priority = 1000,
lazy = true,
},
{
"neanias/everforest-nvim",
priority = 1000,
lazy = true,
},
{
"kepano/flexoki-neovim",
priority = 1000,
lazy = true,
},
{
"ellisonleao/gruvbox.nvim",
priority = 1000,
lazy = true,
},
{
"rebelot/kanagawa.nvim",
priority = 1000,
lazy = true,
},
{
"tahayvr/matteblack.nvim",
priority = 1000,
lazy = true,
},
{
"gthelding/monokai-pro.nvim",
priority = 1000,
lazy = true,
config = function()
require("monokai-pro").setup({
filter = "ristretto",
override = function()
return {
NonText = { fg = "#948a8b" },
MiniIconsGrey = { fg = "#948a8b" },
MiniIconsRed = { fg = "#fd6883" },
MiniIconsBlue = { fg = "#85dacc" },
MiniIconsGreen = { fg = "#adda78" },
MiniIconsYellow = { fg = "#f9cc6c" },
MiniIconsOrange = { fg = "#f38d70" },
MiniIconsPurple = { fg = "#a8a9eb" },
MiniIconsAzure = { fg = "#a8a9eb" },
MiniIconsCyan = { fg = "#85dacc" },
}
end,
})
end,
},
{
"shaunsingh/nord.nvim",
priority = 1000,
lazy = true,
},
{
"rose-pine/neovim",
name = "rose-pine",
priority = 1000,
lazy = true,
},
{
"folke/tokyonight.nvim",
priority = 1000,
lazy = true,
},
{
"EdenEast/nightfox.nvim",
priority = 1000,
lazy = true,
},
{
"bjarneo/hackerman.nvim",
dependencies = { "bjarneo/aether.nvim" },
priority = 1000,
lazy = true,
},
{
"bjarneo/ethereal.nvim",
priority = 1000,
lazy = true,
},
{
"xero/miasma.nvim",
priority = 1000,
lazy = true,
},
{
"bjarneo/vantablack.nvim",
priority = 1000,
lazy = true,
},
{
"bjarneo/white.nvim",
priority = 1000,
lazy = true,
},
-- 2. Install the omarchy-theme-loader plugin.
{
"EskelinenAntti/omarchy-theme-loader.nvim"
},
}mini.deps setup
Add this to your init.lua file and you are good to go.
local add = MiniDeps.add
add({
-- 1. Install the Neovim plugins for Omarchy themes.
depends = {
"ribru17/bamboo.nvim",
{ source = "catppuccin/nvim", name = "catppuccin" },
"neanias/everforest-nvim",
"kepano/flexoki-neovim",
"ellisonleao/gruvbox.nvim",
"rebelot/kanagawa.nvim",
"tahayvr/matteblack.nvim",
"shaunsingh/nord.nvim",
{ source = "rose-pine/neovim", name = "rose-pine" },
"folke/tokyonight.nvim",
"EdenEast/nightfox.nvim",
"gthelding/monokai-pro.nvim",
"bjarneo/aether.nvim",
"bjarneo/hackerman.nvim",
"bjarneo/ethereal.nvim",
"xero/miasma.nvim",
"bjarneo/vantablack.nvim",
"bjarneo/white.nvim",
},
-- 2. Install omarchy-theme-loader plugin
source = "EskelinenAntti/omarchy-theme-loader.nvim",
})
require("monokai-pro").setup({
filter = "ristretto",
override = function()
return {
NonText = { fg = "#948a8b" },
MiniIconsGrey = { fg = "#948a8b" },
MiniIconsRed = { fg = "#fd6883" },
MiniIconsBlue = { fg = "#85dacc" },
MiniIconsGreen = { fg = "#adda78" },
MiniIconsYellow = { fg = "#f9cc6c" },
MiniIconsOrange = { fg = "#f38d70" },
MiniIconsPurple = { fg = "#a8a9eb" },
MiniIconsAzure = { fg = "#a8a9eb" },
MiniIconsCyan = { fg = "#85dacc" },
}
end,
})Other plugin managers and manual installation
To use
- Install the Neovim plugins for Omarchy themes (you can find the list of default theme plugins from above examples).
- Install the `EskelinenAntti/omarchy-theme-loader.nvim` plugin.
If you use a custom Omarchy theme
- Install the Neovim plugin for that theme.
- Configure the mapping between Omarchy theme name and Neovim colorscheme.
The examples below shows how to configure omarchy-theme-loader to work with the Omarchy Ash Theme.
lazy.nvim example
return {
-- ... other themes
-- 1. Install the theme plugin.
{
"bjarneo/ash.nvim"
priority=1000,
lazy=true,
},
-- 2. Configure required mapping between Omarchy theme name and Neovim colorscheme.
{
"EskelinenAntti/omarchy-theme-loader.nvim",
opts = {
themes = {
-- Name of the Omarchy theme.
["ash"] = {
-- Name of the corresponding Neovim colorscheme.
colorscheme = "ash"
}
}
}
},mini.deps example
local add = MiniDeps.add
add({
source = "EskelinenAntti/omarchy-theme-loader.nvim",
depends = {
-- ... other themes
-- 1. Install the theme plugin
"bjarneo/ash.nvim",
},
})
-- 2. Configure required mapping between Omarchy theme name and Neovim colorscheme.
require("omarchy-theme-loader").setup({
themes = {
-- Name of the Omarchy theme.
["ash"] = {
-- Name of the corresponding Neovim colorscheme.
colorscheme = "ash"
}
}
})Don't know where to look for the plugin or the colorscheme? You can find those from the custom Omarchy theme's repository, from neovim.lua file.
For example, see the neovim.lua file for the Omarchy Ash Theme: the Neovim plugin is bjarneo/ash.nvim and the colorscheme is ash.
Your are not forced to use the same Neovim themes as Omarchy uses by default.
For example, if you want to keep your Neovim setup minimal and don't want to install lot's of theme plugins, you can override omarchy-theme-loader's configuration to use Neovim's builtin themes.
lazy.nvim example
return {
{
"EskelinenAntti/omarchy-theme-loader.nvim",
opts = {
themes = {
["tokyo-night"] = { colorscheme = "slate" },
["catppuccin"] = { colorscheme = "blue" },
["everforest"] = { colorscheme = "desert" },
["gruvbox"] = { colorscheme = "retrobox" },
["osaka-jade"] = { colorscheme = "slate" },
["kanagawa"] = { colorscheme = "slate" },
["nord"] = { colorscheme = "blue" },
["matte-black"] = { colorscheme = "koehler" },
["ristretto"] = { colorscheme = "koehler" },
["flexoki-light"] = { colorscheme = "morning" },
["rose-pine"] = { colorscheme = "morning" },
["catppuccin-latte"] = { colorscheme = "delek" },
}
}
},mini.deps example
local add = MiniDeps.add
add("EskelinenAntti/omarchy-theme-loader.nvim")
require("omarchy-theme-loader").setup({
themes = {
["tokyo-night"] = { colorscheme = "slate" },
["catppuccin"] = { colorscheme = "blue" },
["everforest"] = { colorscheme = "desert" },
["gruvbox"] = { colorscheme = "retrobox" },
["osaka-jade"] = { colorscheme = "slate" },
["kanagawa"] = { colorscheme = "slate" },
["nord"] = { colorscheme = "blue" },
["matte-black"] = { colorscheme = "koehler" },
["ristretto"] = { colorscheme = "koehler" },
["flexoki-light"] = { colorscheme = "morning" },
["rose-pine"] = { colorscheme = "morning" },
["catppuccin-latte"] = { colorscheme = "delek" },
}
})The plugin only activates when it detects the Omarchy theme folder at ~/.config/omarchy/current/theme. You can safely include it in your Neovim configuration, even if you shared it between multiple devices.
To specify a theme to be used in non-Omarchy environments, you can simply do
vim.cmd.colorscheme("retrobox") -- or whatever theme or colorscheme you prefer to use outside of OmarchyThis setting will apply in non-Omarchy environments. When in Omarchy, the omarchy-theme-loader will overwrite it with the current Omarchy theme.