return { { 'nanozuki/tabby.nvim', -- event = 'VimEnter', -- if you want lazy load, see below dependencies = 'nvim-tree/nvim-web-devicons', config = function() vim.o.showtabline = 2 -- always show tabline -- configs... local theme = { fill = 'TabLineFill', -- Also you can do this: fill = { fg='#f2e9de', bg='#907aa9', style='italic' } head = 'TabLine', current_tab = 'TabLineSel', tab = 'TabLine', win = 'TabLine', tail = 'TabLine', } require('tabby').setup({ line = function(line) return { { { '  ', hl = theme.head }, line.sep('', theme.head, theme.fill), }, line.tabs().foreach(function(tab) local hl = tab.is_current() and theme.current_tab or theme.tab return { line.sep('', hl, theme.fill), tab.is_current() and '' or '󰆣', tab.number(), tab.name(), tab.close_btn(''), line.sep('', hl, theme.fill), hl = hl, margin = ' ', } end), line.spacer(), line.wins_in_tab(line.api.get_current_tab()).foreach(function(win) return { line.sep('', theme.win, theme.fill), win.is_current() and '' or '', win.buf_name(), line.sep('', theme.win, theme.fill), hl = theme.win, margin = ' ', } end), { line.sep('', theme.tail, theme.fill), { '  ', hl = theme.tail }, }, hl = theme.fill, } end, -- option = {}, -- setup modules' option, }) end, } }