colors.lua (2479B)
1 local M = {} 2 3 function M.load_colorscheme() 4 local colors = {} 5 6 if vim.fn.empty('/home/tms/.cache/wal') > 0 then 7 -- gruvbox 8 colors = { 9 background = '#1d2021', 10 foreground = '#d5c4a1', 11 cursor = '#d5c4a1', 12 color0 = '#1d2021', 13 color1 = '#fb4934', 14 color2 = '#b8bb26', 15 color3 = '#fabd2f', 16 color4 = '#83a598', 17 color5 = '#d3869b', 18 color6 = '#8ec07c', 19 color7 = '#d5c4a1', 20 color8 = '#665c54', 21 color9 = '#fb4934', 22 color10 = '#b8bb26', 23 color11 = '#fabd2f', 24 color12 = '#83a598', 25 color13 = '#d3869b', 26 color14 = '#8ec07c', 27 color15 = '#fbf1c7', 28 } 29 else 30 colors = dofile('/home/tms/.cache/wal/colors.lua') 31 end 32 33 return colors 34 end 35 36 function M.setup_colors(colors) 37 local Color = require('colorbuddy.color').Color 38 39 -- Special 40 Color.new('backg', colors.background) 41 Color.new('foreg', colors.foreground) 42 Color.new('cursor', colors.cursor) 43 44 -- colors 45 Color.new('black', colors.color0) 46 Color.new('red', colors.color1) 47 Color.new('green', colors.color2) 48 Color.new('yellow', colors.color3) 49 Color.new('blue', colors.color4) 50 Color.new('magenta', colors.color5) 51 Color.new('cyan', colors.color6) 52 Color.new('white', colors.color7) 53 54 Color.new('c0', colors.color0) 55 Color.new('c1', colors.color1) 56 Color.new('c2', colors.color2) 57 Color.new('c3', colors.color3) 58 Color.new('c4', colors.color4) 59 Color.new('c5', colors.color5) 60 Color.new('c6', colors.color6) 61 Color.new('c7', colors.color7) 62 Color.new('c8', colors.color8) 63 Color.new('c9', colors.color9) 64 Color.new('c10', colors.color10) 65 Color.new('c11', colors.color11) 66 Color.new('c12', colors.color12) 67 Color.new('c13', colors.color13) 68 Color.new('c14', colors.color14) 69 Color.new('c15', colors.color15) 70 end 71 72 function M.is_dark(colors) 73 return colors.foreg.L > colors.backg.L 74 end 75 76 function M.dimm(color, amount, is_dark) 77 if is_dark then 78 return color:light(amount) 79 else 80 return color:dark(amount) 81 end 82 end 83 84 function M.update(fn) 85 local colors = require('colorbuddy.color').colors 86 local is_dark = M.is_dark(colors) 87 fn({ 88 Color = require('colorbuddy.color').Color, 89 colors = colors, 90 Group = require('colorbuddy.group').Group, 91 groups = require('colorbuddy.group').groups, 92 styles = require('colorbuddy.style').styles, 93 dimm = function(color, amount) 94 return M.dimm(color, amount, is_dark) 95 end, 96 is_dark = is_dark, 97 }) 98 end 99 100 return M