Skip to main content
lualine.nvim is a fast and configurable status line plugin for Neovim. Aquavium.nvim provides a dedicated lualine theme and automatically sets it as the active theme whenever lualine is detected.

Automatic setup

When you call require("Aquavium").setup(), Aquavium.nvim checks whether lualine is already loaded. If it is, the theme is applied inside a vim.schedule callback without any action on your part:
-- From lua/Aquavium/init.lua
local function apply_lualine()
    if not package.loaded["lualine"] then
        return
    end

    vim.schedule(function()
        local ok, lualine = pcall(require, "lualine")
        if not ok then return end

        local config = lualine.get_config() or {}
        config.options = config.options or {}
        config.options.theme = "Aquavium"

        package.loaded["lualine.themes.Aquavium"] = nil

        lualine.setup(config)
        lualine.refresh()
    end)
end
The function reloads the theme module (package.loaded["lualine.themes.Aquavium"] = nil) before calling lualine.setup so that any color changes from a previous setup() call are picked up correctly.
If you configure lualine manually in your own setup code, you do not need to set the theme yourself — Aquavium.nvim handles it automatically as long as lualine loads before or alongside Aquavium.nvim.

Manual theme setup

If you prefer to set the theme explicitly in your lualine config, use the theme name "Aquavium":
require("lualine").setup({
    options = {
        theme = "Aquavium",
    },
})

Mode color mapping

The Aquavium lualine theme (defined in lua/lualine/themes/Aquavium.lua) maps each Vim mode to a distinct palette color for the a section of the status line:
ModeColor
Normallightblue
Insertpurple
Visualyellow
Replacepink
Inactivegray
The b and c sections of the normal mode bar use the full foreground color (fg) on bg2 and bg1 respectively. When the transparent option is enabled, background colors for b and c sections are omitted so the terminal background shows through. The bold option you pass to require("Aquavium").setup() is forwarded to the lualine theme as the gui = "bold" attribute on each mode’s a section.

Installation

-- lazy.nvim
{
    "T-b-t-nchos/Aquavium.nvim",
    lazy = false,
    priority = 1000,
    config = function()
        require("Aquavium").setup()
        vim.cmd("colorscheme Aquavium")
    end,
},
{
    "nvim-lualine/lualine.nvim",
    dependencies = { "nvim-tree/nvim-web-devicons" },
    config = function()
        require("lualine").setup()
        -- No theme option needed — Aquavium.nvim sets it automatically
    end,
},

Build docs developers (and LLMs) love