🪴 my neovim config:)
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

lylla: use tabline module

robin 9504ea2e 7f262637

+87 -115
+79
config/config/lylla.lua
··· 16 16 return fmtstr 17 17 end 18 18 19 + local function rev_hl(hl_name) 20 + local hl = vim.api.nvim_get_hl(0, { name = hl_name }) 21 + if vim.tbl_isempty(hl) or (not hl.fg and not hl.bg and not hl.link) then 22 + return {} 23 + end 24 + if hl.link then 25 + return rev_hl(hl.link) 26 + end 27 + local rev = vim.deepcopy(hl) 28 + rev.fg = hl.bg 29 + rev.bg = hl.fg 30 + return rev 31 + end 32 + 19 33 local prefix = vim.env.TERM ~= "linux" and "▐" or "|" 34 + local left_sep = "" 35 + local right_sep = "" 36 + if vim.env.TERM == "linux" then 37 + left_sep = "" 38 + right_sep = "" 39 + end 40 + local hls = {} 41 + vim.once.ColorScheme(function() 42 + hls.tab = "TabLine" 43 + ---@type table 44 + hls.tab_rev = rev_hl(hls.tab) 45 + hls.tab_rev.bg = "NONE" 46 + hls.cur = "TabLineSel" 47 + ---@type table 48 + hls.cur_rev = rev_hl(hls.cur) 49 + hls.cur_rev.bg = "NONE" 50 + hls.fil = "TabLineFill" 51 + end) 20 52 53 + local H = require("lylla.tabline") 21 54 local lylla = require("lylla") 22 55 local utils = require("lylla.utils") 23 56 ··· 118 151 }, 119 152 }), 120 153 }, 154 + tabline = function() 155 + if vim.tbl_isempty(hls) then 156 + return {} 157 + end 158 + 159 + local t = {} 160 + table.insert( 161 + t, 162 + H.fortabs(function(tabidx, t_iscurrent) 163 + local tabhl = t_iscurrent and hls.cur or hls.tab 164 + local tabhl_rev = t_iscurrent and hls.cur_rev or hls.tab_rev 165 + local t_win = { 166 + { string.format("%%%dT", tabidx) }, 167 + { left_sep, tabhl_rev }, 168 + { string.format(" %d ", tabidx), tabhl }, 169 + { right_sep, tabhl_rev }, 170 + } 171 + 172 + table.insert( 173 + t_win, 174 + H.fortabwins(tabidx, function(_, w_iscurrent, buf) 175 + local winhl = (t_iscurrent and w_iscurrent) and hls.cur or hls.tab 176 + local winhl_rev = (t_iscurrent and w_iscurrent) and hls.cur_rev or hls.tab_rev 177 + local name = vim.fn.bufname(buf) 178 + local winstr = string.sub(name, 1, 1) == "/" and vim.fs.basename(name) or name 179 + return { 180 + { left_sep, winhl_rev }, 181 + { string.format(" %s ", winstr), winhl }, 182 + { right_sep, winhl_rev }, 183 + } 184 + end) 185 + ) 186 + 187 + return t_win 188 + end) 189 + ) 190 + 191 + table.insert(t, { "%T", hls.fil }) 192 + 193 + if vim.fn.tabpagenr("$") > 1 then 194 + table.insert(t, "%=") 195 + table.insert(t, { "%999X x ", hls.tab }) 196 + end 197 + 198 + return t 199 + end, 121 200 })
-61
config/config/tabby.lua
··· 1 - local left_sep = "" 2 - local right_sep = "" 3 - if vim.env.TERM == "linux" then 4 - left_sep = "" 5 - right_sep = "" 6 - end 7 - 8 - local C = require("evergarden.colors").get() 9 - local tab_hl = "TabLine" 10 - local cur_hl = "TabLineSel" 11 - local o = { 12 - theme = { 13 - fill = { fg = C.overlay0 }, 14 - head = tab_hl, 15 - current_tab = cur_hl, 16 - tab = tab_hl, 17 - current_win = cur_hl, 18 - win = tab_hl, 19 - tail = tab_hl, 20 - }, 21 - } 22 - 23 - local function preset_tab(line, tab, opt) 24 - local hl = tab.is_current() and opt.theme.current_tab or opt.theme.tab 25 - return { 26 - line.sep(left_sep, hl, opt.theme.fill), 27 - tab.in_jump_mode() and tab.jump_key() or { 28 - tab.number(), 29 - margin = " ", 30 - }, 31 - line.sep(right_sep, hl, opt.theme.fill), 32 - hl = hl, 33 - margin = " ", 34 - } 35 - end 36 - 37 - local function preset_win(line, tab, win, opt) 38 - local hl = (tab.is_current() and win.is_current()) and opt.theme.current_win or opt.theme.win 39 - return { 40 - line.sep(left_sep, hl, opt.theme.fill), 41 - win.buf_name(), 42 - line.sep(right_sep, hl, opt.theme.fill), 43 - hl = hl, 44 - margin = " ", 45 - } 46 - end 47 - require("tabby").setup({ 48 - line = function(line) 49 - return { 50 - line.tabs().foreach(function(tab) 51 - return { 52 - preset_tab(line, tab, o), 53 - tab.wins().foreach(function(win) 54 - return preset_win(line, tab, win, o) 55 - end), 56 - } 57 - end), 58 - hl = o.theme.fill, 59 - } 60 - end, 61 - })
-5
config/lua/ivy/plugins/init.lua
··· 21 21 }, 22 22 23 23 { 24 - "tabby.nvim", 25 - event = "UIEnter", 26 - }, 27 - 28 - { 29 24 "fzf-lua", 30 25 event = "UIEnter", 31 26 },
+4 -27
pkgs/ivy-plugins/_sources/generated.json
··· 294 294 }, 295 295 "lylla-nvim": { 296 296 "cargoLock": null, 297 - "date": "2026-02-03", 297 + "date": "2026-02-07", 298 298 "extract": null, 299 299 "name": "lylla-nvim", 300 300 "passthru": { ··· 308 308 "name": null, 309 309 "owner": "comfysage", 310 310 "repo": "lylla.nvim", 311 - "rev": "9dad07841375153f1c66b8a85d70a99c30803cbb", 312 - "sha256": "sha256-Nf3v0oNw+qSh8w+cE8mpTXMT01I8u7lhVH6BAO1vqIc=", 311 + "rev": "2161ad13a069ae01748af394684ec4b2e04d0da3", 312 + "sha256": "sha256-1LAI+IpSX0grKNaNDgLXE6N1C4EQVkYsI3PYoEWZ60k=", 313 313 "sparseCheckout": [], 314 314 "type": "github" 315 315 }, 316 - "version": "9dad07841375153f1c66b8a85d70a99c30803cbb" 316 + "version": "2161ad13a069ae01748af394684ec4b2e04d0da3" 317 317 }, 318 318 "lynn-nvim": { 319 319 "cargoLock": null, ··· 707 707 "type": "github" 708 708 }, 709 709 "version": "e07c07dfe7504295a369281e95a24e1afa14b243" 710 - }, 711 - "tabby-nvim": { 712 - "cargoLock": null, 713 - "date": "2026-01-07", 714 - "extract": null, 715 - "name": "tabby-nvim", 716 - "passthru": { 717 - "as": "tabby" 718 - }, 719 - "pinned": false, 720 - "src": { 721 - "deepClone": false, 722 - "fetchSubmodules": false, 723 - "leaveDotGit": false, 724 - "name": null, 725 - "owner": "nanozuki", 726 - "repo": "tabby.nvim", 727 - "rev": "3c130e1fcb598ce39a9c292847e32d7c3987cf11", 728 - "sha256": "sha256-YAnw/FpSLqKjvnug4bdvbGHpYWwtDKuh/DmxhK+PSu0=", 729 - "sparseCheckout": [], 730 - "type": "github" 731 - }, 732 - "version": "3c130e1fcb598ce39a9c292847e32d7c3987cf11" 733 710 }, 734 711 "tether-nvim": { 735 712 "cargoLock": null,
+4 -17
pkgs/ivy-plugins/_sources/generated.nix
··· 184 184 }; 185 185 lylla-nvim = { 186 186 pname = "lylla-nvim"; 187 - version = "9dad07841375153f1c66b8a85d70a99c30803cbb"; 187 + version = "2161ad13a069ae01748af394684ec4b2e04d0da3"; 188 188 src = fetchFromGitHub { 189 189 owner = "comfysage"; 190 190 repo = "lylla.nvim"; 191 - rev = "9dad07841375153f1c66b8a85d70a99c30803cbb"; 191 + rev = "2161ad13a069ae01748af394684ec4b2e04d0da3"; 192 192 fetchSubmodules = false; 193 - sha256 = "sha256-Nf3v0oNw+qSh8w+cE8mpTXMT01I8u7lhVH6BAO1vqIc="; 193 + sha256 = "sha256-1LAI+IpSX0grKNaNDgLXE6N1C4EQVkYsI3PYoEWZ60k="; 194 194 }; 195 195 as = "lylla"; 196 - date = "2026-02-03"; 196 + date = "2026-02-07"; 197 197 }; 198 198 lynn-nvim = { 199 199 pname = "lynn-nvim"; ··· 420 420 }; 421 421 as = "symbol-usage"; 422 422 date = "2025-05-03"; 423 - }; 424 - tabby-nvim = { 425 - pname = "tabby-nvim"; 426 - version = "3c130e1fcb598ce39a9c292847e32d7c3987cf11"; 427 - src = fetchFromGitHub { 428 - owner = "nanozuki"; 429 - repo = "tabby.nvim"; 430 - rev = "3c130e1fcb598ce39a9c292847e32d7c3987cf11"; 431 - fetchSubmodules = false; 432 - sha256 = "sha256-YAnw/FpSLqKjvnug4bdvbGHpYWwtDKuh/DmxhK+PSu0="; 433 - }; 434 - as = "tabby"; 435 - date = "2026-01-07"; 436 423 }; 437 424 tether-nvim = { 438 425 pname = "tether-nvim";
-5
pkgs/ivy-plugins/nvfetcher.toml
··· 155 155 src.git = "https://github.com/Wansmer/symbol-usage.nvim" 156 156 passthru.as = "symbol-usage" 157 157 158 - [tabby-nvim] 159 - fetch.github = "nanozuki/tabby.nvim" 160 - src.git = "https://github.com/nanozuki/tabby.nvim" 161 - passthru.as = "tabby" 162 - 163 158 [tether-nvim] 164 159 fetch.github = "comfysage/tether.nvim" 165 160 src.git = "https://github.com/comfysage/tether.nvim"