cap153_nvim/lua/pack/configs/lualine.lua
2026-04-14 20:44:43 +08:00

57 lines
1.9 KiB
Lua
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- === 底部状态栏 ===
if vim.g.vscode then return end
local P = {
name = "lualine.nvim",
deps = {
"nvim-tree/nvim-web-devicons",
},
}
-- 懒加载触发器
vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, {
callback = function()
PackUtils.load(P, function()
-- ==================== 【魔法时刻:动态融合主题】 ====================
-- 获取当前 Neovim 的真实背景色 (Normal 高亮组)
local normal_hl = vim.api.nvim_get_hl(0, { name = "Normal" })
-- 如果是透明背景bg 返回 nil我们赋值为 "NONE";否则转换为 HEX 颜色码
local editor_bg = normal_hl.bg and string.format("#%06x", normal_hl.bg) or "NONE"
-- 加载 Lualine 的自动主题,它会自动为你提取当前主题的前景色(文字颜色)
local blended_theme = require("lualine.themes.auto")
-- 遍历主题的所有的模式 (normal, insert, visual...) 和区块 (a, b, c...)
for _, mode in pairs(blended_theme) do
for _, section in pairs(mode) do
if type(section) == "table" then
-- 强行将它们的背景色全部涂成和编辑器完全一样的颜色
section.bg = editor_bg
end
end
end
-- ====================================================================
require("lualine").setup({
options = {
-- 挂载我们刚刚特制的融合主题
theme = blended_theme,
-- 全局唯一状态栏 (不仅底部更干净,而且背景融合得更彻底)
globalstatus = true,
always_divide_middle = false,
component_separators = { left = "", right = "" },
section_separators = { left = "", right = "" },
},
sections = {
lualine_a = {},
lualine_b = { "branch", "diff", "diagnostics" },
lualine_c = { {
"lsp_status",
color = { fg = "#6C6E81" },
}, },
lualine_x = {},
lualine_y = {},
lualine_z = { "progress" },
},
})
end)
end
})