Skip to content

Lualine

alsi-lawr edited this page Jul 16, 2026 · 3 revisions

Lualine

Neotheme provides both Lualine discovery paths:

  • lualine.themes.neotheme
  • neotheme.lualine

Both resolve to the same theme table for the current Neotheme palette.

Setup

Load Neotheme before configuring Lualine:

require("neotheme").setup()
vim.cmd.colorscheme("neotheme")

require("lualine").setup({
	options = {
		theme = "neotheme",
	},
})

There is no integrations.lualine option.

Mode colors

Lualine mode Section A background
Normal ui.accent
Insert diagnostic.success
Visual diagnostic.hint
Replace diagnostic.error
Command diagnostic.information

For every active mode:

  • Section A uses text.on_accent in bold on the mode color.
  • Section B uses text.strong on surface.selected.
  • Section C uses text.primary on surface.base.

All inactive sections use text.muted on surface.base.

Palette customization

Lualine consumes the same resolved semantic palette as Neovim highlights:

require("neotheme").setup({
	configure_palette = function(palette)
		palette.ui.accent = palette.diagnostic.error
	end,
})

vim.cmd.colorscheme("neotheme")

The normal-mode Section A background now uses the configured diagnostic error color.

Changing theme at runtime

require("neotheme").switch("gruber-light")

Loading, confirmed switching, resetting, or reloading Neotheme clears both cached Lualine theme module paths. The next Lualine theme resolution therefore builds a new table from the current palette instead of returning the previous theme table. Browser row previews leave both caches unchanged until Enter or Space confirms the theme.

If an active Lualine configuration caches its own resolved colors outside Neotheme's module paths, rerun that Lualine setup after changing the theme. The Neotheme theme name remains neotheme for every built-in and session override.

Use setup() followed by :colorscheme neotheme or reset() when the change should replace the configured baseline. Use switch() or the browser for session-only selection. See Session Theme Controls.

Common setup mistakes

  • Configuring Lualine before Neotheme has resolved and loaded its palette
  • Using a built-in theme name such as gruber-dark as the Lualine theme
  • Looking for an integrations.lualine option
  • Replacing the Neotheme setup baseline without applying it
  • Assuming an already-resolved Lualine table will rebuild without rerunning Lualine setup

The Lualine theme name is always neotheme.

Clone this wiki locally