neovim

Personal neovim configuration files
git clone git://gtms.dev:neovim
Log | Files | Refs

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