local lualine_require = require'lualine_require' local modules = lualine_require.lazy_require{ utils_notices = 'lualine.utils.notices' } local sep = package.config:sub(1,1) local wal_colors_path = table.concat({os.getenv("HOME"), ".cache", "wal", "colors.sh"}, sep) local wal_colors_file = io.open(wal_colors_path, "r") if wal_colors_file == nil then modules.utils_notices.add_notice("lualine.nvim: " .. wal_colors_path .. " not found") error("") end local ok, wal_colors_text = pcall(wal_colors_file.read, wal_colors_file, '*a') wal_colors_file:close() if not ok then modules.utils_notices.add_notice("lualine.nvim: " .. wal_colors_path .. " could not be read: " .. wal_colors_text) error("") end local colors = {} for line in vim.gsplit(wal_colors_text, '\n') do if line:match('^[a-z0-9]+=\'#[a-f0-9]+\'') ~= nil then local i = line:find('=') local key = line:sub(0, i - 1) local value = line:sub(i + 2, #line - 1) colors[key] = value end end return { normal = { a = {fg = colors.background, bg = colors.color4, gui = 'bold'}, b = {fg = colors.foreground, bg = colors.color8}, c = {fg = colors.foreground, bg = colors.background} }, insert = {a = {fg = colors.background, bg = colors.color2, gui = 'bold'}}, visual = {a = {fg = colors.background, bg = colors.color3, gui = 'bold'}}, replace = {a = {fg = colors.background, bg = colors.color1, gui = 'bold'}}, inactive = { a = {fg = colors.foreground, bg = colors.background, gui = 'bold'}, b = {fg = colors.foreground, bg = colors.background}, c = {fg = colors.foreground, bg = colors.background} } }