/monokai-pro.nvim

Monokai Pro theme for Neovim written in Lua, with multiple filters: Pro, Classic, Machine, Octagon, Ristretto, Spectrum

Primary LanguageLuaMIT LicenseMIT

Beautiful functionality for professional developers

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.

  • Pro – Monokai Pro (default)
  • Octagon – Monokai Pro (Filter Octagon)
  • Machine – Monokai Pro (Filter Machine)
  • Ristretto – Monokai Pro (Filter Machine)
  • Spectrum – Monokai Pro (Filter Machine)
  • Classic – Monokai Classic

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,
})
  • Check my nvim to see my plugins setup for border if you want to set background_clear

For example:

float_win
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
})
  • With the above config: bg_clear_cmp

  • With the default config: default_cmp

Telescope
require("monokai-pro").setup({
    -- ... your config
    background_clear = {}
    -- ... your config
})

require("telescope").setup({
    -- ... your config
    defaults = {
      borderchars = { "", " ", "", "", "", " ", " ", "" },
    }
    -- ... your config
})
  • With the above config:

removed_border_telescope

  • With the default config: default_telescope

📚 Usage

  • Enable this colorscheme by using the following command after setup:
" Vim Script
colorscheme monokai-pro
require("monokai-pro").setup({
  -- ... your config
})
-- lua
vim.cmd([[colorscheme monokai-pro]])
  • To enable monokai-pro for Lualine:
require('lualine').setup {
  options = {
    -- ...
    theme = 'monokai-pro'
    -- ...
  }
}
  • To enable monokai-pro for barbecue:
require('barbecue').setup {
  -- ...
  theme = 'monokai-pro'
  -- ...
}
  • To enable monokai-pro for lightline:
" Vim Script
let g:lightline = {'colorscheme': 'monokaipro'}
  • Override function:
require("monokai-pro").setup({
    -- ...
    override = function
      return {
          Normal = { bg = "#000000" }
        }
    end
    -- ...
  })

🔧 Command

  • run command MonokaiProSelect to launch a menu to choose theme filter (required: nui.nvim)
  • or we can run command MonokaiPro with parameter to change theme filter: For example:

    MonokaiPro classic