Skip to content

🐴 A clean, dark Neovim theme written in Lua, with support for lsp, treesitter and lots of plugins.

License

Notifications You must be signed in to change notification settings

PunGrumpy/dullahan.nvim

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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

πŸŒ…

About

🐴 A clean, dark Neovim theme written in Lua, with support for lsp, treesitter and lots of plugins.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Lua 99.8%
  • Vim Script 0.2%