TLDR;
staline(statusline): A simple statusline for neovim written in lua.
stabline(s-tabline): A simple bufferline for neovim written in lua. (sry didnt get a better name.)
vim.opt.laststatus=2
in your init.lua for statusline. (or 3
for global line)vim.opt.showtabline=2
in your init.lua for bufferline.vim.opt.termguicolors = true
must be set.use 'tamton-aquib/staline.nvim'
Note Doing this will install both staline and stabline.
But separate setup() is required for each to load up.
require('staline').setup()
Click to see default configuration
```lua require('staline').setup { defaults = { expand_null_ls = false, -- This expands out all the null-ls sources to be shown left_separator = "", right_separator = "", full_path = false, line_column = "[%l/%L] :%c 並%p%% ", -- `:h stl` to see all flags. fg = "#000000", -- Foreground text color. bg = "none", -- Default background is transparent. inactive_color = "#303030", inactive_bgcolor = "none", true_colors = false, -- true lsp colors. font_active = "none", -- "bold", "italic", "bold,italic", etc mod_symbol = " ", lsp_client_symbol = " ", lsp_client_character_length = 12, -- Shorten LSP client names. branch_symbol = " ", cool_symbol = " ", -- Change this to override default OS icon. null_ls_symbol = "", -- A symbol to indicate that a source is coming from null-ls }, mode_colors = { n = "#2bbb4f", i = "#986fec", c = "#e27d60", v = "#4799eb", -- etc.. }, mode_icons = { n = " ", i = " ", c = " ", v = " ", -- etc.. }, sections = { left = { '- ', '-mode', 'left_sep_double', ' ', 'branch' }, mid = { 'file_name' }, right = { 'cool_symbol','right_sep_double', '-line_column' }, }, inactive_sections = { left = { 'branch' }, mid = { 'file_name' }, right = { 'line_column' } }, special_table = { NvimTree = { 'NvimTree', ' ' }, packer = { 'Packer',' ' }, -- etc }, lsp_symbols = { Error=" ", Info=" ", Warn=" ", Hint="", }, } ```Sections
| section | use | |---------|-----| | mode | shows the mode | | branch | shows git branch | | file_name | shows filename | | file_size | shows file size | | cool_symbol | an icon according to the OS type (cutomizable) | | lsp | lsp diagnostics (number of errors, warnings, etc) | | lsp_name | lsp client name | | line_column | shows line, column, percentage, etc | | left_sep | single left separator | | right_sep | single right separator | | left_sep_double | Double left separator with a shade of gray | | right_sep_double | Double right separator with a shade of gray | | cwd | Current working directory |
To know more about colors and highlights, check highlights wiki
A section (left, right or mid) can take:
"branch"
"a simple string"
{ "DiagnosticsError", "danger_icon" }
{ "CustomHighlight", "simple_string" }
function()
return "computed_dynamic_string"
end
lsp
,lsp_name
,file_size
sections are not included in the default settings.
Evil Line
Pebble Line
Simple Line
Check out wiki to see some premade configs and tips.
require('stabline').setup()
The Default configuration looks something like
```lua require('stabline').setup { style = "bar", -- others: arrow, slant, bubble stab_left = "┃", stab_right = " ", -- fg = Default is fg of "Normal". -- bg = Default is bg of "Normal". inactive_bg = "#1e2127", inactive_fg = "#aaaaaa", -- stab_bg = Default is darker version of bg., font_active = "bold", exclude_fts = { 'NvimTree', 'dashboard', 'lir' }, stab_start = "", -- The starting of stabline stab_end = "", numbers = function(bufn, n) return '*'..n..' ' end } ```My personal config as of editing this file
![my stabline config](https://i.imgur.com/cmBdfzx.png) ```lua require('stabline').setup { style = "slant", bg = "#986fec", fg = "black", stab_right = "", } ```