Home

Awesome

<div align="center"> <div class="b-header"> <a class="active" href="https://github.com/loctvl842/monokai-pro.nvim"> <img width="484" alt="img_v3_0274_94b96554-6c31-431b-a95e-2de719b493hu" src="https://github.com/loctvl842/monokai-pro.nvim/assets/80513079/24a697cf-0bae-4bde-a059-909ca665c333"> <h1>Monokai Pro</h1> <h2>Beautiful functionality for professional developers</h2> </a> </div> </div>

Find out more here monokai.pro

monokai-pro-macbook

⭐ Pro

pro

🛑 Octagon

octagon

🤖 Machine

machine

☕ Ristretto

ristretto

🌈 Spectrum

spectrum

👴 Classic

classic

🔌 Plugin support

📦 Installation

vim-plug

Plug 'loctvl842/monokai-pro.nvim'

packer

use {
  "loctvl842/monokai-pro.nvim",
  config = function()
    require("monokai-pro").setup()
  end
}

🔨 Configuration

There are several themes included in this plugin.

Example configuration:

require("monokai-pro").setup({
  transparent_background = false,
  terminal_colors = true,
  devicons = true, -- highlight the icons of `nvim-web-devicons`
  styles = {
    comment = { italic = true },
    keyword = { italic = true }, -- any other keyword
    type = { italic = true }, -- (preferred) int, long, char, etc
    storageclass = { italic = true }, -- static, register, volatile, etc
    structure = { italic = true }, -- struct, union, enum, etc
    parameter = { italic = true }, -- parameter pass in function
    annotation = { italic = true },
    tag_attribute = { italic = true }, -- attribute of tag in reactjs
  },
  filter = "pro", -- classic | octagon | pro | machine | ristretto | spectrum
  -- Enable this will disable filter option
  day_night = {
    enable = false, -- turn off by default
    day_filter = "pro", -- classic | octagon | pro | machine | ristretto | spectrum
    night_filter = "spectrum", -- classic | octagon | pro | machine | ristretto | spectrum
  },
  inc_search = "background", -- underline | background
  background_clear = {
    -- "float_win",
    "toggleterm",
    "telescope",
    -- "which-key",
    "renamer",
    "notify",
    -- "nvim-tree",
    -- "neo-tree",
    -- "bufferline", -- better used if background of `neo-tree` or `nvim-tree` is cleared
  },-- "float_win", "toggleterm", "telescope", "which-key", "renamer", "neo-tree", "nvim-tree", "bufferline"
  plugins = {
    bufferline = {
      underline_selected = false,
      underline_visible = false,
    },
    indent_blankline = {
      context_highlight = "default", -- default | pro
      context_start_underline = false,
    },
  },
  ---@param c Colorscheme
  override = function(c) end,
  ---@param cs Colorscheme
  ---@param p ColorschemeOptions
  ---@param Config MonokaiProOptions
  ---@param hp Helper
  override = function(cs: Colorscheme, p: ColorschemeOptions, Config: MonokaiProOptions, hp: Helper) end,
})

For example:

<details> <summary>float_win</summary>
require("monokai-pro").setup({
    -- ... your config
    background_clear = { "float_win" }
    -- ... your config
})

require("cmp").setup({
    -- ... your config
    window = {
      border = "rounded",
    }
    completion = {
        border = "rounded",
    }
    -- ... your config
})
</details> <details> <summary>Telescope</summary>
require("monokai-pro").setup({
    -- ... your config
    background_clear = {}
    -- ... your config
})

require("telescope").setup({
    -- ... your config
    defaults = {
      borderchars = { "█", " ", "▀", "█", "█", " ", " ", "▀" },
    }
    -- ... your config
})

removed_border_telescope

</details>

📚 Usage

" Vim Script
colorscheme monokai-pro
require("monokai-pro").setup({
  -- ... your config
})
-- lua
vim.cmd([[colorscheme monokai-pro]])
require('lualine').setup {
  options = {
    -- ...
    theme = 'monokai-pro'
    -- ...
  }
}
require('barbecue').setup {
  -- ...
  theme = 'monokai-pro'
  -- ...
}

" Vim Script
let g:lightline = {'colorscheme': 'monokaipro'}
require("monokai-pro").setup({
    -- ...
    override = function()
      return {
          Normal = { bg = "#000000" }
        }
    end
    -- ...
  })

This is a sample config to use Tokyonight as the palette:

require("monokai-pro").setup({
    -- ...
    --- @param filter "classic" | "machine" | "octagon" | "pro" | "ristretto" | "spectrum"
    override = function(c)
      return {
        IndentBlanklineChar = { fg = c.base.dimmed4 },
      }
    end,
    overridePalette = function(filter)
      return {
        dark2 = "#101014",
        dark1 = "#16161E",
        background = "#1A1B26",
        text = "#C0CAF5",
        accent1 = "#f7768e",
        accent2 = "#7aa2f7",
        accent3 = "#e0af68",
        accent4 = "#9ece6a",
        accent5 = "#0DB9D7",
        accent6 = "#9d7cd8",
        dimmed1 = "#737aa2",
        dimmed2 = "#787c99",
        dimmed3 = "#363b54",
        dimmed4 = "#363b54",
        dimmed5 = "#16161e",
      }
    end
    -- ...
  })

This is a sample config to use a darker background for almost all supported plugins:

require("monokai-pro").setup({
    -- ...
    overrideScheme = function(cs, p, config, hp)
      local cs_override = {}
      local calc_bg = hp.blend(p.background, 0.75, '#000000')

      cs_override.editor = {
        background = calc_bg,
      }
      return cs_override
    end
    -- ...
  })

🔧 Command