Skip to content

A dark Neovim theme written in Lua, with support for LSP, Tree-sitter and lots of plugins.

License

Notifications You must be signed in to change notification settings

killitar/obscure.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Obscure

A dark Neovim theme written in Lua, inspired by the pastel palette mellow.nvim that I used for a long time.

🔍 Gallery

Lua

Screenshot of obscure theme Lua

TypeScript

Screenshot of obscure theme TypeScript

Astro

Screenshot of obscure theme Astro

Markdown

Screenshot of obscure theme Markdown

✨ Features

  • Supports the latest Neovim 0.9.0 features.
  • Terminal colors
  • Supports all major plugins

📦 Requirements

⚡️ Installation

Install the theme using your preferred package manager, e.g. lazy:

{
  "killitar/obscure.nvim",
  lazy = false,
  priority = 1000,
  opts = {}
}

🚀 Usage

Vim Script

colorscheme obscure

Lua

vim.cmd[[colorscheme obscure]]

⚙️ Configuration

Important

Set the configuration BEFORE loading the color scheme with colorscheme obscure.

Default Options
{
  transparent = false,
  terminal_colors = true,
  dim_inactive = true,
  styles = {
    keywords = { italic = true },
    identifiers = {},
    functions = {},
    variables = {},
    booleans = {},
    comments = { italic = true },
  },

  --- You can override specific highlights to use other groups or a hex color
  --- function will be called with a Highlights and ColorScheme table
  on_highlights = function(highlights, colors) end,

  plugins = {
    -- enable all plugins when not using lazy.nvim
    -- set to false to manually enable/disable plugins
    all = package.loaded.lazy == nil,
    -- uses your plugin manager to automatically enable needed plugins
    -- currently only lazy.nvim is supported
    auto = true,
    -- add any plugins here that you want to enable
    -- for all possible plugins, see:
    --   * https://github.com/killitar/obscure.nvim/tree/main/lua/obscure/groups
    -- flash = true,
  },
}

🪓 Overriding Colors & Highlight Groups

To configure a setting, you should pass that setting with the changed value following the structure of the default configuration.

require("obscure").setup({
    styles = {
        booleans = { italic = true, bold = true },
    },
    on_highlights = function(hl,c)
        hl.Comment = { fg = "#ffffff" }
        -- Or
        hl.Comment = { fg = c.orange }
    end
})

🧵 Extra

You can easily use the color palette for other plugins inside your Neovim configuration:

local colors = require("obscure.palettes").get_palette("obscure") -- pass in any of the config options as explained above

plugin.bg = colors.yellow

👏 Acknowledgements