local lualine = require('lualine') local diagnostics = { "diagnostics", sources = { "nvim_diagnostic" }, sections = { "error", "warn" }, symbols = { error = " ", warn = " " }, colored = true, update_in_insert = false, always_visible = true, cond = function() return vim.bo.filetype ~= "markdown" end, } local diff = { "diff", colored = true, symbols = { added = " ", modified = " ", removed = " " }, } local mode = { "mode", fmt = function(str) return "-- " .. str .. " --" end, } local branch = { "branch", icon = "", } local progress = function() local current_line = vim.fn.line(".") local total_lines = vim.fn.line("$") local chars = { "", "", "" } --adding more chars will still work local line_ratio = current_line / total_lines local index = math.ceil(line_ratio * #chars) return chars[index] .. " " .. math.floor(line_ratio * 100) .. "%%" end lualine.setup({ options = { icons_enabled = true, theme = "auto", --auto allows for theme switching component_separators = { left = "", right = "" }, section_separators = { left = "", right = "" }, disabled_filetypes = { "alpha", "dashboard" }, always_divide_middle = true, }, sections = { lualine_a = { branch }, lualine_b = { mode }, lualine_c = { diagnostics }, lualine_x = { diff, "fileformat", "filetype" }, lualine_y = { "location" }, lualine_z = { progress }, }, extensions = { 'nvim-tree' }, }) -- transparency override if using old pywal, shouldn't be needed with 16 -- vim.api.nvim_set_hl(0, "lualine_c_normal", { bg = "none" }) -- vim.api.nvim_set_hl(0, "lualine_c_inactive", { bg = "none" }) -- vim.api.nvim_set_hl(0, "lualine_x_normal", { bg = "none" }) -- vim.api.nvim_set_hl(0, "lualine_x_inactive", { bg = "none" })