๐ bars.nvim
January 27, 2026 ยท View on GitHub
Tip
This repository contains guides for both creating your own bars & lines plugin.
Other than that, this repository acts as a working example bars & lines plugin.
A highly customisable & toggle-able bars & lines plugin for Neovim.
๐ Table of contents
โจ Features
- Ability to toggle various bars & lines either globally or on specific window.
- Component-style configuration to keep things clean & readable.
- Per window configuration, allowing users to change how things look on each window.
- Conditional rendering to disable certain components based on conditions.
- Enable or disable various bars via
:Bars.
More specific features are as follows,
๐งฉ Statusline
- Built-in support for showing current
Git branch&diagnostics count - Customisable
ruler. - Custom
statuslinefor,- Help files
- Quickfix
๐งฉ Statuscolumn
- Filtering of
Signs. - Built-in support for mixed line numbers(
relativefor normal lines &absolutefor current line). - Fancy
virtual lines&wrapped linesindicators.
๐งฉ Winbar
- Built-in support for Tree-sitter node hierarchy for the current node.
- File path segments from.project root.
๐งฉ Tabline
- Buffer list(tab list similar to IDEs) support.
- Mouse-support.
๐ Installation
๐งฉ Vim-plug
Add this to your plugin list.
Plug "OXY2DEV/bars.nvim"
๐ค lazy.nvim
Note
Lazy loading is NOT needed for this!
For plugins.lua users,
{
"OXY2DEV/bars.nvim",
},
For plugins/bars.lua,
return {
"OXY2DEV/bars.nvim",
};
๐ฆ mini.deps
local MiniDeps = require("mini.deps");
MiniDeps.add({
source = "OXY2DEV/bars.nvim"
});
๐ Rocks.nvim
Warning
luarocks package may sometimes be a bit behind main.
:Rocks install bars.nvim
๐ฅ GitHub release
Tagged releases can be found in the release page.
Note
Github releases may sometimes be slightly behind main.
๐งญ Configuration
bars.nvim can be configured in 2 ways,
- Via the
setup()function.
require("bars").setup({
global = false
});
- Via each module's setup function.
require("bars.statusline").setup({
ignore_filetypes = { "help" }
});
Check the wiki to learn about all the configuration options!
๐งญ Configuration
Configuration guides are available in the wiki.
๐งฐ Commands
bars.nvim provides a single command :Bars which has sub-commands that can be used to do different things.
The sub-commands are given below,
| Sub-command | Description |
|---|---|
| Disable | Used to disable statusline, statuscolumn etc. globally. |
| Enable | Used to enable statusline, statuscolumn etc. globally. |
| Start | Signals the module(s) to attach to new windows. |
| Stop | Stops the module(s) from attaching to nee windows. |
| Toggle | Used to toggle statusline, statuscolumn etc. globally. |
| clean | Cleans up cached values of deleted windows. |
| disable | Used to disable statusline, statuscolumn etc. of given window(s). |
| enable | Used to enable statusline, statuscolumn etc. of given window(s). |
| toggle | Used to toggle statusline, statuscolumn etc. of given window(s). |
| update | Updates the module's configuration ID of given window. |
All the sub-commands support modifier to specify which modules should be affected by the command.
Tip
If you want to run a sub-command on the current window then you can ignore the modifier.
" Toggles all bars & lines for the current window.
:Bars toggle
Modifiers are given below,
| Modifier | Description |
|---|---|
| ? | Prompt which module(s) to affect. |
| all | Affects all modules. |
| statuscolumn | Self-explanatory. |
| statusline | Self-explanatory. |
| tabline | Self-explanatory. |
| winbar | Self-explanatory. |
You can add any number of windows after the modifier to specify which windows to run the command on.
Tip
Cmdline completion are provided for all sub-commands/modifiers/windows!
๐ Guides
Note
These are work in progress!