local lualine = require("lualine") local lazy_status = require("lazy.status") -- to configure lazy pending updates count local colors = { blue = "#65D1FF", green = "#3EFFDC", violet = "#FF61EF", yellow = "#FFDA7B", red = "#FF4A4A", fg = "#c3ccdc", bg = "#112638", inactive_bg = "#2c3043", } local my_lualine_theme = { normal = { a = { bg = colors.blue, fg = colors.bg, gui = "bold" }, b = { bg = colors.bg, fg = colors.fg }, c = { bg = colors.bg, fg = colors.fg }, }, insert = { a = { bg = colors.green, fg = colors.bg, gui = "bold" }, b = { bg = colors.bg, fg = colors.fg }, c = { bg = colors.bg, fg = colors.fg }, }, visual = { a = { bg = colors.violet, fg = colors.bg, gui = "bold" }, b = { bg = colors.bg, fg = colors.fg }, c = { bg = colors.bg, fg = colors.fg }, }, command = { a = { bg = colors.yellow, fg = colors.bg, gui = "bold" }, b = { bg = colors.bg, fg = colors.fg }, c = { bg = colors.bg, fg = colors.fg }, }, replace = { a = { bg = colors.red, fg = colors.bg, gui = "bold" }, b = { bg = colors.bg, fg = colors.fg }, c = { bg = colors.bg, fg = colors.fg }, }, inactive = { a = { bg = colors.inactive_bg, fg = colors.semilightgray, gui = "bold" }, b = { bg = colors.inactive_bg, fg = colors.semilightgray }, c = { bg = colors.inactive_bg, fg = colors.semilightgray }, }, } function GetFlutterToolsStatusLine() local application_version = vim.g.flutter_tools_decorations.app_version local device = vim.g.flutter_tools_decorations.device local result = "Flutter: " .. application_version .. " " .. device end function IsFlutterToolsActive() if vim.g.flutter_tools_decorations ~= nil then return true else return false end end function GetPoetvStatusLine() -- Get the poetv statusline -- If poetv is not active, return empty string if IsPoetvActive() then local poetv_name = vim.g.poetv_name local poetv_statusline_symbol = vim.g.poetv_statusline_symbol local result = string.sub(poetv_name, 1, 20) .. " " .. poetv_statusline_symbol return result else return "" end end function IsPoetvActive() -- Check if vim.g.poetv_name exists -- If it does, then poetv is active if vim.g.poetv_name ~= nil then return true else return false end end -- configure lualine with modified theme lualine.setup({ options = { theme = my_lualine_theme, }, sections = { -- lualine_c = { -- -- ...other lualine components -- { -- require('tmux-status').tmux_windows, -- cond = require('tmux-status').show, -- padding = { left = 3 }, -- }, -- }, -- lualine_z = { -- -- ...other lualine components -- { -- require('tmux-status').tmux_session, -- cond = require('tmux-status').show, -- padding = { left = 3 }, -- }, -- }, lualine_x = { { GetFlutterToolsStatusLine, cond = IsFlutterToolsActive, color = { fg = "#ff9e64" }, }, { GetPoetvStatusLine, cond = IsPoetvActive, color = { fg = "#ff9e64" }, }, { lazy_status.updates, cond = lazy_status.has_updates, color = { fg = "#ff9e64" }, }, { "encoding" }, { "fileformat" }, { "filetype" }, }, }, })