From 7185c61e9e4c0704483dec9faf37e6cb4f50f2c0 Mon Sep 17 00:00:00 2001
From: Matthew Toohey <36740602+mtoohey31@users.noreply.github.com>
Date: Sat, 4 Sep 2021 13:17:19 -0400
Subject: [PATCH] feat: pywal theme (#35)
* feat: pywal theme
* docs: add pywal screenshots
Co-authored-by: mtoohey31
@@ -285,4 +304,4 @@ them based you your `background` option. -
diff --git a/lua/lualine/themes/pywal.lua b/lua/lualine/themes/pywal.lua new file mode 100644 index 0000000..586a59e --- /dev/null +++ b/lua/lualine/themes/pywal.lua @@ -0,0 +1,47 @@ +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} + } +}