Skip to content

Latest commit

 

History

History
238 lines (188 loc) · 6.25 KB

README.md

File metadata and controls

238 lines (188 loc) · 6.25 KB
Dullahan

Dullahan

A dark and light Neovim theme written in Lua ported from the Visual Studio Code Dullahan theme.

CI License Neovim

Dullahan Preview

🎨 More Colors

Here is what the improved color palette looks like:

Dullahan Improved Color Palette

A Figma Design is available here

🌈 Styles

Black

Dullahan Black

White

Dullahan White

Golden

Dullahan Golden

Features

  • Supports the latest Neovim 0.9.0 features.
  • Enhances terminal colors.
  • Introduces a darker background option for sidebar-like windows.
  • Supports all major plugins.
  • Provides Dullahan

⚡️ Requirements

📦 Installation

Install the theme with your preferred package manager, such as folke/lazy.nvim:

{
  "PunGrumpy/dullahan.nvim",
  lazy = false,
  priority = 1000,
  opts = {},
}

🚀 Usage

Vim Script

colorscheme dullahan

" There are also colorschemes for the different styles.
colorscheme dullahan-black
colorscheme dullahan-white
vim.cmd[[colorscheme dullahan]]

External Plugins

-- Lua
require('barbecue').setup {
  -- ... your barbecue config
  theme = 'dullahan',
  -- ... your barbecue config
}
-- Lua
require('lualine').setup {
  options = {
    -- ... your lualine config
    theme = 'dullahan'
    -- ... your lualine config
  }
}
" Vim Script
let g:lightline = {'colorscheme': 'dullahan'}

🪓 Overriding Colors & Highlight Groups

How the highlight groups are calculated:

  1. colors are determined based on your configuration, with the ability to override them using config.on_colors(colors).
  2. These colors are utilized to generate the highlight groups.
  3. config.on_highlights(highlights, colors) can be used to override highlight groups.

For default values of colors and highlights, please consult the colors.lua file.

Settings and color alteration demonstration

require("dullahan").setup({
  -- use the black style
  style = "black",
  -- disable italic for functions
  styles = {
    functions = {}
  },
  sidebars = { "qf", "vista_kind", "terminal", "packer" },
  -- Change the "hint" color to the "orange" color, and make the "error" color bright red
  on_colors = function(colors)
    colors.hint = colors.orange
    colors.error = "#ff0000"
  end
})
require("dullahan").setup({
  on_highlights = function(hl, c)
    local prompt = "#8599ff" -- hsl(230, 100, 76)
    hl.TelescopeNormal = {
      bg = c.bg_dark,
      fg = c.fg_dark,
    }
    hl.TelescopeBorder = {
      bg = c.bg_dark,
      fg = c.bg_dark,
    }
    hl.TelescopePromptNormal = {
      bg = prompt,
    }
    hl.TelescopePromptBorder = {
      bg = prompt,
      fg = prompt,
    }
    hl.TelescopePromptTitle = {
      bg = prompt,
      fg = prompt,
    }
    hl.TelescopePreviewTitle = {
      bg = c.bg_dark,
      fg = c.bg_dark,
    }
    hl.TelescopeResultsTitle = {
      bg = c.bg_dark,
      fg = c.bg_dark,
    }
  end,
})

Fix undercurls in Tmux

To have undercurls show up and in color, add the following to your Tmux configuration file:

# Undercurl
set -g default-terminal "${TERM}"
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm'  # undercurl support
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m'  # underscore colours - needs tmux-3.0

🔥 Contributing

Pull requests are welcome and encouraged. For major changes, please open an issue first to discuss what you would like to change.

📖 Changelog

See the CHANGELOG.md file for details.

📝 License

Affero General Public License v3.0 for more information.

🙏 Credits

Folke
Folke

🌃
Takuya Matsuyama
Takuya Matsuyama

🌅