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 }, }, }