Skip to content

EskelinenAntti/omarchy-theme-loader.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Omarchy Theme Loader 🎨

A drop-in plugin for changing Neovim theme automatically when Omarchy theme changes.

Installation

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

  1. Install the Neovim plugins for Omarchy themes (you can find the list of default theme plugins from above examples).
  2. Install the `EskelinenAntti/omarchy-theme-loader.nvim` plugin.

Advanced configuration

Custom Omarchy themes

If you use a custom Omarchy theme

  1. Install the Neovim plugin for that theme.
  2. 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.

Overriding Omarchy's default themes

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

Other OSs

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 Omarchy

This setting will apply in non-Omarchy environments. When in Omarchy, the omarchy-theme-loader will overwrite it with the current Omarchy theme.

About

🎨 A drop-in plugin for changing Neovim theme automatically when Omarchy theme changes.

Resources

License

Stars

Watchers

Forks

Contributors

Languages