-- Copyright (c) 2020-2021 shadmansaleh -- MIT license, see LICENSE for more details. 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-fA-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 }, }, }