Skip to content

black-atom-industries/nvim

Repository files navigation

Black Atom for Neovim

A collection of elegant, cohesive themes for Neovim by Black Atom Industries

What is a Black Atom Adapter?

This repository is a Neovim adapter for the Black Atom theme ecosystem. In the Black Atom architecture:

  • The core repository is the single source of truth for all theme definitions
  • Each adapter implements these themes for a specific platform (Neovim, VS Code, Alacritty, etc.)
  • The adapter uses templates to transform core theme definitions into platform-specific files

This modular approach ensures consistent colors and styling across all supported platforms while allowing for platform-specific optimizations.

Available Themes

Black Atom includes multiple theme collections, each with dark and light variants:

Collection Description
Default Core Black Atom themes
JPN Japanese-inspired themes
MNML Minimalist accent themes
Stations Space station-inspired themes
Terra Earth season-inspired themes

Installation

Install the plugin with your preferred package manager:

{
  "black-atom-industries/nvim",
  name = "black-atom",
  priority = 1000, -- Load before other start plugins
  opts = {
    -- Configuration options
    theme = "black-atom-jpn-koyo-yoru", -- Default theme
    transparent = false, -- Enable transparent background
    contrast = false, -- Enable high contrast mode
  },
}
Plug 'black-atom-industries/nvim'

" In your init.vim or .vimrc
lua << EOF
require('black-atom').setup({
  theme = "black-atom-jpn-koyo-yoru",
  transparent = false,
  contrast = false,
})
EOF

Usage

Basic Configuration

require('black-atom').setup({
  -- Default theme (will be used when Neovim starts)
  theme = "black-atom-jpn-koyo-yoru",

  -- Enable transparent background
  transparent = false,

  -- Enable high contrast mode
  contrast = false,

  -- Override specific highlight groups
  overrides = {
    -- Add your highlight overrides here
    -- Example: Normal = { bg = "#000000" }
  },
})

LSP completion

Black Atom defines the native LspKind{Function, Class, Variable, ...} highlight groups (one per LSP CompletionItemKind) in lsp.lua.

  • blink.cmp / nvim-cmp consume the shared kind-color mapping directly — no wiring required.
  • mini.completion needs a small process_items callback to route the theme's LspKind* groups to the popup. See the recipe: docs/recipes.md#color-minicompletion-kind-labels.

Supported Plugins

Click to expand supported plugins list

This theme supports the following plugins:

  • arrow.nvim
    • 4 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • blink.cmp
    • 8 Highlight(s)
    • Last updated: 2025-02-16
    • Last commit: revert: rename syn variables to syntax
  • codediff.nvim
    • 31 Highlight(s)
    • Last updated: 2026-03-31
    • Last commit: feat(highlights/plugins): add codediff.nvim support
  • diffview.nvim
    • 24 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • edgy.nvim
    • 5 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • flash.nvim
    • 6 Highlight(s)
    • Last updated: 2025-02-16
    • Last commit: revert(themes): restore full parameter names
  • flux.nvim
    • 13 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • fyler.nvim
    • 30 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • fzf-lua
    • 7 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • gitsigns.nvim
    • 9 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • glance.nvim
    • 28 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • indent-blankline.nvim
    • 2 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • mini.nvim
    • 178 Highlight(s)
    • Last updated: 2026-06-06
    • Last commit: feat(highlights/plugins): add MiniCmdline highlight groups
  • neo-tree.nvim
    • 13 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • nvim-cmp
    • 12 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • nvim-navbuddy
    • 8 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • nvim-tree.lua
    • 4 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • nvim-treesitter-context
    • 2 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • obsidian.nvim
    • 11 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • render-markdown.nvim
    • 69 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • plugin-name
    • 27 Highlight(s)
    • Last updated: 2026-05-18
    • Last commit: fix(highlights/plugins): override snack picker git status colors
  • telescope.nvim
    • 6 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • which-key.nvim
    • 5 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors
  • yazi.nvim
    • 1 Highlight(s)
    • Last updated: 2026-06-05
    • Last commit: style(terra/mnml): refine summer and orange-light palette colors

Development

Roadmap

  • Minimize default highlight assignments
    • The default assignment and links should be used as far as possible
  • Make API stable
  • Dediated Black Atom Colorscheme Picker

Setup

Clone the repository:

git clone https://github.com/black-atom-industries/nvim.git
cd nvim

Tooling

Dev tooling is managed with mise:

mise install      # lua, lua-language-server, stylua
mise run setup    # luacheck (via luarocks)

luacheck has no prebuilt binary, so it can't be a mise [tools] entry. Installing lua through mise also provides luarocks (added to PATH), and the setup task runs luarocks install luacheck into that Lua install. Note this lives under the shared lua@5.1 install rather than the repo — re-run mise run setup if you bump the pinned Lua version. Building luacheck's dependencies needs a C compiler (Xcode Command Line Tools on macOS).

Building and Testing

Run all checks (luacheck, lua-language-server, stylua):

mise run check

Individual tasks are also available: mise run lint, mise run typecheck, mise run fmt-check, and mise run fmt (formats in place). CI runs the same mise run check, so a green local run matches CI.

Highlight caching

Compiled highlights are cached to disk so theme switches are near-instant. The cache auto-invalidates when any source file that affects highlights changes (highlight modules under lua/black-atom/highlights/ and theme definitions under lua/black-atom/themes/, both hashed by mtime), so regeneration via the core CLI's deno task dev is picked up automatically on the next colorscheme switch. To force a full rebuild, run :BlackAtomClearCache (or delete the cache directory at stdpath('data')/black-atom/cache/).

Working with Templates

Theme files are generated from templates using Black Atom Core. You need Deno installed.

  1. Edit the template files in lua/black-atom/themes/{collection}/
  2. Generate theme files:
    deno task generate
  3. Or use watch mode for live regeneration:
    deno task dev

License

MIT - See LICENSE for details

Related Projects

About

Black Atom Adapter for the Neovim editor

Topics

Resources

License

Stars

Watchers

Forks

Contributors