Skip to main content
bufferline.nvim renders a styled buffer list along the top of the editor. Without theme integration, bufferline uses its own default colors, which can clash with the rest of your color scheme. Aquavium.nvim overrides the relevant highlight groups so the tab bar blends seamlessly with the rest of the UI.

What gets styled

The integration sets the following highlight groups (defined in lua/Aquavium/integrations/bufferline.lua):
Highlight groupEffect
BufferLineFillBackground of the empty tab bar area (bg1)
BufferLineBackgroundInactive buffer labels — gray foreground on bg1
BufferLineSeparatorTab separator — bg1 background (invisible blend)
BufferLineSeparatorVisibleSeparator for visible but unfocused buffers
BufferLineSeparatorSelectedSeparator for the active buffer
BufferLineBufferVisibleVisible but unfocused buffer background (bg1)
BufferLineCloseButtonClose button background (bg1)
BufferLineCloseButtonVisibleClose button background when buffer is visible
BufferLineIndicatorSelectedActive-buffer indicator — cyan foreground, optionally bold
BufferLineBufferSelectedActive buffer label — full-foreground text, optionally bold
The bold attribute on BufferLineIndicatorSelected and BufferLineBufferSelected respects the bold option you pass to require("Aquavium").setup().

Installation

Add bufferline.nvim to your plugin list. Because Aquavium.nvim applies integrations via vim.schedule after setup() runs, you only need to ensure Aquavium.nvim loads first.
-- lazy.nvim
{
    "T-b-t-nchos/Aquavium.nvim",
    lazy = false,
    priority = 1000,        -- load before other plugins
    config = function()
        require("Aquavium").setup()
        vim.cmd("colorscheme Aquavium")
    end,
},
{
    "akinsho/bufferline.nvim",
    dependencies = { "nvim-tree/nvim-web-devicons" },
    config = function()
        require("bufferline").setup()
    end,
},
Set priority = 1000 on the Aquavium.nvim spec so it loads before bufferline.nvim. This guarantees that Aquavium’s highlight groups are applied after bufferline registers its own defaults.

No extra configuration needed

The integration activates automatically. Once Aquavium.nvim detects that bufferline.nvim is present, it calls utils.apply_hl with the highlight table shown above. You do not need to pass any bufferline-specific options to require("Aquavium").setup().

Build docs developers (and LLMs) love